merge with be, give life dew jungle healing effect

This commit is contained in:
ghoulslash 2021-07-25 08:22:05 -06:00
commit a37d4c3da9
1022 changed files with 71414 additions and 59637 deletions

View File

@ -1,10 +1,5 @@
#!/bin/bash -ex #!/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 build_name=$1
map_file=$build_name.map map_file=$build_name.map
if [ ! -f $map_file ]; then if [ ! -f $map_file ]; then
@ -13,4 +8,4 @@ if [ ! -f $map_file ]; then
fi fi
output=$(perl $(dirname "$0")/calcrom.pl $build_name.map | sed -E ':a;N;$!ba;s/\r{0,1}\n/\\n/g') 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"

36
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,36 @@
name: CI
on:
push:
branches:
- master
- battle_engine
- pokemon_expansion
- item_expansion
pull_request:
jobs:
build:
runs-on: ubuntu-18.04
steps:
- name: Checkout
uses: actions/checkout@v2
- 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: |
git clone https://github.com/pret/agbcc.git
cd agbcc
./build.sh
./install.sh ../
- name: Agbcc
run: make -j${nproc}
- name: Modern
run: make -j${nproc} modern

View File

@ -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

View File

@ -1,96 +1,570 @@
# Prerequisites # Instructions
| Linux | macOS | Windows 10 These instructions explain how to set up the tools required to build **pokeemerald**, which assembles the source files into a ROM.
| - | - | -
| none | [Xcode Command Line Tools Package][xcode] | [Windows Terminal][terminal] and [Windows Subsystem for Linux (WSL)][wsl]
[xcode]: https://developer.apple.com/library/archive/technotes/tn2339/_index.html These instructions come with notes which can be expanded by clicking the "<i>Note...</i>" text.
[terminal]: https://docs.microsoft.com/windows/terminal/get-started In general, you should not need to open these unless if you get an error or if you need additional clarification.
[wsl]: https://docs.microsoft.com/windows/wsl/install-win10
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.
<details>
<summary><i>Note for advanced users: <b>WSL2</b>...</i></summary>
**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. > <b>WSL2</b> is an option and is even faster than <b>WSL1</b> 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 <a href="https://github.com/huderlem/porymap">porymap</a>
> may <a href="https://bugreports.qt.io/browse/QTBUG-86277">have problems with parsing the <code>\\wsl$</code> network drive path</a>.
</details>
**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 ```powershell
git clone https://github.com/pret/agbcc dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
```
cd ./agbcc 2. Once the process finishes, restart your machine.
./build.sh
./install.sh ../pokeemerald
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.
<details>
<summary><i>Note for advanced users...</i></summary>
> You can pick a preferred Linux distribution, but setup instructions may differ. Debian should work with the given instructions, but has not been tested.
</details>
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.
<details>
<summary><i>Notes...</i></summary>
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).
</details>
### 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).
<details>
<summary><i>Note...</i></summary>
> When typing in the password, there will be no visible response, but the terminal will still read in input.
</details>
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
```
<details>
<summary><i>Note...</i></summary>
> If the above command does not work, try the above command but replacing `apt` with `apt-get`.
</details>
### 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\\_\<user>_\Desktop\decomps**. First, ensure that the folder already exists. Then, enter this command to **change directory** to said folder, where *\<user>* is your **Windows** username:
```bash
cd /mnt/c/Users/<user>/Desktop/decomps
```
<details>
<summary><i>Notes...</i></summary>
> 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/<user>/Desktop/decomp folder"`.
> Note 3: Windows path names are case-insensitive so adhering to capitalization isn't needed
</details>
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
```
<details>
<summary><i>Note...</i></summary>
> This command will ask for confirmation, just enter the yes action when prompted.
</details>
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\\&#8288;_\<user>_**, where *\<user>* 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\\_\<user>_\Downloads** (the Downloads location for most users), enter this command:
```bash
cd Downloads
```
<details>
<summary><i>Notes...</i></summary>
> 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.
</details>
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\\_\<user>_\Desktop\decomps** (where *\<user>* 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
```
<details>
<summary><i>Note...</i></summary>
> Replace the drive letter c with the actual drive letter if it is not c.
</details>
### Choosing where to store pokeemerald (Cygwin)
Cygwin has its own file system that's within Windows, at **C:\cygwin64\home\\_\<user>_**. 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\\_\<user>_\Desktop\decomps**, enter this command, where *\<user>* is your **Windows** username:
```bash
cd c:/Users/<user>/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.
<details>
<summary><i>Notes...</i></summary>
> Note 1: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "c:/users/<user>/Desktop/decomp folder"`.
> Note 2: Windows path names are case-insensitive so adhering to capitalization isn't needed
</details>
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)
<details>
<summary><i>Note for advanced users...</i></summary>
> 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.
</details>
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.
<details>
<summary><i>Note..</i>.</summary>
> Note: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "Desktop/decomp folder"`
</details>
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).
<details>
<summary><i>Note for legacy repos...</i></summary>
> 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).
</details>
### 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
<details>
<summary><i>Note for Windows users...</i></summary>
> 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.
</details>
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
```
<details>
<summary><i>Note for WSL1...</i></summary>
> 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 <folder where pokeemerald is to be stored>
> ```
> Where *\<folder where pokeemerald is to be stored>* 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.
</details>
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
```
<details>
<summary><i>Note...</i></summary>
> 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.
</details>
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. If an OK is returned, then the installation went smoothly.
<details>
**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. <summary>Note for Windows...</summary>
> 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.
</details>
# Start
To build **pokeemerald.gba** with your changes: To build **pokeemerald.gba** with your changes:
```bash
make 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`.
# Building guidance # Building guidance
## Parallel builds ## 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. 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: To speed up building, first get the value of `nproc` by running the following command:
```bash
make -j$(nproc) nproc
```
Builds can then be sped up by running the following command:
```bash
make -j<output of nproc>
```
Replace `<output of nproc>` 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)). `nproc` is not available on macOS. The alternative is `sysctl -n hw.ncpu` ([relevant Stack Overflow thread](https://stackoverflow.com/questions/1715580)).
## Debug info ## Debug info
To build **pokeemerald.elf** with enhanced debug info: To build **pokeemerald.elf** with enhanced debug info:
```bash
make DINFO=1 make DINFO=1
```
## devkitARM's C compiler ## 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
```
<details>
<summary><i>Note...</i></summary>
> If the above command does not work, try the above command but replacing `apt` with `apt-get`.
</details>
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\\_\<user>_\Downloads** (the Downloads location for most users), enter this command, where *\<user> is your **Windows** username:
```bash
cd /mnt/c/Users/<user>/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.
<details>
<summary><i>Note...</i></summary>
> 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.
</details>
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 ## 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`. 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`.
```bash
make TOOLCHAIN="/path/to/toolchain/here" make TOOLCHAIN="/path/to/toolchain/here"
```
The following is an example: The following is an example:
```bash
make TOOLCHAIN="/usr/local/arm-none-eabi" 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. To compile the `modern` target with this toolchain, the subdirectories `lib`, `include`, and `arm-none-eabi` must also be present.
# Useful additional tools # Useful additional tools
* [porymap](https://github.com/huderlem/porymap) for viewing and editing maps * [porymap](https://github.com/huderlem/porymap) for viewing and editing maps

123
Makefile
View File

@ -1,29 +1,28 @@
TOOLCHAIN := $(DEVKITARM) TOOLCHAIN := $(DEVKITARM)
COMPARE ?= 0 COMPARE ?= 0
ifeq ($(CC),) # don't use dkP's base_tools anymore
HOSTCC := gcc # because the redefinition of $(CC) conflicts
else # with when we want to use $(CC) to preprocess files
HOSTCC := $(CC) # thus, manually create the variables for the bin
endif # files, or use arm-none-eabi binaries on the system
# if dkP is not installed on this system
ifeq ($(CXX),) ifneq (,$(TOOLCHAIN))
HOSTCXX := g++ ifneq ($(wildcard $(TOOLCHAIN)/bin),)
else
HOSTCXX := $(CXX)
endif
ifneq (,$(wildcard $(TOOLCHAIN)/base_tools))
include $(TOOLCHAIN)/base_tools
else
export PATH := $(TOOLCHAIN)/bin:$(PATH) export PATH := $(TOOLCHAIN)/bin:$(PATH)
endif
endif
PREFIX := arm-none-eabi- PREFIX := arm-none-eabi-
OBJCOPY := $(PREFIX)objcopy OBJCOPY := $(PREFIX)objcopy
export CC := $(PREFIX)gcc AS := $(PREFIX)as
export AS := $(PREFIX)as
endif LD := $(PREFIX)ld
export CPP := $(PREFIX)cpp
export 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) ifeq ($(OS),Windows_NT)
EXE := .exe EXE := .exe
@ -37,6 +36,33 @@ MAKER_CODE := 01
REVISION := 0 REVISION := 0
MODERN ?= 0 MODERN ?= 0
# 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 SHELL := /bin/bash -o pipefail
ELF = $(ROM:.gba=.elf) ELF = $(ROM:.gba=.elf)
@ -64,26 +90,26 @@ ASFLAGS := -mcpu=arm7tdmi --defsym MODERN=$(MODERN)
ifeq ($(MODERN),0) ifeq ($(MODERN),0)
CC1 := tools/agbcc/bin/agbcc$(EXE) CC1 := tools/agbcc/bin/agbcc$(EXE)
override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm -g override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm -g
ROM := pokeemerald.gba ROM := $(ROM_NAME)
OBJ_DIR := build/emerald OBJ_DIR := $(OBJ_DIR_NAME)
LIBPATH := -L ../../tools/agbcc/lib LIBPATH := -L ../../tools/agbcc/lib
LIB := $(LIBPATH) -lgcc -lc -L../../libagbsyscall -lagbsyscall
else else
CC1 = $(shell $(CC) --print-prog-name=cc1) -quiet CC1 = $(shell $(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 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 ROM := $(MODERN_ROM_NAME)
OBJ_DIR := build/modern OBJ_DIR := $(MODERN_OBJ_DIR_NAME)
LIBPATH := -L "$(dir $(shell $(CC) -mthumb -print-file-name=libgcc.a))" -L "$(dir $(shell $(CC) -mthumb -print-file-name=libc.a))" LIBPATH := -L "$(dir $(shell $(MODERNCC) -mthumb -print-file-name=libgcc.a))" -L "$(dir $(shell $(MODERNCC) -mthumb -print-file-name=libnosys.a))" -L "$(dir $(shell $(MODERNCC) -mthumb -print-file-name=libc.a))"
LIB := $(LIBPATH) -lc -lnosys -lgcc -L../../libagbsyscall -lagbsyscall
endif endif
CPPFLAGS := -iquote include -iquote $(GFLIB_SUBDIR) -Wno-trigraphs -DMODERN=$(MODERN) CPPFLAGS := -iquote include -iquote $(GFLIB_SUBDIR) -Wno-trigraphs -DMODERN=$(MODERN)
ifeq ($(MODERN),0) ifneq ($(MODERN),1)
CPPFLAGS += -I tools/agbcc/include -I tools/agbcc CPPFLAGS += -I tools/agbcc/include -I tools/agbcc -nostdinc -undef
endif endif
LDFLAGS = -Map ../../$(MAP) LDFLAGS = -Map ../../$(MAP)
LIB := $(LIBPATH) -lgcc -lc -L../../libagbsyscall -lagbsyscall
SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
GFX := tools/gbagfx/gbagfx$(EXE) GFX := tools/gbagfx/gbagfx$(EXE)
AIF := tools/aif2pcm/aif2pcm$(EXE) AIF := tools/aif2pcm/aif2pcm$(EXE)
@ -111,7 +137,7 @@ MAKEFLAGS += --no-print-directory
# Secondary expansion is required for dependency variables in object rules. # Secondary expansion is required for dependency variables in object rules.
.SECONDEXPANSION: .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)))) infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
@ -162,7 +188,7 @@ all: rom
tools: $(TOOLDIRS) tools: $(TOOLDIRS)
$(TOOLDIRS): $(TOOLDIRS):
@$(MAKE) -C $@ CC=$(HOSTCC) CXX=$(HOSTCXX) @$(MAKE) -C $@
rom: $(ROM) rom: $(ROM)
ifeq ($(COMPARE),1) ifeq ($(COMPARE),1)
@ -177,7 +203,7 @@ clean: mostlyclean clean-tools
clean-tools: clean-tools:
@$(foreach tooldir,$(TOOLDIRS),$(MAKE) clean -C $(tooldir);) @$(foreach tooldir,$(TOOLDIRS),$(MAKE) clean -C $(tooldir);)
mostlyclean: tidy mostlyclean: tidynonmodern tidymodern
rm -f $(SAMPLE_SUBDIR)/*.bin rm -f $(SAMPLE_SUBDIR)/*.bin
rm -f $(CRY_SUBDIR)/*.bin rm -f $(CRY_SUBDIR)/*.bin
rm -f $(MID_SUBDIR)/*.s rm -f $(MID_SUBDIR)/*.s
@ -189,13 +215,16 @@ mostlyclean: tidy
@$(MAKE) clean -C berry_fix @$(MAKE) clean -C berry_fix
@$(MAKE) clean -C libagbsyscall @$(MAKE) clean -C libagbsyscall
tidy: tidy: tidynonmodern tidymodern
rm -f $(ROM) $(ELF) $(MAP)
rm -r $(OBJ_DIR)
ifeq ($(MODERN),0)
@$(MAKE) tidy MODERN=1
endif
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) ifneq ($(MODERN),0)
$(C_BUILDDIR)/berry_crush.o: override CFLAGS += -Wno-address-of-packed-member $(C_BUILDDIR)/berry_crush.o: override CFLAGS += -Wno-address-of-packed-member
endif endif
@ -223,7 +252,7 @@ sound/%.bin: sound/%.aif ; $(AIF) $< $@
ifeq ($(MODERN),0) 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)/libc.o: CFLAGS := -O2
$(C_BUILDDIR)/siirtc.o: CFLAGS := -mthumb-interwork $(C_BUILDDIR)/siirtc.o: CFLAGS := -mthumb-interwork
@ -232,10 +261,10 @@ $(C_BUILDDIR)/agb_flash.o: CFLAGS := -O -mthumb-interwork
$(C_BUILDDIR)/agb_flash_1m.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)/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)/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 $(C_BUILDDIR)/librfu_intr.o: CFLAGS := -O2 -mthumb-interwork -quiet
else 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 $(C_BUILDDIR)/librfu_intr.o: CFLAGS := -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast
@ -296,13 +325,14 @@ endif
ifeq ($(NODEP),1) ifeq ($(NODEP),1)
$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $(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 else
define DATA_ASM_DEP define DATA_ASM_DEP
$1: $2 $$(shell $(SCANINC) -I include -I "" $2) $1: $2 $$(shell $(SCANINC) -I include -I "" $2)
$$(PREPROC) $$< charmap.txt | $$(CPP) -I include | $$(AS) $$(ASFLAGS) -o $$@ $$(PREPROC) $$< charmap.txt | $$(CPP) -I include - | $$(AS) $$(ASFLAGS) -o $$@
endef 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 DATA_ASM_DEP,$(patsubst $(DATA_ASM_SUBDIR)/%.s,$(DATA_ASM_BUILDDIR)/%.o, $(src)),$(src))))
$(foreach src, $(C_ASM_SRCS), $(eval $(call DATA_ASM_DEP,$(patsubst $(C_SUBDIR)/%.s,$(C_BUILDDIR)/%.o, $(src)),$(src))))
endif endif
$(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s $(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s
@ -329,7 +359,8 @@ $(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS)
cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld
$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) berry_fix libagbsyscall $(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 ../../$@ <objects> <lib>"
@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 $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent
$(ROM): $(ELF) $(ROM): $(ELF)
@ -341,7 +372,7 @@ modern: ; @$(MAKE) MODERN=1
berry_fix/berry_fix.gba: berry_fix berry_fix/berry_fix.gba: berry_fix
berry_fix: berry_fix:
@$(MAKE) -C berry_fix COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN) @$(MAKE) -C berry_fix COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN)
libagbsyscall: libagbsyscall:
@$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) @$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN)

View File

@ -1,10 +1,5 @@
# Pokémon Emerald # 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. This is a decompilation of Pokémon Emerald.
It builds the following ROM: It builds the following ROM:

View File

@ -3,7 +3,6 @@
.include "asm/macros/movement.inc" .include "asm/macros/movement.inc"
.include "asm/macros/window.inc" .include "asm/macros/window.inc"
.include "asm/macros/pokemon_data.inc" .include "asm/macros/pokemon_data.inc"
.include "asm/macros/ec.inc"
.include "asm/macros/map.inc" .include "asm/macros/map.inc"
.include "asm/macros/field_effect_script.inc" .include "asm/macros/field_effect_script.inc"
.include "asm/macros/trainer_hill.inc" .include "asm/macros/trainer_hill.inc"

View File

@ -178,11 +178,11 @@
.byte \case .byte \case
.4byte \ptr .4byte \ptr
.endm .endm
.macro jumpiftype battler:req, type:req, ptr:req .macro jumpiftype battler:req, type:req, ptr:req
jumpbasedontype \battler, \type, 1, \ptr jumpbasedontype \battler, \type, 1, \ptr
.endm .endm
.macro jumpifnottype battler:req, type:req, ptr:req .macro jumpifnottype battler:req, type:req, ptr:req
jumpbasedontype \battler, \type, 0, \ptr jumpbasedontype \battler, \type, 0, \ptr
.endm .endm
@ -409,33 +409,33 @@
.byte \param0 .byte \param0
.byte \param1 .byte \param1
.endm .endm
@ Help macros for 5 uses of moveend command @ Help macros for 5 uses of moveend command
@ All cases @ All cases
.macro moveendall .macro moveendall
setbyte sMOVEEND_STATE, 0 setbyte sMOVEEND_STATE, 0
moveend 0, 0 moveend 0, 0
.endm .endm
@ Chosen case @ Chosen case
.macro moveendcase case:req .macro moveendcase case:req
setbyte sMOVEEND_STATE, \case setbyte sMOVEEND_STATE, \case
moveend 1, 0 moveend 1, 0
.endm .endm
@ All cases from (inclusive) @ All cases from (inclusive)
.macro moveendfrom from:req .macro moveendfrom from:req
setbyte sMOVEEND_STATE, \from setbyte sMOVEEND_STATE, \from
moveend 0, 0 moveend 0, 0
.endm .endm
@ All cases from 0 to (not inclusive) @ All cases from 0 to (not inclusive)
.macro moveendto to:req .macro moveendto to:req
setbyte sMOVEEND_STATE, 0 setbyte sMOVEEND_STATE, 0
moveend 2, \to moveend 2, \to
.endm .endm
@ Cases from (inclusive) to (not inclusive) @ Cases from (inclusive) to (not inclusive)
.macro moveendfromto from:req, to:req .macro moveendfromto from:req, to:req
setbyte sMOVEEND_STATE, \from setbyte sMOVEEND_STATE, \from
@ -510,7 +510,7 @@
.byte \battler .byte \battler
.endm .endm
.macro atk57 .macro endlinkbattle
.byte 0x57 .byte 0x57
.endm .endm
@ -1262,407 +1262,407 @@
.byte 0xf8 .byte 0xf8
.byte \param0 .byte \param0
.endm .endm
.macro settelekinesis ptr:req .macro settelekinesis ptr:req
.byte 0xf9 .byte 0xf9
.4byte \ptr .4byte \ptr
.endm .endm
.macro swapstatstages stat:req .macro swapstatstages stat:req
.byte 0xfa .byte 0xfa
.byte \stat .byte \stat
.endm .endm
.macro averagestats stat:req .macro averagestats stat:req
.byte 0xfb .byte 0xfb
.byte \stat .byte \stat
.endm .endm
.macro jumpifoppositegenders ptr:req .macro jumpifoppositegenders ptr:req
.byte 0xfc .byte 0xfc
.4byte \ptr .4byte \ptr
.endm .endm
.macro trygetbaddreamstarget ptr:req .macro trygetbaddreamstarget ptr:req
.byte 0xfd .byte 0xfd
.4byte \ptr .4byte \ptr
.endm .endm
.macro tryworryseed ptr:req .macro tryworryseed ptr:req
.byte 0xfe .byte 0xfe
.4byte \ptr .4byte \ptr
.endm .endm
.macro metalburstdamagecalculator ptr:req .macro metalburstdamagecalculator ptr:req
.byte 0xff .byte 0xff
.4byte \ptr .4byte \ptr
.endm .endm
@ various command changed to more readable macros @ various command changed to more readable macros
.macro cancelmultiturnmoves battler:req .macro cancelmultiturnmoves battler:req
various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES
.endm .endm
.macro setmagiccoattarget battler:req .macro setmagiccoattarget battler:req
various \battler, VARIOUS_SET_MAGIC_COAT_TARGET various \battler, VARIOUS_SET_MAGIC_COAT_TARGET
.endm .endm
.macro getifcantrunfrombattle battler:req .macro getifcantrunfrombattle battler:req
various \battler, VARIOUS_IS_RUNNING_IMPOSSIBLE various \battler, VARIOUS_IS_RUNNING_IMPOSSIBLE
.endm .endm
.macro getmovetarget battler:req .macro getmovetarget battler:req
various \battler, VARIOUS_GET_MOVE_TARGET various \battler, VARIOUS_GET_MOVE_TARGET
.endm .endm
.macro getbattlerfainted battler:req .macro getbattlerfainted battler:req
various \battler, VARIOUS_GET_BATTLER_FAINTED various \battler, VARIOUS_GET_BATTLER_FAINTED
.endm .endm
.macro resetintimidatetracebits battler:req .macro resetintimidatetracebits battler:req
various \battler, VARIOUS_RESET_INTIMIDATE_TRACE_BITS various \battler, VARIOUS_RESET_INTIMIDATE_TRACE_BITS
.endm .endm
.macro updatechoicemoveonlvlup battler:req .macro updatechoicemoveonlvlup battler:req
various \battler, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP various \battler, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP
.endm .endm
.macro various7 battler:req .macro various7 battler:req
various \battler, 7 various \battler, 7
.endm .endm
.macro palaceflavortext battler:req .macro palaceflavortext battler:req
various \battler, VARIOUS_PALACE_FLAVOR_TEXT various \battler, VARIOUS_PALACE_FLAVOR_TEXT
.endm .endm
.macro arenajudgmentwindow .macro arenajudgmentwindow
various BS_ATTACKER, VARIOUS_ARENA_JUDGMENT_WINDOW various BS_ATTACKER, VARIOUS_ARENA_JUDGMENT_WINDOW
.endm .endm
.macro arenaopponentmonlost .macro arenaopponentmonlost
various BS_ATTACKER, VARIOUS_ARENA_OPPONENT_MON_LOST various BS_ATTACKER, VARIOUS_ARENA_OPPONENT_MON_LOST
.endm .endm
.macro arenaplayermonlost .macro arenaplayermonlost
various BS_ATTACKER, VARIOUS_ARENA_PLAYER_MON_LOST various BS_ATTACKER, VARIOUS_ARENA_PLAYER_MON_LOST
.endm .endm
.macro arenabothmonlost .macro arenabothmonlost
various BS_ATTACKER, VARIOUS_ARENA_BOTH_MONS_LOST various BS_ATTACKER, VARIOUS_ARENA_BOTH_MONS_LOST
.endm .endm
.macro forfeityesnobox battler:req .macro forfeityesnobox battler:req
various \battler, VARIOUS_EMIT_YESNOBOX various \battler, VARIOUS_EMIT_YESNOBOX
.endm .endm
.macro various14 battler:req .macro various14 battler:req
various \battler, 14 various \battler, 14
.endm .endm
.macro various15 battler:req .macro various15 battler:req
various \battler, 15 various \battler, 15
.endm .endm
.macro arenajudmengtstring id:req .macro arenajudgmentstring id:req
various \id, VARIOUS_ARENA_JUDGMENT_STRING various \id, VARIOUS_ARENA_JUDGMENT_STRING
.endm .endm
.macro arenawaitmessage id:req .macro arenawaitmessage id:req
various \id, VARIOUS_ARENA_WAIT_STRING various \id, VARIOUS_ARENA_WAIT_STRING
.endm .endm
.macro waitcry battler:req .macro waitcry battler:req
various \battler, VARIOUS_WAIT_CRY various \battler, VARIOUS_WAIT_CRY
.endm .endm
.macro returnopponentmon1toball battler:req .macro returnopponentmon1toball battler:req
various \battler, VARIOUS_RETURN_OPPONENT_MON1 various \battler, VARIOUS_RETURN_OPPONENT_MON1
.endm .endm
.macro returnopponentmon2toball battler:req .macro returnopponentmon2toball battler:req
various \battler, VARIOUS_RETURN_OPPONENT_MON2 various \battler, VARIOUS_RETURN_OPPONENT_MON2
.endm .endm
.macro volumedown .macro volumedown
various BS_ATTACKER, VARIOUS_VOLUME_DOWN various BS_ATTACKER, VARIOUS_VOLUME_DOWN
.endm .endm
.macro volumeup .macro volumeup
various BS_ATTACKER, VARIOUS_VOLUME_UP various BS_ATTACKER, VARIOUS_VOLUME_UP
.endm .endm
.macro setalreadystatusedmoveattempt battler:req .macro setalreadystatusedmoveattempt battler:req
various \battler, 23 various \battler, 23
.endm .endm
.macro various24 battler:req .macro various24 battler:req
various \battler, 24 various \battler, 24
.endm .endm
.macro setoutcomeonteleport battler:req .macro setoutcomeonteleport battler:req
various \battler, VARIOUS_SET_TELEPORT_OUTCOME various \battler, VARIOUS_SET_TELEPORT_OUTCOME
.endm .endm
.macro playtrainerdefeatbgm battler:req .macro playtrainerdefeatbgm battler:req
various \battler, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC various \battler, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC
.endm .endm
.macro stattextbuffer battler:req .macro stattextbuffer battler:req
various \battler, VARIOUS_STAT_TEXT_BUFFER various \battler, VARIOUS_STAT_TEXT_BUFFER
.endm .endm
.macro switchinabilities battler:req .macro switchinabilities battler:req
various \battler, VARIOUS_SWITCHIN_ABILITIES various \battler, VARIOUS_SWITCHIN_ABILITIES
.endm .endm
.macro savetarget .macro savetarget
various BS_TARGET, VARIOUS_SAVE_TARGET various BS_TARGET, VARIOUS_SAVE_TARGET
.endm .endm
.macro restoretarget .macro restoretarget
various BS_TARGET, VARIOUS_RESTORE_TARGET various BS_TARGET, VARIOUS_RESTORE_TARGET
.endm .endm
.macro instanthpdrop battler:req .macro instanthpdrop battler:req
various \battler, VARIOUS_INSTANT_HP_DROP various \battler, VARIOUS_INSTANT_HP_DROP
.endm .endm
.macro clearstatus battler:req .macro clearstatus battler:req
various \battler, VARIOUS_CLEAR_STATUS various \battler, VARIOUS_CLEAR_STATUS
.endm .endm
.macro restorepp battler:req .macro restorepp battler:req
various \battler, VARIOUS_RESTORE_PP various \battler, VARIOUS_RESTORE_PP
.endm .endm
.macro tryactivatemoxie battler:req .macro tryactivatemoxie battler:req
various \battler, VARIOUS_TRY_ACTIVATE_MOXIE various \battler, VARIOUS_TRY_ACTIVATE_MOXIE
.endm .endm
.macro tryactivatebeastboost battler:req .macro tryactivatebeastboost battler:req
various \battler, VARIOUS_TRY_ACTIVATE_BEAST_BOOST various \battler, VARIOUS_TRY_ACTIVATE_BEAST_BOOST
.endm .endm
.macro tryactivatereceiver battler:req .macro tryactivatereceiver battler:req
various \battler, VARIOUS_TRY_ACTIVATE_RECEIVER various \battler, VARIOUS_TRY_ACTIVATE_RECEIVER
.endm .endm
.macro tryactivatesoulheart .macro tryactivatesoulheart
various BS_ATTACKER, VARIOUS_TRY_ACTIVATE_SOULHEART various BS_ATTACKER, VARIOUS_TRY_ACTIVATE_SOULHEART
.endm .endm
.macro tryactivatefellstinger battler:req .macro tryactivatefellstinger battler:req
various \battler, VARIOUS_TRY_ACTIVATE_FELL_STINGER various \battler, VARIOUS_TRY_ACTIVATE_FELL_STINGER
.endm .endm
.macro playmoveanimation battler:req, move:req .macro playmoveanimation battler:req, move:req
various \battler, VARIOUS_PLAY_MOVE_ANIMATION various \battler, VARIOUS_PLAY_MOVE_ANIMATION
.2byte \move .2byte \move
.endm .endm
.macro setluckychant battler:req, ptr:req .macro setluckychant battler:req, ptr:req
various \battler VARIOUS_SET_LUCKY_CHANT various \battler VARIOUS_SET_LUCKY_CHANT
.4byte \ptr .4byte \ptr
.endm .endm
.macro suckerpunchcheck ptr:req .macro suckerpunchcheck ptr:req
various BS_ATTACKER, VARIOUS_SUCKER_PUNCH_CHECK various BS_ATTACKER, VARIOUS_SUCKER_PUNCH_CHECK
.4byte \ptr .4byte \ptr
.endm .endm
.macro setabilitysimple battler:req, ptr:req .macro setabilitysimple battler:req, ptr:req
various \battler VARIOUS_SET_SIMPLE_BEAM various \battler VARIOUS_SET_SIMPLE_BEAM
.4byte \ptr .4byte \ptr
.endm .endm
.macro tryentrainment ptr:req .macro tryentrainment ptr:req
various BS_ATTACKER, VARIOUS_TRY_ENTRAINMENT various BS_ATTACKER, VARIOUS_TRY_ENTRAINMENT
.4byte \ptr .4byte \ptr
.endm .endm
.macro setlastusedability battler:req .macro setlastusedability battler:req
various \battler, VARIOUS_SET_LAST_USED_ABILITY various \battler, VARIOUS_SET_LAST_USED_ABILITY
.endm .endm
.macro tryhealpulse battler:req, ptr:req .macro tryhealpulse battler:req, ptr:req
various \battler, VARIOUS_TRY_HEAL_PULSE various \battler, VARIOUS_TRY_HEAL_PULSE
.4byte \ptr .4byte \ptr
.endm .endm
.macro tryquash ptr:req .macro tryquash ptr:req
various BS_ATTACKER, VARIOUS_TRY_QUASH various BS_ATTACKER, VARIOUS_TRY_QUASH
.4byte \ptr .4byte \ptr
.endm .endm
.macro tryafteryou ptr:req .macro tryafteryou ptr:req
various BS_ATTACKER, VARIOUS_AFTER_YOU various BS_ATTACKER, VARIOUS_AFTER_YOU
.4byte \ptr .4byte \ptr
.endm .endm
.macro trybestow ptr:req .macro trybestow ptr:req
various BS_ATTACKER, VARIOUS_BESTOW various BS_ATTACKER, VARIOUS_BESTOW
.4byte \ptr .4byte \ptr
.endm .endm
.macro invertstatstages battler:req .macro invertstatstages battler:req
various \battler, VARIOUS_INVERT_STAT_STAGES various \battler, VARIOUS_INVERT_STAT_STAGES
.endm .endm
.macro setterrain ptr:req .macro setterrain ptr:req
various BS_ATTACKER, VARIOUS_SET_TERRAIN various BS_ATTACKER, VARIOUS_SET_TERRAIN
.4byte \ptr .4byte \ptr
.endm .endm
.macro trymefirst ptr:req .macro trymefirst ptr:req
various BS_ATTACKER, VARIOUS_TRY_ME_FIRST various BS_ATTACKER, VARIOUS_TRY_ME_FIRST
.4byte \ptr .4byte \ptr
.endm .endm
.macro jumpifbattleend ptr:req .macro jumpifbattleend ptr:req
various BS_ATTACKER, VARIOUS_JUMP_IF_BATTLE_END various BS_ATTACKER, VARIOUS_JUMP_IF_BATTLE_END
.4byte \ptr .4byte \ptr
.endm .endm
.macro tryelectrify ptr:req .macro tryelectrify ptr:req
various BS_ATTACKER, VARIOUS_TRY_ELECTRIFY various BS_ATTACKER, VARIOUS_TRY_ELECTRIFY
.4byte \ptr .4byte \ptr
.endm .endm
.macro tryreflecttype ptr:req .macro tryreflecttype ptr:req
various BS_ATTACKER, VARIOUS_TRY_REFLECT_TYPE various BS_ATTACKER, VARIOUS_TRY_REFLECT_TYPE
.4byte \ptr .4byte \ptr
.endm .endm
.macro trysoak ptr:req .macro trysoak ptr:req
various BS_ATTACKER, VARIOUS_TRY_SOAK various BS_ATTACKER, VARIOUS_TRY_SOAK
.4byte \ptr .4byte \ptr
.endm .endm
.macro handlemegaevo battler:req, case:req .macro handlemegaevo battler:req, case:req
various \battler, VARIOUS_HANDLE_MEGA_EVO various \battler, VARIOUS_HANDLE_MEGA_EVO
.byte \case .byte \case
.endm .endm
.macro handleformchange battler:req, case:req .macro handleformchange battler:req, case:req
various \battler, VARIOUS_HANDLE_FORM_CHANGE various \battler, VARIOUS_HANDLE_FORM_CHANGE
.byte \case .byte \case
.endm .endm
.macro jumpifcantuselastresort battler:req, ptr:req .macro jumpifcantuselastresort battler:req, ptr:req
various \battler, VARIOUS_TRY_LAST_RESORT various \battler, VARIOUS_TRY_LAST_RESORT
.4byte \ptr .4byte \ptr
.endm .endm
.macro argumentstatuseffect .macro argumentstatuseffect
various BS_ATTACKER, VARIOUS_ARGUMENT_STATUS_EFFECT various BS_ATTACKER, VARIOUS_ARGUMENT_STATUS_EFFECT
.endm .endm
.macro tryhitswitchtarget ptr:req .macro tryhitswitchtarget ptr:req
various BS_ATTACKER, VARIOUS_TRY_HIT_SWITCH_TARGET various BS_ATTACKER, VARIOUS_TRY_HIT_SWITCH_TARGET
.4byte \ptr .4byte \ptr
.endm .endm
.macro tryautotomize battler:req, ptr:req .macro tryautotomize battler:req, ptr:req
various \battler, VARIOUS_TRY_AUTOTOMIZE various \battler, VARIOUS_TRY_AUTOTOMIZE
.4byte \ptr .4byte \ptr
.endm .endm
.macro jumpifcantusesynchronoise ptr:req .macro jumpifcantusesynchronoise ptr:req
various BS_ATTACKER, VARIOUS_TRY_SYNCHRONOISE various BS_ATTACKER, VARIOUS_TRY_SYNCHRONOISE
.4byte \ptr .4byte \ptr
.endm .endm
.macro trycopycat ptr:req .macro trycopycat ptr:req
various BS_ATTACKER, VARIOUS_TRY_COPYCAT various BS_ATTACKER, VARIOUS_TRY_COPYCAT
.4byte \ptr .4byte \ptr
.endm .endm
.macro showabilitypopup battler:req .macro showabilitypopup battler:req
various \battler, VARIOUS_ABILITY_POPUP various \battler, VARIOUS_ABILITY_POPUP
.endm .endm
.macro defogclear battler:req, clear:req, ptr:req .macro defogclear battler:req, clear:req, ptr:req
various \battler, VARIOUS_DEFOG various \battler, VARIOUS_DEFOG
.byte \clear .byte \clear
.4byte \ptr .4byte \ptr
.endm .endm
.macro jumpiftargetally ptr:req .macro jumpiftargetally ptr:req
various BS_ATTACKER, VARIOUS_JUMP_IF_TARGET_ALLY various BS_ATTACKER, VARIOUS_JUMP_IF_TARGET_ALLY
.4byte \ptr .4byte \ptr
.endm .endm
.macro trypsychoshift ptr:req .macro trypsychoshift ptr:req
various BS_ATTACKER, VARIOUS_PSYCHO_SHIFT various BS_ATTACKER, VARIOUS_PSYCHO_SHIFT
.4byte \ptr .4byte \ptr
.endm .endm
.macro curestatus battler:req .macro curestatus battler:req
various \battler, VARIOUS_CURE_STATUS various \battler, VARIOUS_CURE_STATUS
.endm .endm
.macro powertrick battler:req .macro powertrick battler:req
various \battler, VARIOUS_POWER_TRICK various \battler, VARIOUS_POWER_TRICK
.endm .endm
.macro argumenttomoveeffect .macro argumenttomoveeffect
various BS_ATTACKER, VARIOUS_ARGUMENT_TO_MOVE_EFFECT various BS_ATTACKER, VARIOUS_ARGUMENT_TO_MOVE_EFFECT
.endm .endm
.macro jumpifnotgrounded battler:req, ptr:req .macro jumpifnotgrounded battler:req, ptr:req
various \battler, VARIOUS_JUMP_IF_NOT_GROUNDED various \battler, VARIOUS_JUMP_IF_NOT_GROUNDED
.4byte \ptr .4byte \ptr
.endm .endm
.macro handletrainerslidemsg battler:req, field:req .macro handletrainerslidemsg battler:req, field:req
various \battler, VARIOUS_HANDLE_TRAINER_SLIDE_MSG various \battler, VARIOUS_HANDLE_TRAINER_SLIDE_MSG
.byte \field .byte \field
.endm .endm
.macro trytrainerslidefirstdownmsg battler:req .macro trytrainerslidefirstdownmsg battler:req
various \battler, VARIOUS_TRY_TRAINER_SLIDE_MSG_FIRST_OFF various \battler, VARIOUS_TRY_TRAINER_SLIDE_MSG_FIRST_OFF
.endm .endm
.macro trytrainerslidelastonmsg battler:req .macro trytrainerslidelastonmsg battler:req
various \battler, VARIOUS_TRY_TRAINER_SLIDE_MSG_LAST_ON various \battler, VARIOUS_TRY_TRAINER_SLIDE_MSG_LAST_ON
.endm .endm
.macro setauroraveil battler:req .macro setauroraveil battler:req
various \battler, VARIOUS_SET_AURORA_VEIL various \battler, VARIOUS_SET_AURORA_VEIL
.endm .endm
.macro trysetthirdtype battler:req, ptr:req .macro trysetthirdtype battler:req, ptr:req
various \battler, VARIOUS_TRY_THIRD_TYPE various \battler, VARIOUS_TRY_THIRD_TYPE
.4byte \ptr .4byte \ptr
.endm .endm
.macro tryaccupressure battler:req, ptr:req .macro tryaccupressure battler:req, ptr:req
various \battler, VARIOUS_ACUPRESSURE various \battler, VARIOUS_ACUPRESSURE
.4byte \ptr .4byte \ptr
.endm .endm
.macro setpowder battler:req .macro setpowder battler:req
various \battler, VARIOUS_SET_POWDER various \battler, VARIOUS_SET_POWDER
.endm .endm
.macro spectralthiefprintstats .macro spectralthiefprintstats
various BS_ATTACKER, VARIOUS_SPECTRAL_THIEF various BS_ATTACKER, VARIOUS_SPECTRAL_THIEF
.endm .endm
.macro bringdownairbornebattler battler:req .macro bringdownairbornebattler battler:req
various \battler, VARIOUS_GRAVITY_ON_AIRBORNE_MONS various \battler, VARIOUS_GRAVITY_ON_AIRBORNE_MONS
.endm .endm
.macro checkgrassyterrainheal battler:req, ptr:req .macro checkgrassyterrainheal battler:req, ptr:req
various \battler, VARIOUS_CHECK_IF_GRASSY_TERRAIN_HEALS various \battler, VARIOUS_CHECK_IF_GRASSY_TERRAIN_HEALS
.4byte \ptr .4byte \ptr
.endm .endm
.macro jumpifnotberry battler:req, ptr:req .macro jumpifnotberry battler:req, ptr:req
various \battler, VARIOUS_JUMP_IF_NOT_BERRY various \battler, VARIOUS_JUMP_IF_NOT_BERRY
.4byte \ptr .4byte \ptr
.endm .endm
.macro jumpifroarfails ptr:req .macro jumpifroarfails ptr:req
various BS_ATTACKER, VARIOUS_JUMP_IF_ROAR_FAILS various BS_ATTACKER, VARIOUS_JUMP_IF_ROAR_FAILS
.4byte \ptr .4byte \ptr
@ -1672,43 +1672,43 @@
various BS_ATTACKER, VARIOUS_TRY_INSTRUCT various BS_ATTACKER, VARIOUS_TRY_INSTRUCT
.4byte \ptr .4byte \ptr
.endm .endm
.macro settracedability battler:req .macro settracedability battler:req
various \battler, VARIOUS_TRACE_ABILITY various \battler, VARIOUS_TRACE_ABILITY
.endm .endm
.macro updatenick battler:req .macro updatenick battler:req
various \battler, VARIOUS_UPDATE_NICK various \battler, VARIOUS_UPDATE_NICK
.endm .endm
.macro tryillusionoff battler:req .macro tryillusionoff battler:req
various \battler, VARIOUS_TRY_ILLUSION_OFF various \battler, VARIOUS_TRY_ILLUSION_OFF
.endm .endm
.macro spriteignore0hp val:req .macro spriteignore0hp val:req
various BS_ATTACKER, VARIOUS_SET_SPRITEIGNORE0HP various BS_ATTACKER, VARIOUS_SET_SPRITEIGNORE0HP
.byte \val .byte \val
.endm .endm
.macro getstatvalue battler:req, statId:req .macro getstatvalue battler:req, statId:req
various \battler, VARIOUS_GET_STAT_VALUE various \battler, VARIOUS_GET_STAT_VALUE
.byte \statId .byte \statId
.endm .endm
.macro jumpiffullhp battler:req, ptr:req .macro jumpiffullhp battler:req, ptr:req
various \battler, VARIOUS_JUMP_IF_FULL_HP various \battler, VARIOUS_JUMP_IF_FULL_HP
.4byte \ptr .4byte \ptr
.endm .endm
.macro losetype battler:req, type:req .macro losetype battler:req, type:req
various \battler, VARIOUS_LOSE_TYPE various \battler, VARIOUS_LOSE_TYPE
.byte \type .byte \type
.endm .endm
.macro tryfriskmsg battler:req .macro tryfriskmsg battler:req
various \battler, VARIOUS_TRY_FRISK various \battler, VARIOUS_TRY_FRISK
.endm .endm
.macro jumpifshieldsdown battler:req, ptr:req .macro jumpifshieldsdown battler:req, ptr:req
various \battler, VARIOUS_JUMP_IF_SHIELDS_DOWN_PROTECTED various \battler, VARIOUS_JUMP_IF_SHIELDS_DOWN_PROTECTED
.4byte \ptr .4byte \ptr
@ -1725,32 +1725,32 @@
.byte \target .byte \target
.4byte \ptr .4byte \ptr
.endm .endm
.macro trysetfairylock ptr:req .macro trysetfairylock ptr:req
various BS_ATTACKER, VARIOUS_TRY_FAIRY_LOCK various BS_ATTACKER, VARIOUS_TRY_FAIRY_LOCK
.4byte \ptr .4byte \ptr
.endm .endm
.macro jumpifnoally battler:req, ptr:req .macro jumpifnoally battler:req, ptr:req
various \battler, VARIOUS_JUMP_IF_NO_ALLY various \battler, VARIOUS_JUMP_IF_NO_ALLY
.4byte \ptr .4byte \ptr
.endm .endm
.macro jumpifnoholdeffect battler:req, holdEffet:req, ptr:req .macro jumpifnoholdeffect battler:req, holdEffet:req, ptr:req
various \battler, VARIOUS_JUMP_IF_NO_HOLD_EFFECT various \battler, VARIOUS_JUMP_IF_NO_HOLD_EFFECT
.byte \holdEffet .byte \holdEffet
.4byte \ptr .4byte \ptr
.endm .endm
.macro infatuatewithbattler battler1:req, battler2:req .macro infatuatewithbattler battler1:req, battler2:req
various \battler1, VARIOUS_INFATUATE_WITH_BATTLER various \battler1, VARIOUS_INFATUATE_WITH_BATTLER
.byte \battler2 .byte \battler2
.endm .endm
.macro setlastuseditem battler:req .macro setlastuseditem battler:req
various \battler, VARIOUS_SET_LAST_USED_ITEM various \battler, VARIOUS_SET_LAST_USED_ITEM
.endm .endm
.macro jumpifabsent battler:req, ptr:req .macro jumpifabsent battler:req, ptr:req
various \battler, VARIOUS_JUMP_IF_ABSENT various \battler, VARIOUS_JUMP_IF_ABSENT
.4byte \ptr .4byte \ptr
@ -1765,6 +1765,10 @@
.4byte \ptr .4byte \ptr
.endm .endm
.macro tryactivategrimneigh, battler:req
various \battler, VARIOUS_TRY_ACTIVATE_GRIM_NEIGH
.endm
.macro eeriespellppreduce ptr:req .macro eeriespellppreduce ptr:req
various BS_TARGET, VARIOUS_EERIE_SPELL_PP_REDUCE various BS_TARGET, VARIOUS_EERIE_SPELL_PP_REDUCE
.4byte \ptr .4byte \ptr
@ -1783,57 +1787,57 @@
.macro removeterrain .macro removeterrain
various BS_ATTACKER, VARIOUS_REMOVE_TERRAIN various BS_ATTACKER, VARIOUS_REMOVE_TERRAIN
.endm .endm
@ helpful macros @ helpful macros
.macro setstatchanger stat:req, stages:req, down:req .macro setstatchanger stat:req, stages:req, down:req
setbyte sSTATCHANGER \stat | \stages << 3 | \down << 7 setbyte sSTATCHANGER \stat | \stages << 3 | \down << 7
.endm .endm
.macro setmoveeffect effect:req .macro setmoveeffect effect:req
sethword sMOVE_EFFECT \effect sethword sMOVE_EFFECT \effect
sethword sSAVED_MOVE_EFFECT \effect sethword sSAVED_MOVE_EFFECT \effect
.endm .endm
.macro chosenstatus1animation battler:req, status:req .macro chosenstatus1animation battler:req, status:req
chosenstatusanimation \battler, 0x0, \status chosenstatusanimation \battler, 0x0, \status
.endm .endm
.macro chosenstatus2animation battler:req, status:req .macro chosenstatus2animation battler:req, status:req
chosenstatusanimation \battler, 0x1, \status chosenstatusanimation \battler, 0x1, \status
.endm .endm
.macro sethword dst:req, value:req .macro sethword dst:req, value:req
setbyte \dst, (\value) & 0xFF setbyte \dst, (\value) & 0xFF
setbyte \dst + 1, ((\value) >> 8) & 0xFF setbyte \dst + 1, ((\value) >> 8) & 0xFF
.endm .endm
.macro setword dst:req, value:req .macro setword dst:req, value:req
setbyte \dst, (\value) & 0xFF setbyte \dst, (\value) & 0xFF
setbyte \dst + 1, ((\value) >> 8) & 0xFF setbyte \dst + 1, ((\value) >> 8) & 0xFF
setbyte \dst + 2, ((\value) >> 16) & 0xFF setbyte \dst + 2, ((\value) >> 16) & 0xFF
setbyte \dst + 3, ((\value) >> 24) & 0xFF setbyte \dst + 3, ((\value) >> 24) & 0xFF
.endm .endm
.macro copybyte dst:req, src:req .macro copybyte dst:req, src:req
copyarray \dst, \src, 0x1 copyarray \dst, \src, 0x1
.endm .endm
.macro copyhword dst:req, src:req .macro copyhword dst:req, src:req
copyarray \dst, \src, 0x2 copyarray \dst, \src, 0x2
.endm .endm
.macro copyword dst:req, src:req .macro copyword dst:req, src:req
copyarray \dst, \src, 0x4 copyarray \dst, \src, 0x4
.endm .endm
.macro jumpifbytenotequal byte1:req, byte2:req, jumpptr:req .macro jumpifbytenotequal byte1:req, byte2:req, jumpptr:req
jumpifarraynotequal \byte1, \byte2, 0x1, \jumpptr jumpifarraynotequal \byte1, \byte2, 0x1, \jumpptr
.endm .endm
.macro jumpifbyteequal byte1:req, byte2:req, jumpptr:req .macro jumpifbyteequal byte1:req, byte2:req, jumpptr:req
jumpifarrayequal \byte1, \byte2, 0x1, \jumpptr jumpifarrayequal \byte1, \byte2, 0x1, \jumpptr
.endm .endm
.macro jumpifmove move:req, jumpptr:req .macro jumpifmove move:req, jumpptr:req
jumpifhalfword CMP_EQUAL, gCurrentMove, \move, \jumpptr jumpifhalfword CMP_EQUAL, gCurrentMove, \move, \jumpptr
.endm .endm
@ -1849,39 +1853,39 @@
.macro jumpifstatus3 battler, status:req, jumpptr:req .macro jumpifstatus3 battler, status:req, jumpptr:req
jumpifstatus3condition \battler, \status, 0x0, \jumpptr jumpifstatus3condition \battler, \status, 0x0, \jumpptr
.endm .endm
.macro jumpifnostatus3 battler:req, status:req, jumpptr:req .macro jumpifnostatus3 battler:req, status:req, jumpptr:req
jumpifstatus3condition \battler, \status, 0x1, \jumpptr jumpifstatus3condition \battler, \status, 0x1, \jumpptr
.endm .endm
.macro jumpifmovehadnoeffect jumpptr:req .macro jumpifmovehadnoeffect jumpptr:req
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_NO_EFFECT, \jumpptr jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_NO_EFFECT, \jumpptr
.endm .endm
.macro jumpifbattletype flags:req, jumpptr:req .macro jumpifbattletype flags:req, jumpptr:req
jumpifword CMP_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr jumpifword CMP_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr
.endm .endm
.macro jumpifnotbattletype flags:req, jumpptr:req .macro jumpifnotbattletype flags:req, jumpptr:req
jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr
.endm .endm
.macro dmg_1_8_targethp .macro dmg_1_8_targethp
manipulatedamage DMG_1_8_TARGET_HP manipulatedamage DMG_1_8_TARGET_HP
.endm .endm
.macro dmgtomaxattackerhp .macro dmgtomaxattackerhp
manipulatedamage DMG_FULL_ATTACKER_HP manipulatedamage DMG_FULL_ATTACKER_HP
.endm .endm
.macro dmgtocurrattackerhp .macro dmgtocurrattackerhp
manipulatedamage DMG_CURR_ATTACKER_HP manipulatedamage DMG_CURR_ATTACKER_HP
.endm .endm
.macro dmg_1_2_attackerhp .macro dmg_1_2_attackerhp
manipulatedamage DMG_1_2_ATTACKER_HP manipulatedamage DMG_1_2_ATTACKER_HP
.endm .endm
.macro jumpifflowerveil jumpptr:req .macro jumpifflowerveil jumpptr:req
jumpifnottype BS_TARGET, TYPE_GRASS, 1f jumpifnottype BS_TARGET, TYPE_GRASS, 1f
jumpifability BS_TARGET_SIDE, ABILITY_FLOWER_VEIL, \jumpptr jumpifability BS_TARGET_SIDE, ABILITY_FLOWER_VEIL, \jumpptr
@ -1902,7 +1906,7 @@
jumpifability BS_TARGET, ABILITY_LEAF_GUARD, \jumpptr jumpifability BS_TARGET, ABILITY_LEAF_GUARD, \jumpptr
1: 1:
.endm .endm
.macro jumpifsafeguard jumpptr:req .macro jumpifsafeguard jumpptr:req
jumpifability BS_ATTACKER, ABILITY_INFILTRATOR, 1f jumpifability BS_ATTACKER, ABILITY_INFILTRATOR, 1f
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, \jumpptr jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, \jumpptr

View File

@ -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

View File

@ -345,11 +345,12 @@
.byte 0x32 .byte 0x32
.endm .endm
@ Plays the specified (song_number) song. The byte is apparently supposed to be 0x00. @ Plays the specified (song_number) song. If save_song is TRUE, the
.macro playbgm song_number:req, unknown:req @ specified (song_number) will be saved as if savebgm was called with it.
.macro playbgm song_number:req, save_song:req
.byte 0x33 .byte 0x33
.2byte \song_number .2byte \song_number
.byte \unknown .byte \save_song
.endm .endm
@ Saves the specified (song_number) song to be played later. @ Saves the specified (song_number) song to be played later.
@ -846,38 +847,40 @@
.endm .endm
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. @ 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. @ Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with multichoiceId.
.macro multichoice x:req, y:req, list: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 multichoice x:req, y:req, multichoiceId:req, ignoreBPress:req
.byte 0x6f .byte 0x6f
.byte \x .byte \x
.byte \y .byte \y
.byte \list .byte \multichoiceId
.byte \b .byte \ignoreBPress
.endm .endm
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. @ 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 @ Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with multichoiceId.
@ 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. @ 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. @ 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, list:req, default:req, b:req .macro multichoicedefault x:req, y:req, multichoiceId:req, default:req, ignoreBPress:req
.byte 0x70 .byte 0x70
.byte \x .byte \x
.byte \y .byte \y
.byte \list .byte \multichoiceId
.byte \default .byte \default
.byte \b .byte \ignoreBPress
.endm .endm
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. @ 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. @ 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 0x71
.byte \x .byte \x
.byte \y .byte \y
.byte \list .byte \multichoiceId
.byte \per_row .byte \per_row
.byte \B .byte \ignoreBPress
.endm .endm
@ Nopped in Emerald. @ Nopped in Emerald.
@ -886,21 +889,21 @@
.endm .endm
@ Nopped in Emerald, but still consumes parameters. @ 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 0x73
.byte \byte1 .byte \left
.byte \byte2 .byte \top
.byte \byte3 .byte \right
.byte \byte4 .byte \bottom
.endm .endm
@ Nopped in Emerald, but still consumes parameters. @ 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 0x74
.byte \byte1 .byte \left
.byte \byte2 .byte \top
.byte \byte3 .byte \multichoiceId
.byte \byte4 .byte \ignoreBPress
.endm .endm
@ Displays a box containing the front sprite for the specified (species) Pokemon species. @ Displays a box containing the front sprite for the specified (species) Pokemon species.
@ -916,10 +919,10 @@
.byte 0x76 .byte 0x76
.endm .endm
@ Draws an image of the winner of the contest. In FireRed, this command is a nop. (The argument is discarded.) @ Draws an image of the winner of the contest. winnerId is any CONTEST_WINNER_* constant.
.macro showcontestwinner a:req .macro showcontestpainting winnerId:req
.byte 0x77 .byte 0x77
.byte \a .byte \winnerId
.endm .endm
@ Displays the string at pointer as braille text in a standard message box. The string must be formatted to use braille @ 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 .4byte \text
.endm .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 @ 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 .macro givemon species:req, level:req, item:req
.byte 0x79 .byte 0x79
@ -1481,15 +1495,15 @@
.4byte \value .4byte \value
.endm .endm
@ Makes the Pokemon in the specified slot of the player's party obedient. It will not randomly disobey orders in battle. @ Sets the Pokemon in the specified slot of the player party's eventLegal bit.
.macro setmonobedient slot:req .macro setmoneventlegal slot:req
.byte 0xcd .byte 0xcd
.2byte \slot .2byte \slot
.endm .endm
@ Checks if the Pokemon in the specified slot of the player's party is obedient. If the Pokemon is disobedient, @ 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 Pokemon is obedient (or if the specified slot is empty or invalid), VAR_RESULT is FALSE. @ VAR_RESULT is TRUE. If the bit is set (or if the specified slot is empty or invalid), VAR_RESULT is FALSE.
.macro checkmonobedience slot:req .macro checkmoneventlegal slot:req
.byte 0xce .byte 0xce
.2byte \slot .2byte \slot
.endm .endm
@ -1556,11 +1570,11 @@
.2byte \y .2byte \y
.endm .endm
.macro cmdD8 .macro selectapproachingtrainer
.byte 0xd8 .byte 0xd8
.endm .endm
.macro cmdD9 .macro lockfortrainer
.byte 0xd9 .byte 0xd9
.endm .endm
@ -1568,7 +1582,7 @@
.byte 0xda .byte 0xda
.endm .endm
.macro message3 pointer:req .macro messageinstant pointer:req
.byte 0xdb .byte 0xdb
.4byte \pointer .4byte \pointer
.endm .endm

View File

@ -51,25 +51,25 @@
inc _num_traps inc _num_traps
.endm .endm
.macro bg_event x, y, elevation, kind, arg6, arg7, arg8 .macro bg_event x, y, elevation, kind, arg6, arg7
.2byte \x, \y .2byte \x, \y
.byte \elevation, \kind .byte \elevation, \kind
.2byte 0 .2byte 0
.if \kind < 5 .if \kind != BG_EVENT_HIDDEN_ITEM
.4byte \arg6 .4byte \arg6
.else .else
.2byte \arg6 .2byte \arg6
.byte \arg7, \arg8 .2byte \arg7
.endif .endif
inc _num_signs inc _num_signs
.endm .endm
.macro bg_hidden_item_event x, y, height, item, flag .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 .endm
.macro bg_secret_base_event x, y, height, secret_base_id .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 .endm
.macro map_events npcs, warps, traps, signs .macro map_events npcs, warps, traps, signs

View File

@ -1,11 +1,19 @@
#!/bin/bash #!/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 if [ $(($1)) -ge $((0x8000000)) ]; then
OPTIONS="--adjust-vma=0x8000000 --start-address=$(($1)) --stop-address=$(($1 + $2))" OPTIONS="--adjust-vma=0x8000000 --start-address=$(($1)) --stop-address=$(($1 + $2))"
else else
OPTIONS="--start-address=$(($1)) --stop-address=$(($1 + $2))" OPTIONS="--start-address=$(($1)) --stop-address=$(($1 + $2))"
fi fi
$OBJDUMP $OPTIONS baserom.gba > baserom.dump $OBJDUMP $OPTIONS baserom.gba > baserom.dump
$OBJDUMP $OPTIONS pokeemerald.gba > pokeemerald.dump $OBJDUMP $OPTIONS pokeemerald.gba > pokeemerald.dump
diff -u baserom.dump pokeemerald.dump diff -u baserom.dump pokeemerald.dump

View File

@ -1,29 +1,27 @@
TOOLCHAIN := $(DEVKITARM) TOOLCHAIN := $(DEVKITARM)
COMPARE ?= 0 COMPARE ?= 0
ifeq ($(CC),) # don't use dkP's base_tools anymore
HOSTCC := gcc # because the redefinition of $(CC) conflicts
else # with when we want to use $(CC) to preprocess files
HOSTCC := $(CC) # thus, manually create the variables for the bin
endif # files, or use arm-none-eabi binaries on the system
# if dkP is not installed on this system
ifeq ($(CXX),) ifneq (,$(TOOLCHAIN))
HOSTCXX := g++ ifneq ($(wildcard $(TOOLCHAIN)/bin),)
else
HOSTCXX := $(CXX)
endif
ifneq (,$(wildcard $(TOOLCHAIN)/base_tools))
include $(TOOLCHAIN)/base_tools
else
export PATH := $(TOOLCHAIN)/bin:$(PATH) export PATH := $(TOOLCHAIN)/bin:$(PATH)
endif
endif
PREFIX := arm-none-eabi- PREFIX := arm-none-eabi-
OBJCOPY := $(PREFIX)objcopy OBJCOPY := $(PREFIX)objcopy
export CC := $(PREFIX)gcc AS := $(PREFIX)as
export AS := $(PREFIX)as LD := $(PREFIX)ld
endif
export CPP := $(PREFIX)cpp # note: the makefile must be set up so MODERNCC is never called
export LD := $(PREFIX)ld # if MODERN=0
MODERNCC := $(PREFIX)gcc
ifeq ($(OS),Windows_NT) ifeq ($(OS),Windows_NT)
EXE := .exe EXE := .exe
@ -31,6 +29,23 @@ else
EXE := EXE :=
endif 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 GAME_CODE := AGBJ
MAKER_CODE := 01 MAKER_CODE := 01
REVISION := 0 REVISION := 0
@ -166,7 +181,7 @@ $(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) $(DATA_ASM_SUBDIR)/$*.s)
endif endif
payload: payload:
@$(MAKE) -C payload COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN) @$(MAKE) -C payload COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN)
payload/payload.gba: payload payload/payload.gba: payload

View File

@ -434,8 +434,8 @@ RESUME_MUSIC = FC 18
TRANSPARENT = 00 TRANSPARENT = 00
WHITE = 01 WHITE = 01
DARK_GREY = 02 DARK_GRAY = 02
LIGHT_GREY = 03 LIGHT_GRAY = 03
RED = 04 RED = 04
LIGHT_RED = 05 LIGHT_RED = 05
GREEN = 06 GREEN = 06

View File

@ -1,29 +1,27 @@
TOOLCHAIN := $(DEVKITARM) TOOLCHAIN := $(DEVKITARM)
COMPARE ?= 0 COMPARE ?= 0
ifeq ($(CC),) # don't use dkP's base_tools anymore
HOSTCC := gcc # because the redefinition of $(CC) conflicts
else # with when we want to use $(CC) to preprocess files
HOSTCC := $(CC) # thus, manually create the variables for the bin
endif # files, or use arm-none-eabi binaries on the system
# if dkP is not installed on this system
ifeq ($(CXX),) ifneq (,$(TOOLCHAIN))
HOSTCXX := g++ ifneq ($(wildcard $(TOOLCHAIN)/bin),)
else
HOSTCXX := $(CXX)
endif
ifneq (,$(wildcard $(TOOLCHAIN)/base_tools))
include $(TOOLCHAIN)/base_tools
else
export PATH := $(TOOLCHAIN)/bin:$(PATH) export PATH := $(TOOLCHAIN)/bin:$(PATH)
endif
endif
PREFIX := arm-none-eabi- PREFIX := arm-none-eabi-
OBJCOPY := $(PREFIX)objcopy OBJCOPY := $(PREFIX)objcopy
export CC := $(PREFIX)gcc AS := $(PREFIX)as
export AS := $(PREFIX)as LD := $(PREFIX)ld
endif
export CPP := $(PREFIX)cpp # note: the makefile must be set up so MODERNCC is never called
export LD := $(PREFIX)ld # if MODERN=0
MODERNCC := $(PREFIX)gcc
ifeq ($(OS),Windows_NT) ifeq ($(OS),Windows_NT)
EXE := .exe EXE := .exe
@ -31,6 +29,23 @@ else
EXE := EXE :=
endif 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 SHELL := /bin/bash -o pipefail
CPPFLAGS := -I ../../tools/agbcc/include -I ../../tools/agbcc -iquote include -nostdinc -undef CPPFLAGS := -I ../../tools/agbcc/include -I ../../tools/agbcc -iquote include -nostdinc -undef

View File

@ -434,8 +434,8 @@ RESUME_MUSIC = FC 18
TRANSPARENT = 00 TRANSPARENT = 00
WHITE = 01 WHITE = 01
DARK_GREY = 02 DARK_GRAY = 02
LIGHT_GREY = 03 LIGHT_GRAY = 03
RED = 04 RED = 04
LIGHT_RED = 05 LIGHT_RED = 05
GREEN = 06 GREEN = 06

View File

@ -1,5 +1,5 @@
#ifndef GUARD_GBA_DEFINES #ifndef GUARD_GBA_DEFINES_H
#define GUARD_GBA_DEFINES #define GUARD_GBA_DEFINES_H
#include <stddef.h> #include <stddef.h>
@ -84,4 +84,4 @@
#define RGB_CYAN RGB(0, 31, 31) #define RGB_CYAN RGB(0, 31, 31)
#define RGB_WHITEALPHA (RGB_WHITE | 0x8000) #define RGB_WHITEALPHA (RGB_WHITE | 0x8000)
#endif // GUARD_GBA_DEFINES #endif // GUARD_GBA_DEFINES_H

View File

@ -419,7 +419,7 @@ void SetPokemonCryPitch(s16 val);
void SetPokemonCryLength(u16 val); void SetPokemonCryLength(u16 val);
void SetPokemonCryRelease(u8 val); void SetPokemonCryRelease(u8 val);
void SetPokemonCryProgress(u32 val); void SetPokemonCryProgress(u32 val);
int IsPokemonCryPlaying(struct MusicPlayerInfo *mplayInfo); bool32 IsPokemonCryPlaying(struct MusicPlayerInfo *mplayInfo);
void SetPokemonCryChorus(s8 val); void SetPokemonCryChorus(s8 val);
void SetPokemonCryStereo(u32 val); void SetPokemonCryStereo(u32 val);
void SetPokemonCryPriority(u8 val); void SetPokemonCryPriority(u8 val);

View File

@ -447,8 +447,8 @@ RESUME_MUSIC = FC 18
TRANSPARENT = 00 TRANSPARENT = 00
WHITE = 01 WHITE = 01
DARK_GREY = 02 DARK_GRAY = 02
LIGHT_GREY = 03 LIGHT_GRAY = 03
RED = 04 RED = 04
LIGHT_RED = 05 LIGHT_RED = 05
GREEN = 06 GREEN = 06

View File

@ -1 +1 @@
gUnknown_030062E8 gFactorySelect_CurrentOptionFunc

View File

@ -6,4 +6,4 @@ gBattlerControllerFuncs
gHealthboxSpriteIds gHealthboxSpriteIds
gMultiUsePlayerCursor gMultiUsePlayerCursor
gNumberOfMovesToChoose gNumberOfMovesToChoose
gUnknown_03005D7C gBattleControllerData

View File

@ -1,4 +1,4 @@
gFonts gFonts
gUnknown_03002F84 gDisableTextPrinters
gUnknown_03002F90 gCurGlyph
gTextFlags gTextFlags

View File

@ -1,5 +1,5 @@
filler_03002F58 gUnusedWindowVar1
filler_03002F5C gUnusedWindowVar2
gTransparentTileNumber gTransparentTileNumber
filler_03002F64 gUnusedWindowVar3
gUnknown_03002F70 gWindowBgTilemapBuffers

View File

@ -1,6 +1,7 @@
.equiv ID_NUMBER, 0x68736d53 .equiv ID_NUMBER, 0x68736d53
.equiv PCM_DMA_BUF_SIZE, 1584 .equiv PCM_DMA_BUF_SIZE, 1584
.equiv MAX_DIRECTSOUND_CHANNELS, 12
.equiv C_V, 0x40 .equiv C_V, 0x40
@ -93,7 +94,7 @@
struct_field o_SoundInfo_plynote, 4 struct_field o_SoundInfo_plynote, 4
struct_field o_SoundInfo_ExtVolPit, 4 struct_field o_SoundInfo_ExtVolPit, 4
struct_field o_SoundInfo_gap2, 16 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 o_SoundInfo_pcmBuffer, PCM_DMA_BUF_SIZE * 2
struct_field SoundInfo_size, 0 struct_field SoundInfo_size, 0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -35,7 +35,7 @@ gBattlescriptsForUsingItem:: @ 82DBD3C
.4byte BattleScript_OpponentUsesHealItem @ AI_ITEM_HEAL_HP .4byte BattleScript_OpponentUsesHealItem @ AI_ITEM_HEAL_HP
.4byte BattleScript_OpponentUsesStatusCureItem @ AI_ITEM_CURE_CONDITION .4byte BattleScript_OpponentUsesStatusCureItem @ AI_ITEM_CURE_CONDITION
.4byte BattleScript_OpponentUsesXItem @ AI_ITEM_X_STAT .4byte BattleScript_OpponentUsesXItem @ AI_ITEM_X_STAT
.4byte BattleScript_OpponentUsesGuardSpecs @ AI_ITEM_GUARD_SPECS .4byte BattleScript_OpponentUsesGuardSpec @ AI_ITEM_GUARD_SPEC
.align 2 .align 2
gBattlescriptsForRunningByItem:: @ 82DBD54 gBattlescriptsForRunningByItem:: @ 82DBD54
@ -69,23 +69,23 @@ BattleScript_SuccessBallThrow::
BattleScript_PrintCaughtMonInfo:: BattleScript_PrintCaughtMonInfo::
printstring STRINGID_GOTCHAPKMNCAUGHT printstring STRINGID_GOTCHAPKMNCAUGHT
jumpifbyte CMP_NOT_EQUAL, sEXP_CATCH, TRUE, BattleScript_TryPrintCaughtMonInfo jumpifbyte CMP_NOT_EQUAL, sEXP_CATCH, TRUE, BattleScript_TryPrintCaughtMonInfo
setbyte sGIVEEXP_STATE, 0x0 setbyte sGIVEEXP_STATE, 0
getexp BS_TARGET getexp BS_TARGET
sethword gBattle_BG2_X, 0x0 sethword gBattle_BG2_X, 0
BattleScript_TryPrintCaughtMonInfo: BattleScript_TryPrintCaughtMonInfo:
trysetcaughtmondexflags BattleScript_TryNicknameCaughtMon trysetcaughtmondexflags BattleScript_TryNicknameCaughtMon
printstring STRINGID_PKMNDATAADDEDTODEX printstring STRINGID_PKMNDATAADDEDTODEX
waitstate waitstate
setbyte gBattleCommunication, 0x0 setbyte gBattleCommunication, 0
displaydexinfo displaydexinfo
BattleScript_TryNicknameCaughtMon:: BattleScript_TryNicknameCaughtMon::
printstring STRINGID_GIVENICKNAMECAPTURED printstring STRINGID_GIVENICKNAMECAPTURED
waitstate waitstate
setbyte gBattleCommunication, 0x0 setbyte gBattleCommunication, 0
trygivecaughtmonnick BattleScript_GiveCaughtMonEnd trygivecaughtmonnick BattleScript_GiveCaughtMonEnd
givecaughtmon givecaughtmon
printfromtable gCaughtMonStringIds printfromtable gCaughtMonStringIds
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
goto BattleScript_SuccessBallThrowEnd goto BattleScript_SuccessBallThrowEnd
BattleScript_GiveCaughtMonEnd:: BattleScript_GiveCaughtMonEnd::
givecaughtmon givecaughtmon
@ -100,84 +100,79 @@ BattleScript_WallyBallThrow::
BattleScript_ShakeBallThrow:: BattleScript_ShakeBallThrow::
printfromtable gBallEscapeStringIds printfromtable gBallEscapeStringIds
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_SAFARI, BattleScript_ShakeBallThrowEnd 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 printstring STRINGID_OUTOFSAFARIBALLS
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
setbyte gBattleOutcome, B_OUTCOME_NO_SAFARI_BALLS setbyte gBattleOutcome, B_OUTCOME_NO_SAFARI_BALLS
BattleScript_ShakeBallThrowEnd:: BattleScript_ShakeBallThrowEnd::
finishaction finishaction
BattleScript_TrainerBallBlock:: BattleScript_TrainerBallBlock::
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
printstring STRINGID_TRAINERBLOCKEDBALL printstring STRINGID_TRAINERBLOCKEDBALL
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
printstring STRINGID_DONTBEATHIEF printstring STRINGID_DONTBEATHIEF
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
finishaction finishaction
BattleScript_PlayerUsesItem:: BattleScript_PlayerUsesItem::
setbyte sMOVEEND_STATE, 0xF moveendcase MOVEEND_MIRROR_MOVE
moveend 0x1, 0x0
end end
BattleScript_OpponentUsesHealItem:: BattleScript_OpponentUsesHealItem::
printstring STRINGID_EMPTYSTRING3 printstring STRINGID_EMPTYSTRING3
pause 0x30 pause B_WAIT_TIME_MED
playse SE_USE_ITEM playse SE_USE_ITEM
printstring STRINGID_TRAINER1USEDITEM printstring STRINGID_TRAINER1USEDITEM
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT
useitemonopponent useitemonopponent
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate BS_ATTACKER healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER datahpupdate BS_ATTACKER
printstring STRINGID_PKMNSITEMRESTOREDHEALTH printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
updatestatusicon BS_ATTACKER updatestatusicon BS_ATTACKER
setbyte sMOVEEND_STATE, 0xF moveendcase MOVEEND_MIRROR_MOVE
moveend 0x1, 0x0
finishaction finishaction
BattleScript_OpponentUsesStatusCureItem:: BattleScript_OpponentUsesStatusCureItem::
printstring STRINGID_EMPTYSTRING3 printstring STRINGID_EMPTYSTRING3
pause 0x30 pause B_WAIT_TIME_MED
playse SE_USE_ITEM playse SE_USE_ITEM
printstring STRINGID_TRAINER1USEDITEM printstring STRINGID_TRAINER1USEDITEM
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
useitemonopponent useitemonopponent
printfromtable gTrainerItemCuredStatusStringIds printfromtable gTrainerItemCuredStatusStringIds
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
updatestatusicon BS_ATTACKER updatestatusicon BS_ATTACKER
setbyte sMOVEEND_STATE, 0xF moveendcase MOVEEND_MIRROR_MOVE
moveend 0x1, 0x0
finishaction finishaction
BattleScript_OpponentUsesXItem:: BattleScript_OpponentUsesXItem::
printstring STRINGID_EMPTYSTRING3 printstring STRINGID_EMPTYSTRING3
pause 0x30 pause B_WAIT_TIME_MED
playse SE_USE_ITEM playse SE_USE_ITEM
printstring STRINGID_TRAINER1USEDITEM printstring STRINGID_TRAINER1USEDITEM
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
useitemonopponent useitemonopponent
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
setbyte sMOVEEND_STATE, 0xF moveendcase MOVEEND_MIRROR_MOVE
moveend 0x1, 0x0
finishaction finishaction
BattleScript_OpponentUsesGuardSpecs:: BattleScript_OpponentUsesGuardSpec::
printstring STRINGID_EMPTYSTRING3 printstring STRINGID_EMPTYSTRING3
pause 0x30 pause B_WAIT_TIME_MED
playse SE_USE_ITEM playse SE_USE_ITEM
printstring STRINGID_TRAINER1USEDITEM printstring STRINGID_TRAINER1USEDITEM
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
useitemonopponent useitemonopponent
printfromtable gMistUsedStringIds printfromtable gMistUsedStringIds
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
setbyte sMOVEEND_STATE, 0xF moveendcase MOVEEND_MIRROR_MOVE
moveend 0x1, 0x0
finishaction finishaction
BattleScript_RunByUsingItem:: BattleScript_RunByUsingItem::
@ -187,33 +182,33 @@ BattleScript_RunByUsingItem::
BattleScript_ActionWatchesCarefully: BattleScript_ActionWatchesCarefully:
printstring STRINGID_PKMNWATCHINGCAREFULLY printstring STRINGID_PKMNWATCHINGCAREFULLY
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
end2 end2
BattleScript_ActionGetNear: BattleScript_ActionGetNear:
printfromtable gSafariGetNearStringIds printfromtable gSafariGetNearStringIds
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
end2 end2
BattleScript_ActionThrowPokeblock: BattleScript_ActionThrowPokeblock:
printstring STRINGID_THREWPOKEBLOCKATPKMN printstring STRINGID_THREWPOKEBLOCKATPKMN
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
playanimation BS_ATTACKER, B_ANIM_POKEBLOCK_THROW, NULL playanimation BS_ATTACKER, B_ANIM_POKEBLOCK_THROW, NULL
printfromtable gSafariPokeblockResultStringIds printfromtable gSafariPokeblockResultStringIds
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
end2 end2
BattleScript_ActionWallyThrow: BattleScript_ActionWallyThrow:
printstring STRINGID_RETURNMON printstring STRINGID_RETURNMON
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
returnatktoball returnatktoball
waitstate waitstate
trainerslidein BS_TARGET trainerslidein BS_TARGET
waitstate waitstate
printstring STRINGID_YOUTHROWABALLNOWRIGHT printstring STRINGID_YOUTHROWABALLNOWRIGHT
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
end2 end2
BattleScript_TrainerSlideMsgRet:: BattleScript_TrainerSlideMsgRet::
handletrainerslidemsg BS_SCRIPTING, 0 handletrainerslidemsg BS_SCRIPTING, 0
trainerslidein 1 trainerslidein 1
@ -223,7 +218,7 @@ BattleScript_TrainerSlideMsgRet::
handletrainerslidemsg BS_SCRIPTING, 2 handletrainerslidemsg BS_SCRIPTING, 2
waitstate waitstate
return return
BattleScript_TrainerSlideMsgEnd2:: BattleScript_TrainerSlideMsgEnd2::
call BattleScript_TrainerSlideMsgRet call BattleScript_TrainerSlideMsgRet
end2 end2

View File

@ -2,6 +2,7 @@
#include "constants/apprentice.h" #include "constants/apprentice.h"
#include "constants/battle.h" #include "constants/battle.h"
#include "constants/battle_arena.h" #include "constants/battle_arena.h"
#include "constants/battle_config.h"
#include "constants/battle_dome.h" #include "constants/battle_dome.h"
#include "constants/battle_factory.h" #include "constants/battle_factory.h"
#include "constants/battle_frontier.h" #include "constants/battle_frontier.h"
@ -736,7 +737,7 @@ EventScript_RegionMap:: @ 827208F
Common_EventScript_PlayBrineysBoatMusic:: @ 82720A0 Common_EventScript_PlayBrineysBoatMusic:: @ 82720A0
setflag FLAG_DONT_TRANSITION_MUSIC setflag FLAG_DONT_TRANSITION_MUSIC
playbgm MUS_SAILING, 0 playbgm MUS_SAILING, FALSE
return return
Common_EventScript_StopBrineysBoatMusic:: @ 82720A8 Common_EventScript_StopBrineysBoatMusic:: @ 82720A8

View File

@ -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

View File

@ -742,14 +742,14 @@
"blockdata_filepath": "data/layouts/LilycoveCity_House2/map.bin" "blockdata_filepath": "data/layouts/LilycoveCity_House2/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_08428450", "id": "LAYOUT_UNUSED_CONTEST_ROOM1",
"name": "Unknown_08428450_Layout", "name": "UnusedContestRoom1_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_Building", "primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_Contest", "secondary_tileset": "gTileset_Contest",
"border_filepath": "data/layouts/Unknown_08428450/border.bin", "border_filepath": "data/layouts/UnusedContestRoom1/border.bin",
"blockdata_filepath": "data/layouts/Unknown_08428450/map.bin" "blockdata_filepath": "data/layouts/UnusedContestRoom1/map.bin"
}, },
{ {
"id": "LAYOUT_VERDANTURF_TOWN_WANDAS_HOUSE", "id": "LAYOUT_VERDANTURF_TOWN_WANDAS_HOUSE",
@ -822,24 +822,24 @@
"blockdata_filepath": "data/layouts/SlateportCity_SternsShipyard_2F/map.bin" "blockdata_filepath": "data/layouts/SlateportCity_SternsShipyard_2F/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_084294C4", "id": "LAYOUT_UNUSED_CONTEST_ROOM2",
"name": "Unknown_084294C4_Layout", "name": "UnusedContestRoom2_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_Building", "primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_Contest", "secondary_tileset": "gTileset_Contest",
"border_filepath": "data/layouts/Unknown_084294C4/border.bin", "border_filepath": "data/layouts/UnusedContestRoom2/border.bin",
"blockdata_filepath": "data/layouts/Unknown_084294C4/map.bin" "blockdata_filepath": "data/layouts/UnusedContestRoom2/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_084294E8", "id": "LAYOUT_UNUSED_CONTEST_ROOM3",
"name": "Unknown_084294E8_Layout", "name": "UnusedContestRoom3_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_Building", "primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_Contest", "secondary_tileset": "gTileset_Contest",
"border_filepath": "data/layouts/Unknown_084294E8/border.bin", "border_filepath": "data/layouts/UnusedContestRoom3/border.bin",
"blockdata_filepath": "data/layouts/Unknown_084294E8/map.bin" "blockdata_filepath": "data/layouts/UnusedContestRoom3/map.bin"
}, },
{ {
"id": "LAYOUT_SLATEPORT_CITY_POKEMON_FAN_CLUB", "id": "LAYOUT_SLATEPORT_CITY_POKEMON_FAN_CLUB",
@ -1692,144 +1692,144 @@
"blockdata_filepath": "data/layouts/ShoalCave_HighTideInnerRoom/map.bin" "blockdata_filepath": "data/layouts/ShoalCave_HighTideInnerRoom/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_0843E6C0", "id": "LAYOUT_UNUSED_CAVE1",
"name": "Unknown_0843E6C0_Layout", "name": "UnusedCave1_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_General", "primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave", "secondary_tileset": "gTileset_Cave",
"border_filepath": "data/layouts/Unknown_0843E6C0/border.bin", "border_filepath": "data/layouts/UnusedCave1/border.bin",
"blockdata_filepath": "data/layouts/Unknown_0843E6C0/map.bin" "blockdata_filepath": "data/layouts/UnusedCave1/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_0843E6E4", "id": "LAYOUT_UNUSED_CAVE2",
"name": "Unknown_0843E6E4_Layout", "name": "UnusedCave2_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_General", "primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave", "secondary_tileset": "gTileset_Cave",
"border_filepath": "data/layouts/Unknown_0843E6E4/border.bin", "border_filepath": "data/layouts/UnusedCave2/border.bin",
"blockdata_filepath": "data/layouts/Unknown_0843E6E4/map.bin" "blockdata_filepath": "data/layouts/UnusedCave2/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_0843E708", "id": "LAYOUT_UNUSED_CAVE3",
"name": "Unknown_0843E708_Layout", "name": "UnusedCave3_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_General", "primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave", "secondary_tileset": "gTileset_Cave",
"border_filepath": "data/layouts/Unknown_0843E708/border.bin", "border_filepath": "data/layouts/UnusedCave3/border.bin",
"blockdata_filepath": "data/layouts/Unknown_0843E708/map.bin" "blockdata_filepath": "data/layouts/UnusedCave3/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_0843E72C", "id": "LAYOUT_UNUSED_CAVE4",
"name": "Unknown_0843E72C_Layout", "name": "UnusedCave4_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_General", "primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave", "secondary_tileset": "gTileset_Cave",
"border_filepath": "data/layouts/Unknown_0843E72C/border.bin", "border_filepath": "data/layouts/UnusedCave4/border.bin",
"blockdata_filepath": "data/layouts/Unknown_0843E72C/map.bin" "blockdata_filepath": "data/layouts/UnusedCave4/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_0843E750", "id": "LAYOUT_UNUSED_CAVE5",
"name": "Unknown_0843E750_Layout", "name": "UnusedCave5_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_General", "primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave", "secondary_tileset": "gTileset_Cave",
"border_filepath": "data/layouts/Unknown_0843E750/border.bin", "border_filepath": "data/layouts/UnusedCave5/border.bin",
"blockdata_filepath": "data/layouts/Unknown_0843E750/map.bin" "blockdata_filepath": "data/layouts/UnusedCave5/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_0843E774", "id": "LAYOUT_UNUSED_CAVE6",
"name": "Unknown_0843E774_Layout", "name": "UnusedCave6_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_General", "primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave", "secondary_tileset": "gTileset_Cave",
"border_filepath": "data/layouts/Unknown_0843E774/border.bin", "border_filepath": "data/layouts/UnusedCave6/border.bin",
"blockdata_filepath": "data/layouts/Unknown_0843E774/map.bin" "blockdata_filepath": "data/layouts/UnusedCave6/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_0843E798", "id": "LAYOUT_UNUSED_CAVE7",
"name": "Unknown_0843E798_Layout", "name": "UnusedCave7_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_General", "primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave", "secondary_tileset": "gTileset_Cave",
"border_filepath": "data/layouts/Unknown_0843E798/border.bin", "border_filepath": "data/layouts/UnusedCave7/border.bin",
"blockdata_filepath": "data/layouts/Unknown_0843E798/map.bin" "blockdata_filepath": "data/layouts/UnusedCave7/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_0843E7BC", "id": "LAYOUT_UNUSED_CAVE8",
"name": "Unknown_0843E7BC_Layout", "name": "UnusedCave8_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_General", "primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave", "secondary_tileset": "gTileset_Cave",
"border_filepath": "data/layouts/Unknown_0843E7BC/border.bin", "border_filepath": "data/layouts/UnusedCave8/border.bin",
"blockdata_filepath": "data/layouts/Unknown_0843E7BC/map.bin" "blockdata_filepath": "data/layouts/UnusedCave8/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_0843E7E0", "id": "LAYOUT_UNUSED_CAVE9",
"name": "Unknown_0843E7E0_Layout", "name": "UnusedCave9_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_General", "primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave", "secondary_tileset": "gTileset_Cave",
"border_filepath": "data/layouts/Unknown_0843E7E0/border.bin", "border_filepath": "data/layouts/UnusedCave9/border.bin",
"blockdata_filepath": "data/layouts/Unknown_0843E7E0/map.bin" "blockdata_filepath": "data/layouts/UnusedCave9/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_0843E804", "id": "LAYOUT_UNUSED_CAVE10",
"name": "Unknown_0843E804_Layout", "name": "UnusedCave10_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_General", "primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave", "secondary_tileset": "gTileset_Cave",
"border_filepath": "data/layouts/Unknown_0843E804/border.bin", "border_filepath": "data/layouts/UnusedCave10/border.bin",
"blockdata_filepath": "data/layouts/Unknown_0843E804/map.bin" "blockdata_filepath": "data/layouts/UnusedCave10/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_0843E828", "id": "LAYOUT_UNUSED_CAVE11",
"name": "Unknown_0843E828_Layout", "name": "UnusedCave11_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_General", "primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave", "secondary_tileset": "gTileset_Cave",
"border_filepath": "data/layouts/Unknown_0843E828/border.bin", "border_filepath": "data/layouts/UnusedCave11/border.bin",
"blockdata_filepath": "data/layouts/Unknown_0843E828/map.bin" "blockdata_filepath": "data/layouts/UnusedCave11/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_0843E84C", "id": "LAYOUT_UNUSED_CAVE12",
"name": "Unknown_0843E84C_Layout", "name": "UnusedCave12_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_General", "primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave", "secondary_tileset": "gTileset_Cave",
"border_filepath": "data/layouts/Unknown_0843E84C/border.bin", "border_filepath": "data/layouts/UnusedCave12/border.bin",
"blockdata_filepath": "data/layouts/Unknown_0843E84C/map.bin" "blockdata_filepath": "data/layouts/UnusedCave12/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_0843E870", "id": "LAYOUT_UNUSED_CAVE13",
"name": "Unknown_0843E870_Layout", "name": "UnusedCave13_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_General", "primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave", "secondary_tileset": "gTileset_Cave",
"border_filepath": "data/layouts/Unknown_0843E870/border.bin", "border_filepath": "data/layouts/UnusedCave13/border.bin",
"blockdata_filepath": "data/layouts/Unknown_0843E870/map.bin" "blockdata_filepath": "data/layouts/UnusedCave13/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_0843E894", "id": "LAYOUT_UNUSED_CAVE14",
"name": "Unknown_0843E894_Layout", "name": "UnusedCave14_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_General", "primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Cave", "secondary_tileset": "gTileset_Cave",
"border_filepath": "data/layouts/Unknown_0843E894/border.bin", "border_filepath": "data/layouts/UnusedCave14/border.bin",
"blockdata_filepath": "data/layouts/Unknown_0843E894/map.bin" "blockdata_filepath": "data/layouts/UnusedCave14/map.bin"
}, },
{ {
"id": "LAYOUT_NEW_MAUVILLE_ENTRANCE", "id": "LAYOUT_NEW_MAUVILLE_ENTRANCE",
@ -2252,64 +2252,64 @@
"blockdata_filepath": "data/layouts/ContestHall/map.bin" "blockdata_filepath": "data/layouts/ContestHall/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_29", "id": "LAYOUT_UNUSED_CONTEST_HALL1",
"name": "UnknownLinkContestRoom_25_29_Layout", "name": "UnusedContestHall1_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_Building", "primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_Contest", "secondary_tileset": "gTileset_Contest",
"border_filepath": "data/layouts/UnknownLinkContestRoom_25_29/border.bin", "border_filepath": "data/layouts/UnusedContestHall1/border.bin",
"blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_29/map.bin" "blockdata_filepath": "data/layouts/UnusedContestHall1/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_30", "id": "LAYOUT_UNUSED_CONTEST_HALL2",
"name": "UnknownLinkContestRoom_25_30_Layout", "name": "UnusedContestHall2_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_Building", "primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_Contest", "secondary_tileset": "gTileset_Contest",
"border_filepath": "data/layouts/UnknownLinkContestRoom_25_30/border.bin", "border_filepath": "data/layouts/UnusedContestHall2/border.bin",
"blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_30/map.bin" "blockdata_filepath": "data/layouts/UnusedContestHall2/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_31", "id": "LAYOUT_UNUSED_CONTEST_HALL3",
"name": "UnknownLinkContestRoom_25_31_Layout", "name": "UnusedContestHall3_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_Building", "primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_Contest", "secondary_tileset": "gTileset_Contest",
"border_filepath": "data/layouts/UnknownLinkContestRoom_25_31/border.bin", "border_filepath": "data/layouts/UnusedContestHall3/border.bin",
"blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_31/map.bin" "blockdata_filepath": "data/layouts/UnusedContestHall3/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_32", "id": "LAYOUT_UNUSED_CONTEST_HALL4",
"name": "UnknownLinkContestRoom_25_32_Layout", "name": "UnusedContestHall4_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_Building", "primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_Contest", "secondary_tileset": "gTileset_Contest",
"border_filepath": "data/layouts/UnknownLinkContestRoom_25_32/border.bin", "border_filepath": "data/layouts/UnusedContestHall4/border.bin",
"blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_32/map.bin" "blockdata_filepath": "data/layouts/UnusedContestHall4/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_33", "id": "LAYOUT_UNUSED_CONTEST_HALL5",
"name": "UnknownLinkContestRoom_25_33_Layout", "name": "UnusedContestHall5_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_Building", "primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_Contest", "secondary_tileset": "gTileset_Contest",
"border_filepath": "data/layouts/UnknownLinkContestRoom_25_33/border.bin", "border_filepath": "data/layouts/UnusedContestHall5/border.bin",
"blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_33/map.bin" "blockdata_filepath": "data/layouts/UnusedContestHall5/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_34", "id": "LAYOUT_UNUSED_CONTEST_HALL6",
"name": "UnknownLinkContestRoom_25_34_Layout", "name": "UnusedContestHall6_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_Building", "primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_Contest", "secondary_tileset": "gTileset_Contest",
"border_filepath": "data/layouts/UnknownLinkContestRoom_25_34/border.bin", "border_filepath": "data/layouts/UnusedContestHall6/border.bin",
"blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_34/map.bin" "blockdata_filepath": "data/layouts/UnusedContestHall6/map.bin"
}, },
{ {
"id": "LAYOUT_CONTEST_HALL_BEAUTY", "id": "LAYOUT_CONTEST_HALL_BEAUTY",
@ -2412,14 +2412,14 @@
"blockdata_filepath": "data/layouts/SafariZone_South/map.bin" "blockdata_filepath": "data/layouts/SafariZone_South/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_08447028", "id": "LAYOUT_UNUSED_OUTDOOR_AREA",
"name": "Unknown_08447028_Layout", "name": "UnusedOutdoorArea_Layout",
"width": 58, "width": 58,
"height": 26, "height": 26,
"primary_tileset": "gTileset_General", "primary_tileset": "gTileset_General",
"secondary_tileset": "0", "secondary_tileset": "0",
"border_filepath": "data/layouts/Unknown_08447028/border.bin", "border_filepath": "data/layouts/UnusedOutdoorArea/border.bin",
"blockdata_filepath": "data/layouts/Unknown_08447028/map.bin" "blockdata_filepath": "data/layouts/UnusedOutdoorArea/map.bin"
}, },
{ {
"id": "LAYOUT_ROUTE109_SEASHORE_HOUSE", "id": "LAYOUT_ROUTE109_SEASHORE_HOUSE",
@ -3582,14 +3582,14 @@
"blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin" "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin"
}, },
{ {
"id": "LAYOUT_UNKNOWN_084693AC", "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_UNUSED",
"name": "Unknown_084693AC_Layout", "name": "BattleFrontier_BattlePikeRoomUnused_Layout",
"width": 1, "width": 1,
"height": 1, "height": 1,
"primary_tileset": "gTileset_Building", "primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_BattlePike", "secondary_tileset": "gTileset_BattlePike",
"border_filepath": "data/layouts/Unknown_084693AC/border.bin", "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomUnused/border.bin",
"blockdata_filepath": "data/layouts/Unknown_084693AC/map.bin" "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomUnused/map.bin"
}, },
{ {
"id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY", "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY",

View File

@ -10,6 +10,7 @@
#include "constants/weather.h" #include "constants/weather.h"
#include "constants/trainer_hill.h" #include "constants/trainer_hill.h"
#include "constants/trainer_types.h" #include "constants/trainer_types.h"
#include "constants/berry.h"
.include "asm/macros.inc" .include "asm/macros.inc"
.include "constants/constants.inc" .include "constants/constants.inc"

View File

@ -155,7 +155,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent:: @ 82576B0
call BattleFrontier_EventScript_GetCantRecordBattle call BattleFrontier_EventScript_GetCantRecordBattle
compare VAR_RESULT, TRUE compare VAR_RESULT, TRUE
goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponentNoRecord 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 switch VAR_RESULT
case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_ContinueChallenge case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_ContinueChallenge
case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskRecordBattle case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskRecordBattle
@ -164,7 +164,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent:: @ 82576B0
case MULTI_B_PRESSED, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent case MULTI_B_PRESSED, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent
BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponentNoRecord:: @ 8257768 BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponentNoRecord:: @ 8257768
multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_ContinueChallenge case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_ContinueChallenge
case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskPauseChallenge case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskPauseChallenge
@ -174,7 +174,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponentNoRecord:: @
BattleFrontier_BattleArenaBattleRoom_EventScript_AskRecordBattle:: @ 825779E BattleFrontier_BattleArenaBattleRoom_EventScript_AskRecordBattle:: @ 825779E
message BattleFrontier_BattleArenaBattleRoom_Text_RecordLastBattle message BattleFrontier_BattleArenaBattleRoom_Text_RecordLastBattle
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent
case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_RecordBattle case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_RecordBattle
@ -194,7 +194,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_AskPauseChallenge:: @ 82577DA
BattleFrontier_BattleArenaBattleRoom_EventScript_AskRetireChallenge:: @ 8257808 BattleFrontier_BattleArenaBattleRoom_EventScript_AskRetireChallenge:: @ 8257808
message BattleFrontier_BattleArenaBattleRoom_Text_RetireFromChallenge message BattleFrontier_BattleArenaBattleRoom_Text_RetireFromChallenge
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent
case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_WarpToLobbyLost case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_WarpToLobbyLost
@ -264,7 +264,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoon:: @ 82578D4
call BattleFrontier_EventScript_GetCantRecordBattle call BattleFrontier_EventScript_GetCantRecordBattle
compare VAR_RESULT, TRUE compare VAR_RESULT, TRUE
goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoonNoRecord 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 switch VAR_RESULT
case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGreta case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGreta
case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskRecordBattle case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskRecordBattle
@ -273,7 +273,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoon:: @ 82578D4
case MULTI_B_PRESSED, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoon case MULTI_B_PRESSED, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoon
BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoonNoRecord:: @ 825792B BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoonNoRecord:: @ 825792B
multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGreta case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGreta
case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskPauseChallenge case 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskPauseChallenge

View File

@ -84,7 +84,7 @@ BattleFrontier_BattleArenaLobby_EventScript_SaveAfterChallenge:: @ 8255D59
goto_if_eq BattleFrontier_BattleArenaLobby_EventScript_EndSaveAfterChallenge goto_if_eq BattleFrontier_BattleArenaLobby_EventScript_EndSaveAfterChallenge
message BattleFrontier_BattleArenaLobby_Text_RecordLastMatch message BattleFrontier_BattleArenaLobby_Text_RecordLastMatch
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattleArenaLobby_EventScript_EndSaveAfterChallenge case 1, BattleFrontier_BattleArenaLobby_EventScript_EndSaveAfterChallenge
case 0, BattleFrontier_BattleArenaLobby_EventScript_RecordMatch case 0, BattleFrontier_BattleArenaLobby_EventScript_RecordMatch
@ -116,7 +116,7 @@ BattleFrontier_BattleArenaLobby_EventScript_Attendant:: @ 8255DF4
BattleFrontier_BattleArenaLobby_EventScript_AskTakeChallenge:: @ 8255E0B BattleFrontier_BattleArenaLobby_EventScript_AskTakeChallenge:: @ 8255E0B
message BattleFrontier_BattleArenaLobby_Text_WishToTakeChallenge message BattleFrontier_BattleArenaLobby_Text_WishToTakeChallenge
waitmessage waitmessage
multichoice 17, 6, MULTI_CHALLENGEINFO, 0 multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleArenaLobby_EventScript_TryEnterChallenge case 0, BattleFrontier_BattleArenaLobby_EventScript_TryEnterChallenge
case 1, BattleFrontier_BattleArenaLobby_EventScript_ExplainChallenge case 1, BattleFrontier_BattleArenaLobby_EventScript_ExplainChallenge
@ -126,7 +126,7 @@ BattleFrontier_BattleArenaLobby_EventScript_AskTakeChallenge:: @ 8255E0B
BattleFrontier_BattleArenaLobby_EventScript_TryEnterChallenge:: @ 8255E47 BattleFrontier_BattleArenaLobby_EventScript_TryEnterChallenge:: @ 8255E47
message BattleFrontier_BattleArenaLobby_Text_WhichLevelMode message BattleFrontier_BattleArenaLobby_Text_WhichLevelMode
waitmessage waitmessage
multichoice 17, 6, MULTI_LEVEL_MODE, 0 multichoice 17, 6, MULTI_LEVEL_MODE, FALSE
switch VAR_RESULT switch VAR_RESULT
case FRONTIER_LVL_TENT, BattleFrontier_BattleArenaLobby_EventScript_CancelChallenge case FRONTIER_LVL_TENT, BattleFrontier_BattleArenaLobby_EventScript_CancelChallenge
case MULTI_B_PRESSED, BattleFrontier_BattleArenaLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleArenaLobby_EventScript_CancelChallenge
@ -325,7 +325,7 @@ BattleFrontier_BattleArenaLobby_EventScript_RulesBoard:: @ 82560CA
BattleFrontier_BattleArenaLobby_EventScript_ReadRulesBoard:: @ 82560D9 BattleFrontier_BattleArenaLobby_EventScript_ReadRulesBoard:: @ 82560D9
message BattleFrontier_BattleArenaLobby_Text_ReadWhichHeading message BattleFrontier_BattleArenaLobby_Text_ReadWhichHeading
waitmessage waitmessage
multichoice 17, 2, MULTI_BATTLE_ARENA_RULES, 0 multichoice 17, 2, MULTI_BATTLE_ARENA_RULES, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleArenaLobby_EventScript_BattleRules case 0, BattleFrontier_BattleArenaLobby_EventScript_BattleRules
case 1, BattleFrontier_BattleArenaLobby_EventScript_MindRules case 1, BattleFrontier_BattleArenaLobby_EventScript_MindRules

View File

@ -92,7 +92,7 @@ BattleFrontier_BattleDomeLobby_EventScript_AskRecordBattle:: @ 8249991
goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_EndChallenge goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_EndChallenge
message BattleFrontier_BattleDomeLobby_Text_RecordLastMatch message BattleFrontier_BattleDomeLobby_Text_RecordLastMatch
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattleDomeLobby_EventScript_EndChallenge case 1, BattleFrontier_BattleDomeLobby_EventScript_EndChallenge
case 0, BattleFrontier_BattleDomeLobby_EventScript_RecordBattle case 0, BattleFrontier_BattleDomeLobby_EventScript_RecordBattle
@ -147,7 +147,7 @@ BattleFrontier_BattleDomeLobby_EventScript_AskTakeChallenge:: @ 8249A72
compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_TakeDoublesChallenge call_if_eq BattleFrontier_BattleDomeLobby_EventScript_TakeDoublesChallenge
waitmessage waitmessage
multichoice 17, 6, MULTI_CHALLENGEINFO, 0 multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleDomeLobby_EventScript_TryEnterChallenge case 0, BattleFrontier_BattleDomeLobby_EventScript_TryEnterChallenge
case 1, BattleFrontier_BattleDomeLobby_EventScript_ExplainChallenge case 1, BattleFrontier_BattleDomeLobby_EventScript_ExplainChallenge
@ -157,7 +157,7 @@ BattleFrontier_BattleDomeLobby_EventScript_AskTakeChallenge:: @ 8249A72
BattleFrontier_BattleDomeLobby_EventScript_TryEnterChallenge:: @ 8249ABF BattleFrontier_BattleDomeLobby_EventScript_TryEnterChallenge:: @ 8249ABF
message BattleFrontier_BattleDomeLobby_Text_WhichLevelMode message BattleFrontier_BattleDomeLobby_Text_WhichLevelMode
waitmessage waitmessage
multichoice 17, 6, MULTI_LEVEL_MODE, 0 multichoice 17, 6, MULTI_LEVEL_MODE, FALSE
switch VAR_RESULT switch VAR_RESULT
case FRONTIER_LVL_TENT, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge case FRONTIER_LVL_TENT, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge
case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge
@ -427,7 +427,7 @@ BattleFrontier_BattleDomeLobby_EventScript_RulesBoard:: @ 8249E34
BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard:: @ 8249E43 BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard:: @ 8249E43
message BattleFrontier_BattleDomeLobby_Text_ReadWhichHeading message BattleFrontier_BattleDomeLobby_Text_ReadWhichHeading
waitmessage waitmessage
multichoice 17, 4, MULTI_BATTLE_DOME_RULES, 0 multichoice 17, 4, MULTI_BATTLE_DOME_RULES, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleDomeLobby_EventScript_RulesMatchup case 0, BattleFrontier_BattleDomeLobby_EventScript_RulesMatchup
case 1, BattleFrontier_BattleDomeLobby_EventScript_RulesTourneyTree case 1, BattleFrontier_BattleDomeLobby_EventScript_RulesTourneyTree

View File

@ -33,7 +33,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound:: @ 824B
call BattleFrontier_EventScript_GetCantRecordBattle call BattleFrontier_EventScript_GetCantRecordBattle
compare VAR_RESULT, TRUE compare VAR_RESULT, TRUE
goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRoundNoRecord 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 switch VAR_RESULT
case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowOpponentInfo case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowOpponentInfo
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowTourneyTree case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowTourneyTree
@ -44,7 +44,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound:: @ 824B
case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound
BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRoundNoRecord:: @ 824B2C1 BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRoundNoRecord:: @ 824B2C1
multichoice 16, 2, MULTI_TOURNEY_NO_RECORD, 1 multichoice 16, 2, MULTI_TOURNEY_NO_RECORD, TRUE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowOpponentInfo case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowOpponentInfo
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowTourneyTree case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowTourneyTree
@ -56,7 +56,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRoundNoRecord:
BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRecordBattle:: @ 824B30D BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRecordBattle:: @ 824B30D
message BattleFrontier_BattleDomePreBattleRoom_Text_RecordLastMatch message BattleFrontier_BattleDomePreBattleRoom_Text_RecordLastMatch
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound
case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_RecordBattle case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_RecordBattle
@ -76,7 +76,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_AskPauseChallenge:: @ 824B349
BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRetireChallenge:: @ 824B377 BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRetireChallenge:: @ 824B377
message BattleFrontier_BattleDomePreBattleRoom_Text_RetireYourChallenge message BattleFrontier_BattleDomePreBattleRoom_Text_RetireYourChallenge
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound
case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_RetireChallenge case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_RetireChallenge

View File

@ -83,7 +83,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_AskRecordBattle:: @ 825853B
goto_if_eq BattleFrontier_BattleFactoryLobby_EventScript_EndRecordBattle goto_if_eq BattleFrontier_BattleFactoryLobby_EventScript_EndRecordBattle
message BattleFrontier_BattleFactoryLobby_Text_RecordLastMatch message BattleFrontier_BattleFactoryLobby_Text_RecordLastMatch
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattleFactoryLobby_EventScript_EndRecordBattle case 1, BattleFrontier_BattleFactoryLobby_EventScript_EndRecordBattle
case 0, BattleFrontier_BattleFactoryLobby_EventScript_RecordBattle case 0, BattleFrontier_BattleFactoryLobby_EventScript_RecordBattle
@ -136,7 +136,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_AskTakeChallenge:: @ 8258606
compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES
call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_TakeDoublesChallenge call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_TakeDoublesChallenge
waitmessage waitmessage
multichoice 17, 6, MULTI_CHALLENGEINFO, 0 multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleFactoryLobby_EventScript_TryEnterChallenge case 0, BattleFrontier_BattleFactoryLobby_EventScript_TryEnterChallenge
case 1, BattleFrontier_BattleFactoryLobby_EventScript_ExplainChallenge case 1, BattleFrontier_BattleFactoryLobby_EventScript_ExplainChallenge
@ -146,7 +146,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_AskTakeChallenge:: @ 8258606
BattleFrontier_BattleFactoryLobby_EventScript_TryEnterChallenge:: @ 8258653 BattleFrontier_BattleFactoryLobby_EventScript_TryEnterChallenge:: @ 8258653
message BattleFrontier_BattleFactoryLobby_Text_WhichLevelMode message BattleFrontier_BattleFactoryLobby_Text_WhichLevelMode
waitmessage waitmessage
multichoice 17, 6, MULTI_LEVEL_MODE, 0 multichoice 17, 6, MULTI_LEVEL_MODE, FALSE
switch VAR_RESULT switch VAR_RESULT
case FRONTIER_LVL_TENT, BattleFrontier_BattleFactoryLobby_EventScript_CancelChallenge case FRONTIER_LVL_TENT, BattleFrontier_BattleFactoryLobby_EventScript_CancelChallenge
case MULTI_B_PRESSED, BattleFrontier_BattleFactoryLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleFactoryLobby_EventScript_CancelChallenge
@ -293,7 +293,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_RulesBoard:: @ 8258839
BattleFrontier_BattleFactoryLobby_EventScript_ReadRulesBoard:: @ 8258848 BattleFrontier_BattleFactoryLobby_EventScript_ReadRulesBoard:: @ 8258848
message BattleFrontier_BattleFactoryLobby_Text_ReadWhichHeading message BattleFrontier_BattleFactoryLobby_Text_ReadWhichHeading
waitmessage waitmessage
multichoice 17, 0, MULTI_BATTLE_FACTORY_RULES, 0 multichoice 17, 0, MULTI_BATTLE_FACTORY_RULES, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleFactoryLobby_EventScript_RulesBasics case 0, BattleFrontier_BattleFactoryLobby_EventScript_RulesBasics
case 1, BattleFrontier_BattleFactoryLobby_EventScript_RulesSwapPartner case 1, BattleFrontier_BattleFactoryLobby_EventScript_RulesSwapPartner

View File

@ -105,7 +105,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForRegularOpponent
call BattleFrontier_EventScript_GetCantRecordBattle call BattleFrontier_EventScript_GetCantRecordBattle
compare VAR_RESULT, TRUE compare VAR_RESULT, TRUE
goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponentNoRecord 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 switch VAR_RESULT
case 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapMon case 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapMon
case 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskRecordBattle case 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskRecordBattle
@ -114,7 +114,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForRegularOpponent
case MULTI_B_PRESSED, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent case MULTI_B_PRESSED, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent
BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponentNoRecord:: @ 8259CC6 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponentNoRecord:: @ 8259CC6
multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapMon case 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapMon
case 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskPauseChallenge case 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskPauseChallenge
@ -124,7 +124,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponentNoRecor
BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskRecordBattle:: @ 8259CFC BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskRecordBattle:: @ 8259CFC
message BattleFrontier_BattleFactoryPreBattleRoom_Text_RecordLatestBattle message BattleFrontier_BattleFactoryPreBattleRoom_Text_RecordLatestBattle
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent case 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent
case 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_RecordBattle case 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_RecordBattle
@ -144,7 +144,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskPauseChallenge:: @ 8259
BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskRetireChallenge:: @ 8259D66 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskRetireChallenge:: @ 8259D66
message BattleFrontier_BattleFactoryPreBattleRoom_Text_RetireFromChallenge message BattleFrontier_BattleFactoryPreBattleRoom_Text_RetireFromChallenge
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent case 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent
case 0, BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyLost case 0, BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyLost
@ -168,7 +168,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_SwapMons:: @ 8259DF2
fadescreen FADE_TO_BLACK fadescreen FADE_TO_BLACK
factory_swapmons factory_swapmons
waitstate waitstate
compare VAR_RESULT, 1 compare VAR_RESULT, TRUE @ Did player keep current pokemon
goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterBattleRoom goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterBattleRoom
factory_setswapped factory_setswapped
msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_YourSwapIsComplete, MSGBOX_DEFAULT msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_YourSwapIsComplete, MSGBOX_DEFAULT
@ -396,7 +396,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHead:: @ 825A0B
call BattleFrontier_EventScript_GetCantRecordBattle call BattleFrontier_EventScript_GetCantRecordBattle
compare VAR_RESULT, TRUE compare VAR_RESULT, TRUE
goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHeadNoRecord 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 switch VAR_RESULT
case 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapBeforeHead case 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapBeforeHead
case 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskRecordBattle case 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskRecordBattle
@ -405,7 +405,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHead:: @ 825A0B
case MULTI_B_PRESSED, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHead case MULTI_B_PRESSED, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHead
BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHeadNoRecord:: @ 825A110 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHeadNoRecord:: @ 825A110
multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapBeforeHead case 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapBeforeHead
case 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskPauseChallenge case 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskPauseChallenge

View File

@ -113,7 +113,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent:: @ 824F98
call BattleFrontier_EventScript_GetCantRecordBattle call BattleFrontier_EventScript_GetCantRecordBattle
compare VAR_RESULT, TRUE compare VAR_RESULT, TRUE
goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponentNoRecord 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 switch VAR_RESULT
case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_ContinueChallenge case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_ContinueChallenge
case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskRecordBattle case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskRecordBattle
@ -122,7 +122,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent:: @ 824F98
case MULTI_B_PRESSED, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent case MULTI_B_PRESSED, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent
BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponentNoRecord:: @ 824FA42 BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponentNoRecord:: @ 824FA42
multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_ContinueChallenge case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_ContinueChallenge
case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskPauseChallenge case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskPauseChallenge
@ -132,7 +132,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponentNoRecord::
BattleFrontier_BattlePalaceBattleRoom_EventScript_AskRecordBattle:: @ 824FA78 BattleFrontier_BattlePalaceBattleRoom_EventScript_AskRecordBattle:: @ 824FA78
message BattleFrontier_BattlePalaceBattleRoom_Text_RecordLastMatch message BattleFrontier_BattlePalaceBattleRoom_Text_RecordLastMatch
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent
case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_RecordBattle case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_RecordBattle
@ -152,7 +152,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_AskPauseChallenge:: @ 824FAB4
BattleFrontier_BattlePalaceBattleRoom_EventScript_AskRetireChallenge:: @ 824FAE2 BattleFrontier_BattlePalaceBattleRoom_EventScript_AskRetireChallenge:: @ 824FAE2
message BattleFrontier_BattlePalaceBattleRoom_Text_WishToQuitChallenge message BattleFrontier_BattlePalaceBattleRoom_Text_WishToQuitChallenge
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent
case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyLost case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyLost
@ -189,7 +189,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMaven:: @ 824FB79
call BattleFrontier_EventScript_GetCantRecordBattle call BattleFrontier_EventScript_GetCantRecordBattle
compare VAR_RESULT, TRUE compare VAR_RESULT, TRUE
goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMavenNoRecord 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 switch VAR_RESULT
case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenser case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenser
case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskRecordBattle case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskRecordBattle
@ -198,7 +198,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMaven:: @ 824FB79
case MULTI_B_PRESSED, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMaven case MULTI_B_PRESSED, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMaven
BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMavenNoRecord:: @ 824FBD0 BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMavenNoRecord:: @ 824FBD0
multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenser case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenser
case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskPauseChallenge case 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskPauseChallenge

View File

@ -85,7 +85,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_SaveAfterChallenge:: @ 824D8A1
goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_EndSaveAfterChallenge goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_EndSaveAfterChallenge
message BattleFrontier_BattlePalaceLobby_Text_LikeToRecordMatch message BattleFrontier_BattlePalaceLobby_Text_LikeToRecordMatch
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattlePalaceLobby_EventScript_EndSaveAfterChallenge case 1, BattleFrontier_BattlePalaceLobby_EventScript_EndSaveAfterChallenge
case 0, BattleFrontier_BattlePalaceLobby_EventScript_RecordMatch case 0, BattleFrontier_BattlePalaceLobby_EventScript_RecordMatch
@ -139,7 +139,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_AskTakeChallenge:: @ 824D999
compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES
call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_AskTakeDoubleBattleChallenge call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_AskTakeDoubleBattleChallenge
waitmessage waitmessage
multichoice 17, 6, MULTI_CHALLENGEINFO, 0 multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattlePalaceLobby_EventScript_TryEnterChallenge case 0, BattleFrontier_BattlePalaceLobby_EventScript_TryEnterChallenge
case 1, BattleFrontier_BattlePalaceLobby_EventScript_ExplainChallenge case 1, BattleFrontier_BattlePalaceLobby_EventScript_ExplainChallenge
@ -149,7 +149,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_AskTakeChallenge:: @ 824D999
BattleFrontier_BattlePalaceLobby_EventScript_TryEnterChallenge:: @ 824D9E6 BattleFrontier_BattlePalaceLobby_EventScript_TryEnterChallenge:: @ 824D9E6
message BattleFrontier_BattlePalaceLobby_Text_WhichChallenge message BattleFrontier_BattlePalaceLobby_Text_WhichChallenge
waitmessage waitmessage
multichoice 17, 6, MULTI_LEVEL_MODE, 0 multichoice 17, 6, MULTI_LEVEL_MODE, FALSE
switch VAR_RESULT switch VAR_RESULT
case FRONTIER_LVL_TENT, BattleFrontier_BattlePalaceLobby_EventScript_CancelChallenge case FRONTIER_LVL_TENT, BattleFrontier_BattlePalaceLobby_EventScript_CancelChallenge
case MULTI_B_PRESSED, BattleFrontier_BattlePalaceLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePalaceLobby_EventScript_CancelChallenge
@ -351,7 +351,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_RulesBoard:: @ 824DCA6
BattleFrontier_BattlePalaceLobby_EventScript_ReadRulesBoard:: @ 824DCB5 BattleFrontier_BattlePalaceLobby_EventScript_ReadRulesBoard:: @ 824DCB5
message BattleFrontier_BattlePalaceLobby_Text_ReadWhichHeading message BattleFrontier_BattlePalaceLobby_Text_ReadWhichHeading
waitmessage waitmessage
multichoice 16, 0, MULTI_BATTLE_PALACE_RULES, 0 multichoice 16, 0, MULTI_BATTLE_PALACE_RULES, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattlePalaceLobby_EventScript_RulesBasics case 0, BattleFrontier_BattlePalaceLobby_EventScript_RulesBasics
case 1, BattleFrontier_BattlePalaceLobby_EventScript_RulesNature case 1, BattleFrontier_BattlePalaceLobby_EventScript_RulesNature

View File

@ -101,7 +101,7 @@ BattleFrontier_BattlePikeLobby_EventScript_Attendant:: @ 825B868
BattleFrontier_BattlePikeLobby_EventScript_AskTakeChallenge:: @ 825B87F BattleFrontier_BattlePikeLobby_EventScript_AskTakeChallenge:: @ 825B87F
message BattleFrontier_BattlePikeLobby_Text_TakeChallenge message BattleFrontier_BattlePikeLobby_Text_TakeChallenge
waitmessage waitmessage
multichoice 17, 6, MULTI_CHALLENGEINFO, 0 multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattlePikeLobby_EventScript_TryEnterChallenge case 0, BattleFrontier_BattlePikeLobby_EventScript_TryEnterChallenge
case 1, BattleFrontier_BattlePikeLobby_EventScript_ExplainChallenge case 1, BattleFrontier_BattlePikeLobby_EventScript_ExplainChallenge
@ -111,7 +111,7 @@ BattleFrontier_BattlePikeLobby_EventScript_AskTakeChallenge:: @ 825B87F
BattleFrontier_BattlePikeLobby_EventScript_TryEnterChallenge:: @ 825B8BB BattleFrontier_BattlePikeLobby_EventScript_TryEnterChallenge:: @ 825B8BB
message BattleFrontier_BattlePikeLobby_Text_WhichChallengeMode message BattleFrontier_BattlePikeLobby_Text_WhichChallengeMode
waitmessage waitmessage
multichoice 17, 6, MULTI_LEVEL_MODE, 0 multichoice 17, 6, MULTI_LEVEL_MODE, FALSE
switch VAR_RESULT switch VAR_RESULT
case FRONTIER_LVL_TENT, BattleFrontier_BattlePikeLobby_EventScript_CancelChallenge case FRONTIER_LVL_TENT, BattleFrontier_BattlePikeLobby_EventScript_CancelChallenge
case MULTI_B_PRESSED, BattleFrontier_BattlePikeLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePikeLobby_EventScript_CancelChallenge
@ -236,7 +236,7 @@ BattleFrontier_BattlePikeLobby_EventScript_RulesBoard:: @ 825BAC6
BattleFrontier_BattlePikeLobby_EventScript_ReadRulesBoard:: @ 825BAD5 BattleFrontier_BattlePikeLobby_EventScript_ReadRulesBoard:: @ 825BAD5
message BattleFrontier_BattlePikeLobby_Text_ReadWhichHeading message BattleFrontier_BattlePikeLobby_Text_ReadWhichHeading
waitmessage waitmessage
multichoice 16, 4, MULTI_BATTLE_PIKE_RULES, 0 multichoice 16, 4, MULTI_BATTLE_PIKE_RULES, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattlePikeLobby_EventScript_RulesPokenavBag case 0, BattleFrontier_BattlePikeLobby_EventScript_RulesPokenavBag
case 1, BattleFrontier_BattlePikeLobby_EventScript_RulesHeldItems case 1, BattleFrontier_BattlePikeLobby_EventScript_RulesHeldItems

View File

@ -143,7 +143,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_AskSaveChallenge:: @ 825CA2A
BattleFrontier_BattlePikeThreePathRoom_EventScript_AskRetireChallenge:: @ 825CA5A BattleFrontier_BattlePikeThreePathRoom_EventScript_AskRetireChallenge:: @ 825CA5A
message BattleFrontier_BattlePikeThreePathRoom_Text_RetireFromChallenge message BattleFrontier_BattlePikeThreePathRoom_Text_RetireFromChallenge
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattlePike_EventScript_Retire case 0, BattleFrontier_BattlePike_EventScript_Retire
release release

View File

@ -33,7 +33,7 @@ BattleFrontier_BattlePyramidFloor_EventScript_ShowMapName:: @ 8252A8F
end end
BattleFrontier_BattlePyramidFloor_EventScript_PlayPyramidMusic:: @ 8252A98 BattleFrontier_BattlePyramidFloor_EventScript_PlayPyramidMusic:: @ 8252A98
playbgm MUS_B_PYRAMID, 0 playbgm MUS_B_PYRAMID, FALSE
setvar VAR_TEMP_E, 1 setvar VAR_TEMP_E, 1
end end

View File

@ -115,7 +115,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_Attendant:: @ 82508B1
BattleFrontier_BattlePyramidLobby_EventScript_AskTakeChallenge:: @ 82508C8 BattleFrontier_BattlePyramidLobby_EventScript_AskTakeChallenge:: @ 82508C8
message BattleFrontier_BattlePyramidLobby_Text_EmbarkOnChallenge message BattleFrontier_BattlePyramidLobby_Text_EmbarkOnChallenge
waitmessage waitmessage
multichoice 17, 6, MULTI_CHALLENGEINFO, 0 multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattlePyramidLobby_EventScript_TryEnterChallenge case 0, BattleFrontier_BattlePyramidLobby_EventScript_TryEnterChallenge
case 1, BattleFrontier_BattlePyramidLobby_EventScript_ExplainChallenge case 1, BattleFrontier_BattlePyramidLobby_EventScript_ExplainChallenge
@ -125,7 +125,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_AskTakeChallenge:: @ 82508C8
BattleFrontier_BattlePyramidLobby_EventScript_TryEnterChallenge:: @ 8250904 BattleFrontier_BattlePyramidLobby_EventScript_TryEnterChallenge:: @ 8250904
message BattleFrontier_BattlePyramidLobby_Text_WhichLevelMode message BattleFrontier_BattlePyramidLobby_Text_WhichLevelMode
waitmessage waitmessage
multichoice 17, 6, MULTI_LEVEL_MODE, 0 multichoice 17, 6, MULTI_LEVEL_MODE, FALSE
switch VAR_RESULT switch VAR_RESULT
case FRONTIER_LVL_TENT, BattleFrontier_BattlePyramidLobby_EventScript_CancelChallenge case FRONTIER_LVL_TENT, BattleFrontier_BattlePyramidLobby_EventScript_CancelChallenge
case MULTI_B_PRESSED, BattleFrontier_BattlePyramidLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePyramidLobby_EventScript_CancelChallenge
@ -218,7 +218,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_HintGiver:: @ 8250ACE
end end
BattleFrontier_BattlePyramidLobby_EventScript_GiveHint:: @ 8250AF0 BattleFrontier_BattlePyramidLobby_EventScript_GiveHint:: @ 8250AF0
multichoice 17, 6, MULTI_LEVEL_MODE, 0 multichoice 17, 6, MULTI_LEVEL_MODE, FALSE
switch VAR_RESULT switch VAR_RESULT
case FRONTIER_LVL_50, BattleFrontier_BattlePyramidLobby_EventScript_GiveHintLv50 case FRONTIER_LVL_50, BattleFrontier_BattlePyramidLobby_EventScript_GiveHintLv50
case FRONTIER_LVL_OPEN, BattleFrontier_BattlePyramidLobby_EventScript_GiveHintLvOpen case FRONTIER_LVL_OPEN, BattleFrontier_BattlePyramidLobby_EventScript_GiveHintLvOpen
@ -446,7 +446,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_HeldItemsStoredInPyramidBag:: @ 82
@ 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 @ 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 BattleFrontier_BattlePyramidLobby_EventScript_PickItemsToKeep:: @ 8250E09
multichoice 17, 6, MULTI_FRONTIER_ITEM_CHOOSE, 0 multichoice 17, 6, MULTI_FRONTIER_ITEM_CHOOSE, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattlePyramidLobby_EventScript_PickItemsFromBag case 0, BattleFrontier_BattlePyramidLobby_EventScript_PickItemsFromBag
case 1, BattleFrontier_BattlePyramidLobby_EventScript_PickItemsFromParty case 1, BattleFrontier_BattlePyramidLobby_EventScript_PickItemsFromParty
@ -500,7 +500,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_RulesBoard:: @ 8250E95
BattleFrontier_BattlePyramidLobby_EventScript_ReadRulesBoard:: @ 8250EA4 BattleFrontier_BattlePyramidLobby_EventScript_ReadRulesBoard:: @ 8250EA4
message BattleFrontier_BattlePyramidLobby_Text_ReadWhichHeading message BattleFrontier_BattlePyramidLobby_Text_ReadWhichHeading
waitmessage waitmessage
multichoice 15, 2, MULTI_BATTLE_PYRAMID_RULES, 0 multichoice 15, 2, MULTI_BATTLE_PYRAMID_RULES, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattlePyramidLobby_EventScript_RulesPokemon case 0, BattleFrontier_BattlePyramidLobby_EventScript_RulesPokemon
case 1, BattleFrontier_BattlePyramidLobby_EventScript_RulesTrainers case 1, BattleFrontier_BattlePyramidLobby_EventScript_RulesTrainers

View File

@ -53,7 +53,7 @@ BattleFrontier_BattlePyramidTop_OnFrame: @ 825516E
.2byte 0 .2byte 0
BattleFrontier_BattlePyramidTop_EventScript_PlayPyramidMusic:: @ 8255180 BattleFrontier_BattlePyramidTop_EventScript_PlayPyramidMusic:: @ 8255180
playbgm MUS_B_PYRAMID_TOP, 0 playbgm MUS_B_PYRAMID_TOP, FALSE
setvar VAR_TEMP_E, 1 setvar VAR_TEMP_E, 1
end end
@ -136,7 +136,7 @@ BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardSilverSpeech:: @ 82552D0
BattleFrontier_BattlePyramidTop_EventScript_BattleBrandonSilver:: @ 82552DA BattleFrontier_BattlePyramidTop_EventScript_BattleBrandonSilver:: @ 82552DA
msgbox BattleFrontier_BattlePyramidTop_Text_BringCourageToOurBattle, MSGBOX_DEFAULT msgbox BattleFrontier_BattlePyramidTop_Text_BringCourageToOurBattle, MSGBOX_DEFAULT
call BattleFrontier_BattlePyramidTop_EventScript_DoBrandonBattle call BattleFrontier_BattlePyramidTop_EventScript_DoBrandonBattle
playbgm MUS_B_PYRAMID_TOP, 0 playbgm MUS_B_PYRAMID_TOP, FALSE
compare VAR_RESULT, 1 compare VAR_RESULT, 1
goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonSilver goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonSilver
goto BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost goto BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost
@ -176,7 +176,7 @@ BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardGoldSpeech:: @ 8255388
BattleFrontier_BattlePyramidTop_EventScript_BattleBrandonGold:: @ 8255392 BattleFrontier_BattlePyramidTop_EventScript_BattleBrandonGold:: @ 8255392
msgbox BattleFrontier_BattlePyramidTop_Text_EverythingYouHave, MSGBOX_DEFAULT msgbox BattleFrontier_BattlePyramidTop_Text_EverythingYouHave, MSGBOX_DEFAULT
call BattleFrontier_BattlePyramidTop_EventScript_DoBrandonBattle call BattleFrontier_BattlePyramidTop_EventScript_DoBrandonBattle
playbgm MUS_B_PYRAMID_TOP, 0 playbgm MUS_B_PYRAMID_TOP, FALSE
compare VAR_RESULT, 1 compare VAR_RESULT, 1
goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonGold goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonGold
goto BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost goto BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost

View File

@ -82,7 +82,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent:: @ 8241C8F
call BattleFrontier_EventScript_GetCantRecordBattle call BattleFrontier_EventScript_GetCantRecordBattle
compare VAR_RESULT, TRUE compare VAR_RESULT, TRUE
goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponentNoRecord 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 switch VAR_RESULT
case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_ContinueChallenge case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_ContinueChallenge
case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskRecordBattle case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskRecordBattle
@ -91,7 +91,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent:: @ 8241C8F
case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent
BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponentNoRecord:: @ 8241D0A BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponentNoRecord:: @ 8241D0A
multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_ContinueChallenge case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_ContinueChallenge
case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskPauseChallenge case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskPauseChallenge
@ -101,7 +101,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponentNoRecord:: @
BattleFrontier_BattleTowerBattleRoom_EventScript_AskRecordBattle:: @ 8241D40 BattleFrontier_BattleTowerBattleRoom_EventScript_AskRecordBattle:: @ 8241D40
message BattleFrontier_BattleTowerBattleRoom_Text_RecordYourBattle message BattleFrontier_BattleTowerBattleRoom_Text_RecordYourBattle
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent
case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_RecordBattle case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_RecordBattle
@ -121,7 +121,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_AskPauseChallenge:: @ 8241D7C
BattleFrontier_BattleTowerBattleRoom_EventScript_AskRetireChallenge:: @ 8241DAA BattleFrontier_BattleTowerBattleRoom_EventScript_AskRetireChallenge:: @ 8241DAA
message BattleFrontier_BattleTowerBattleRoom_Text_CancelYourChallenge message BattleFrontier_BattleTowerBattleRoom_Text_CancelYourChallenge
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent
case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_RetireChallenge case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_RetireChallenge
@ -224,7 +224,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaiden:: @ 8241F22
call BattleFrontier_EventScript_GetCantRecordBattle call BattleFrontier_EventScript_GetCantRecordBattle
compare VAR_RESULT, TRUE compare VAR_RESULT, TRUE
goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaidenNoRecord 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 switch VAR_RESULT
case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabel case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabel
case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskRecordBattle case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskRecordBattle
@ -233,7 +233,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaiden:: @ 8241F22
case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaiden case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaiden
BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaidenNoRecord:: @ 8241F79 BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaidenNoRecord:: @ 8241F79
multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabel case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabel
case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskPauseChallenge case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskPauseChallenge

View File

@ -135,7 +135,7 @@ BattleFrontier_BattleTowerLobby_EventScript_AskSaveBattle:: @ 823E84D
goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_EndSaveBattle goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_EndSaveBattle
message BattleFrontier_BattleTowerLobby_Text_RecordLastMatch message BattleFrontier_BattleTowerLobby_Text_RecordLastMatch
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattleTowerLobby_EventScript_EndSaveBattle case 1, BattleFrontier_BattleTowerLobby_EventScript_EndSaveBattle
case 0, BattleFrontier_EventScript_SaveBattle case 0, BattleFrontier_EventScript_SaveBattle
@ -187,7 +187,7 @@ BattleFrontier_BattleTowerLobby_EventScript_SinglesAttendant:: @ 823E936
BattleFrontier_BattleTowerLobby_EventScript_AskEnterSinglesChallenge:: @ 823E948 BattleFrontier_BattleTowerLobby_EventScript_AskEnterSinglesChallenge:: @ 823E948
message BattleFrontier_BattleTowerLobby_Text_TakeSinglesChallenge message BattleFrontier_BattleTowerLobby_Text_TakeSinglesChallenge
waitmessage waitmessage
multichoice 17, 6, MULTI_CHALLENGEINFO, 0 multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleTowerLobby_EventScript_TryEnterSinglesChallenge case 0, BattleFrontier_BattleTowerLobby_EventScript_TryEnterSinglesChallenge
case 1, BattleFrontier_BattleTowerLobby_EventScript_ExplainSinglesChallenge case 1, BattleFrontier_BattleTowerLobby_EventScript_ExplainSinglesChallenge
@ -198,7 +198,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterSinglesChallenge:: @ 823E984
setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES
message BattleFrontier_BattleTowerLobby_Text_WhichLevelMode message BattleFrontier_BattleTowerLobby_Text_WhichLevelMode
waitmessage waitmessage
multichoice 17, 6, MULTI_LEVEL_MODE, 0 multichoice 17, 6, MULTI_LEVEL_MODE, FALSE
switch VAR_RESULT switch VAR_RESULT
case FRONTIER_LVL_TENT, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case FRONTIER_LVL_TENT, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge
case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge
@ -253,7 +253,7 @@ BattleFrontier_BattleTowerLobby_EventScript_DoublesAttendant:: @ 823EA9F
BattleFrontier_BattleTowerLobby_EventScript_AskEnterDoublesChallenge:: @ 823EAB1 BattleFrontier_BattleTowerLobby_EventScript_AskEnterDoublesChallenge:: @ 823EAB1
message BattleFrontier_BattleTowerLobby_Text_TakeDoublesChallenge message BattleFrontier_BattleTowerLobby_Text_TakeDoublesChallenge
waitmessage waitmessage
multichoice 17, 6, MULTI_CHALLENGEINFO, 0 multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleTowerLobby_EventScript_TryEnterDoublesChallenge case 0, BattleFrontier_BattleTowerLobby_EventScript_TryEnterDoublesChallenge
case 1, BattleFrontier_BattleTowerLobby_EventScript_ExplainDoublesChallenge case 1, BattleFrontier_BattleTowerLobby_EventScript_ExplainDoublesChallenge
@ -264,7 +264,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterDoublesChallenge:: @ 823EAED
setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES
message BattleFrontier_BattleTowerLobby_Text_WhichLevelMode message BattleFrontier_BattleTowerLobby_Text_WhichLevelMode
waitmessage waitmessage
multichoice 17, 6, MULTI_LEVEL_MODE, 0 multichoice 17, 6, MULTI_LEVEL_MODE, FALSE
switch VAR_RESULT switch VAR_RESULT
case FRONTIER_LVL_TENT, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case FRONTIER_LVL_TENT, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge
case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge
@ -320,7 +320,7 @@ BattleFrontier_BattleTowerLobby_EventScript_MultisAttendant:: @ 823EC08
BattleFrontier_BattleTowerLobby_EventScript_AskEnterMultisChallenge:: @ 823EC1D BattleFrontier_BattleTowerLobby_EventScript_AskEnterMultisChallenge:: @ 823EC1D
message BattleFrontier_BattleTowerLobby_Text_TakeMultisChallenge message BattleFrontier_BattleTowerLobby_Text_TakeMultisChallenge
waitmessage waitmessage
multichoice 17, 6, MULTI_CHALLENGEINFO, 0 multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleTowerLobby_EventScript_TryEnterMultisChallenge case 0, BattleFrontier_BattleTowerLobby_EventScript_TryEnterMultisChallenge
case 1, BattleFrontier_BattleTowerLobby_EventScript_ExplainMultisChallenge case 1, BattleFrontier_BattleTowerLobby_EventScript_ExplainMultisChallenge
@ -331,7 +331,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterMultisChallenge:: @ 823EC59
setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS
message BattleFrontier_BattleTowerLobby_Text_WhichLevelMode message BattleFrontier_BattleTowerLobby_Text_WhichLevelMode
waitmessage waitmessage
multichoice 17, 6, MULTI_LEVEL_MODE, 0 multichoice 17, 6, MULTI_LEVEL_MODE, FALSE
switch VAR_RESULT switch VAR_RESULT
case FRONTIER_LVL_TENT, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case FRONTIER_LVL_TENT, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge
case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge
@ -386,7 +386,7 @@ BattleFrontier_BattleTowerLobby_EventScript_LinkMultisAttendant:: @ 823ED74
BattleFrontier_BattleTowerLobby_EventScript_AskEnterLinkMultisChallenge:: @ 823ED86 BattleFrontier_BattleTowerLobby_EventScript_AskEnterLinkMultisChallenge:: @ 823ED86
message BattleFrontier_BattleTowerLobby_Text_TakeLinkMultisChallenge message BattleFrontier_BattleTowerLobby_Text_TakeLinkMultisChallenge
waitmessage waitmessage
multichoice 17, 6, MULTI_CHALLENGEINFO, 0 multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleTowerLobby_EventScript_TryEnterLinkMultisChallenge case 0, BattleFrontier_BattleTowerLobby_EventScript_TryEnterLinkMultisChallenge
case 1, BattleFrontier_BattleTowerLobby_EventScript_ExplainLinkMultisChallenge case 1, BattleFrontier_BattleTowerLobby_EventScript_ExplainLinkMultisChallenge
@ -397,7 +397,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterLinkMultisChallenge:: @ 823E
setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS
message BattleFrontier_BattleTowerLobby_Text_WhichLevelMode message BattleFrontier_BattleTowerLobby_Text_WhichLevelMode
waitmessage waitmessage
multichoice 17, 6, MULTI_LEVEL_MODE, 0 multichoice 17, 6, MULTI_LEVEL_MODE, FALSE
switch VAR_RESULT switch VAR_RESULT
case FRONTIER_LVL_TENT, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case FRONTIER_LVL_TENT, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge
case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge
@ -446,7 +446,7 @@ BattleFrontier_BattleTowerLobby_EventScript_FeelingsMan:: @ 823EEE7
faceplayer faceplayer
message BattleFrontier_BattleTowerLobby_Text_DescribeFeelingsAboutBattleTower message BattleFrontier_BattleTowerLobby_Text_DescribeFeelingsAboutBattleTower
waitmessage waitmessage
multichoice 16, 4, MULTI_BATTLE_TOWER_FEELINGS, 0 multichoice 16, 4, MULTI_BATTLE_TOWER_FEELINGS, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleTowerLobby_EventScript_FeelingsBattleNow case 0, BattleFrontier_BattleTowerLobby_EventScript_FeelingsBattleNow
case 1, BattleFrontier_BattleTowerLobby_EventScript_FeelingsIWon case 1, BattleFrontier_BattleTowerLobby_EventScript_FeelingsIWon
@ -879,7 +879,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryWirelessLink:: @ 823F3E8
BattleFrontier_BattleTowerLobby_EventScript_ChooseLeader:: @ 823F3F3 BattleFrontier_BattleTowerLobby_EventScript_ChooseLeader:: @ 823F3F3
message CableClub_Text_ChooseGroupLeaderOfTwo message CableClub_Text_ChooseGroupLeaderOfTwo
waitmessage waitmessage
multichoice 16, 6, MULTI_LINK_LEADER, 0 multichoice 16, 6, MULTI_LINK_LEADER, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleTowerLobby_EventScript_TryJoinGroup case 0, BattleFrontier_BattleTowerLobby_EventScript_TryJoinGroup
case 1, BattleFrontier_BattleTowerLobby_EventScript_TryBecomeLeader case 1, BattleFrontier_BattleTowerLobby_EventScript_TryBecomeLeader
@ -935,7 +935,7 @@ BattleFrontier_BattleTowerLobby_EventScript_RulesBoard:: @ 823F4BE
BattleFrontier_BattleTowerLobby_EventScript_ReadRulesBoard:: @ 823F4CD BattleFrontier_BattleTowerLobby_EventScript_ReadRulesBoard:: @ 823F4CD
message BattleFrontier_BattleTowerLobby_Text_ReadWhichHeading message BattleFrontier_BattleTowerLobby_Text_ReadWhichHeading
waitmessage waitmessage
multichoice 17, 2, MULTI_BATTLE_TOWER_RULES, 0 multichoice 17, 2, MULTI_BATTLE_TOWER_RULES, FALSE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleTowerLobby_EventScript_RulesTower case 0, BattleFrontier_BattleTowerLobby_EventScript_RulesTower
case 1, BattleFrontier_BattleTowerLobby_EventScript_RulesMons case 1, BattleFrontier_BattleTowerLobby_EventScript_RulesMons

View File

@ -143,7 +143,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RestoreParty:: @ 8249121
special LoadPlayerParty special LoadPlayerParty
frontier_setpartyorder FRONTIER_MULTI_PARTY_SIZE frontier_setpartyorder FRONTIER_MULTI_PARTY_SIZE
compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS 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 playfanfare MUS_HEAL
waitfanfare waitfanfare
special HealPlayerParty special HealPlayerParty
@ -155,7 +155,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents:: @ 8
call BattleFrontier_EventScript_GetCantRecordBattle call BattleFrontier_EventScript_GetCantRecordBattle
compare VAR_RESULT, TRUE compare VAR_RESULT, TRUE
goto_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsNoRecord 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 switch VAR_RESULT
case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallenge case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallenge
case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRecordBattle case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRecordBattle
@ -164,7 +164,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents:: @ 8
case MULTI_B_PRESSED, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents case MULTI_B_PRESSED, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsNoRecord:: @ 82491B1 BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsNoRecord:: @ 82491B1
multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallenge case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallenge
case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskPauseChallenge case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskPauseChallenge
@ -174,7 +174,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsNoReco
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRecordBattle:: @ 82491E7 BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRecordBattle:: @ 82491E7
message BattleFrontier_BattleTowerBattleRoom_Text_RecordYourBattle message BattleFrontier_BattleTowerBattleRoom_Text_RecordYourBattle
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents
case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RecordBattle case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RecordBattle
@ -194,7 +194,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskPauseChallenge:: @ 8249
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRetireChallenge:: @ 8249251 BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRetireChallenge:: @ 8249251
message BattleFrontier_BattleTowerBattleRoom_Text_CancelYourChallenge message BattleFrontier_BattleTowerBattleRoom_Text_CancelYourChallenge
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents
case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_WarpToLobbyLost case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_WarpToLobbyLost
@ -324,7 +324,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_LinkDelayForMsg:: @ 824941
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsLink:: @ 8249417 BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsLink:: @ 8249417
goto_if_set FLAG_TEMP_2, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsLinkNoRecord 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 switch VAR_RESULT
case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallengeLink case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallengeLink
case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRecordBattleLink case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRecordBattleLink
@ -333,7 +333,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsLink::
end end
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsLinkNoRecord:: @ 8249457 BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsLinkNoRecord:: @ 8249457
multichoice 20, 8, MULTI_GO_ON_RETIRE, 1 multichoice 20, 8, MULTI_GO_ON_RETIRE, TRUE
switch VAR_RESULT switch VAR_RESULT
case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallengeLink case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallengeLink
case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRetireChallengeLink case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRetireChallengeLink
@ -355,7 +355,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallengeLink:: @
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRecordBattleLink:: @ 82494A8 BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRecordBattleLink:: @ 82494A8
message BattleFrontier_BattleTowerBattleRoom_Text_RecordYourBattle message BattleFrontier_BattleTowerBattleRoom_Text_RecordYourBattle
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents
case MULTI_B_PRESSED, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents case MULTI_B_PRESSED, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents
@ -367,7 +367,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRecordBattleLink:: @ 82
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRetireChallengeLink:: @ 82494DD BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRetireChallengeLink:: @ 82494DD
message BattleFrontier_BattleTowerBattleRoom_Text_CancelYourChallenge message BattleFrontier_BattleTowerBattleRoom_Text_CancelYourChallenge
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
compare VAR_RESULT, 0 compare VAR_RESULT, 0
goto_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RetireChallengeLink goto_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RetireChallengeLink
goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents
@ -383,9 +383,8 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RetireChallengeLink:: @ 82
goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_WarpToLobbyLost goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_WarpToLobbyLost
end end
@ Some link function. Sets battle type flags at least BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReconnectLink:: @ 8249514
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_249514:: @ 8249514 special BattleTowerReconnectLink
special sub_813B534
return return
BattleFrontier_BattleTowerMultiBattleRoom_Movement_PlayerEnterRoom: @ 8249518 BattleFrontier_BattleTowerMultiBattleRoom_Movement_PlayerEnterRoom: @ 8249518

View File

@ -86,7 +86,7 @@ BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Attendant:: @ 8243E7A
faceplayer faceplayer
message BattleFrontier_BattleTowerMultiPartnerRoom_Text_QuitLookingForPartner message BattleFrontier_BattleTowerMultiPartnerRoom_Text_QuitLookingForPartner
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
compare VAR_RESULT, 0 compare VAR_RESULT, 0
goto_if_eq BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_QuitChallenge goto_if_eq BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_QuitChallenge
msgbox BattleFrontier_BattleTowerMultiPartnerRoom_Text_PleaseFindPartner2, MSGBOX_DEFAULT msgbox BattleFrontier_BattleTowerMultiPartnerRoom_Text_PleaseFindPartner2, MSGBOX_DEFAULT
@ -175,7 +175,7 @@ BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_TalkToPotentialPartner::
waitbuttonpress waitbuttonpress
tower_dopartnermsg PARTNER_MSGID_MON2_ASK tower_dopartnermsg PARTNER_MSGID_MON2_ASK
waitmessage waitmessage
multichoicedefault 20, 8, MULTI_YESNO, 1, 0 multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE
switch VAR_RESULT switch VAR_RESULT
case 1, BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_RejectPartner case 1, BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_RejectPartner
case MULTI_B_PRESSED, BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_RejectPartner case MULTI_B_PRESSED, BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_RejectPartner

Some files were not shown because too many files have changed in this diff Show More