mirror of
https://github.com/pret/pokeemerald.git
synced 2026-09-30 22:07:24 -05:00
Merge branch '_RHH/upcoming' into _RHH/pr/upcoming/merrpFollowers
# Conflicts: # asm/macros/event.inc # data/field_effect_scripts.s # data/maps/BattleFrontier_BattleTowerLobby/scripts.inc # data/script_cmd_table.inc # graphics/pokemon/castform/sunny/anim_front.png # graphics/pokemon/castform/sunny/normal.pal # include/battle_util.h # include/constants/event_object_movement.h # include/constants/field_effects.h # src/battle_controller_player.c # src/battle_util.c # src/data/object_events/movement_action_func_tables.h # src/data/object_events/object_event_pic_tables.h # src/data/trainer_graphics/back_pic_anims.h # src/daycare.c # src/event_object_movement.c # src/field_effect_helpers.c # src/load_save.c # src/scrcmd.c # src/trainer_see.c
This commit is contained in:
51
.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml
vendored
Normal file
51
.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
name: ⚔️ Battle Engine mechanical bugs 🐛
|
||||
description: File a bug report related to battle mechanic, be it moves, abilities and/or items.
|
||||
labels: ["bug", "status: unconfirmed", "category: battle-mechanic"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Please fill in all required fields with as many details as possible.
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: |
|
||||
Describe the issue you are experiencing.
|
||||
Attach images/videos if possible.
|
||||
placeholder: |
|
||||
Please enter a description of the issue. Here you can also attach log screenshots, gifs or a video
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: version
|
||||
attributes:
|
||||
label: Version
|
||||
description: What version of pokeemerald-expansion are you using as a base?
|
||||
options:
|
||||
- 1.7.2 (Latest release)
|
||||
- master (default when pulling, unreleased bugfixes)
|
||||
- upcoming (Edge)
|
||||
- 1.7.1
|
||||
- 1.7.0
|
||||
- 1.6.2
|
||||
- 1.6.1
|
||||
- 1.6.0
|
||||
- pre-1.6.0
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: upcomingversion
|
||||
attributes:
|
||||
label: Upcoming/master Version
|
||||
description: If you're using the upcoming or master branches directly, please specify what was the commit hash you pulled from.
|
||||
validations:
|
||||
required: false
|
||||
- type: input
|
||||
id: contact
|
||||
attributes:
|
||||
label: Discord contact info
|
||||
description: Provide your Discord tag here so we can contact you in case we need more details. Be sure to join our server ([here](https://discord.gg/6CzjAG6GZk)).
|
||||
placeholder: ex. Lunos#4026
|
||||
validations:
|
||||
required: false
|
||||
51
.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml
vendored
Normal file
51
.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
name: 🧠 Battle AI bugs 🐛
|
||||
description: File a bug report related to battle AI.
|
||||
labels: ["bug", "status: unconfirmed", "category: battle-ai"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Please fill in all required fields with as many details as possible.
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: |
|
||||
Describe the issue you are experiencing.
|
||||
Attach images/videos if possible.
|
||||
placeholder: |
|
||||
Please enter a description of the issue. Here you can also attach log screenshots, gifs or a video
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: version
|
||||
attributes:
|
||||
label: Version
|
||||
description: What version of pokeemerald-expansion are you using as a base?
|
||||
options:
|
||||
- 1.7.2 (Latest release)
|
||||
- master (default when pulling, unreleased bugfixes)
|
||||
- upcoming (Edge)
|
||||
- 1.7.1
|
||||
- 1.7.0
|
||||
- 1.6.2
|
||||
- 1.6.1
|
||||
- 1.6.0
|
||||
- pre-1.6.0
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: upcomingversion
|
||||
attributes:
|
||||
label: Upcoming/master Version
|
||||
description: If you're using the upcoming or master branches directly, please specify what was the commit hash you pulled from.
|
||||
validations:
|
||||
required: false
|
||||
- type: input
|
||||
id: contact
|
||||
attributes:
|
||||
label: Discord contact info
|
||||
description: Provide your Discord tag here so we can contact you in case we need more details. Be sure to join our server ([here](https://discord.gg/6CzjAG6GZk)).
|
||||
placeholder: ex. Lunos#4026
|
||||
validations:
|
||||
required: false
|
||||
27
.github/ISSUE_TEMPLATE/03_feature_requests.yaml
vendored
Normal file
27
.github/ISSUE_TEMPLATE/03_feature_requests.yaml
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
name: 🙏 Feature Request 🙏
|
||||
description: Do you want a feature to be added to the Expansion? Let us know!
|
||||
labels: ["feature-request"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Please fill in all required fields with as many details as possible.
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: |
|
||||
Describe the issue you are experiencing.
|
||||
Attach images/videos if possible.
|
||||
placeholder: |
|
||||
Please enter a description of the issue. Here you can also attach log screenshots, gifs or a video
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: contact
|
||||
attributes:
|
||||
label: Discord contact info
|
||||
description: Provide your Discord tag here so we can contact you in case we need more details. Be sure to join our server ([here](https://discord.gg/6CzjAG6GZk)).
|
||||
placeholder: ex. Lunos#4026
|
||||
validations:
|
||||
required: false
|
||||
51
.github/ISSUE_TEMPLATE/04_other_errors.yaml
vendored
Normal file
51
.github/ISSUE_TEMPLATE/04_other_errors.yaml
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
name: 💾 Other errors 🖥️
|
||||
description: Everything else that doesn't fit in the above categories.
|
||||
labels: ["bug", "status: unconfirmed"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Please fill in all required fields with as many details as possible.
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: |
|
||||
Describe the issue you are experiencing.
|
||||
Attach images/videos if possible.
|
||||
placeholder: |
|
||||
Please enter a description of the issue. Here you can also attach log screenshots, gifs or a video
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: version
|
||||
attributes:
|
||||
label: Version
|
||||
description: What version of pokeemerald-expansion are you using as a base?
|
||||
options:
|
||||
- 1.7.2 (Latest release)
|
||||
- master (default when pulling, unreleased bugfixes)
|
||||
- upcoming (Edge)
|
||||
- 1.7.1
|
||||
- 1.7.0
|
||||
- 1.6.2
|
||||
- 1.6.1
|
||||
- 1.6.0
|
||||
- pre-1.6.0
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: upcomingversion
|
||||
attributes:
|
||||
label: Upcoming/master Version
|
||||
description: If you're using the upcoming or master branches directly, please specify what was the commit hash you pulled from.
|
||||
validations:
|
||||
required: false
|
||||
- type: input
|
||||
id: contact
|
||||
attributes:
|
||||
label: Discord contact info
|
||||
description: Provide your Discord tag here so we can contact you in case we need more details. Be sure to join our server ([here](https://discord.gg/6CzjAG6GZk)).
|
||||
placeholder: ex. Lunos#4026
|
||||
validations:
|
||||
required: false
|
||||
5
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
5
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Rom-Hacking Hideout's Discord server!
|
||||
url: https://discord.gg/6CzjAG6GZk
|
||||
about: You can follow the development of pokeemerald-expansion and be notified of new releases :)
|
||||
5
.github/pull_request_template.md
vendored
5
.github/pull_request_template.md
vendored
@@ -11,6 +11,9 @@
|
||||
<!-- Format: "Fixes #2345, fixes #4523, fixes #2222." -->
|
||||
<!-- If it doesn't apply, feel free to remove this section. -->
|
||||
|
||||
## Feature(s) this PR does NOT handle:
|
||||
<!-- If your PR contains any unfinished features that are not considered merge-blocking, please list them here for clarity so no one can forget. -->
|
||||
|
||||
## **Discord contact info**
|
||||
<!--- formatted as name#numbers, e.g. Lunos#4026 -->
|
||||
<!--- Contributors must join https://discord.gg/6CzjAG6GZk -->
|
||||
<!--- Contributors must join https://discord.gg/6CzjAG6GZk -->
|
||||
|
||||
13
.github/workflows/build.yml
vendored
13
.github/workflows/build.yml
vendored
@@ -4,14 +4,13 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- battle_engine
|
||||
- pokemon_expansion
|
||||
- item_expansion
|
||||
- upcoming
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
container: devkitpro/devkitarm
|
||||
env:
|
||||
GAME_VERSION: EMERALD
|
||||
GAME_REVISION: 0
|
||||
@@ -29,7 +28,9 @@ jobs:
|
||||
repository: pret/agbcc
|
||||
|
||||
- name: Install binutils
|
||||
run: sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi libelf-dev
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y build-essential libpng-dev libelf-dev
|
||||
# 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
|
||||
@@ -41,6 +42,9 @@ jobs:
|
||||
working-directory: agbcc
|
||||
|
||||
- name: Agbcc
|
||||
env:
|
||||
MODERN: 0
|
||||
COMPARE: 0
|
||||
run: make -j${nproc} -O all
|
||||
|
||||
- name: Modern
|
||||
@@ -51,6 +55,7 @@ jobs:
|
||||
|
||||
- name: Test
|
||||
env:
|
||||
MODERN: 1
|
||||
TEST: 1
|
||||
run: |
|
||||
make -j${nproc} -O pokeemerald-test.elf
|
||||
|
||||
16
.github/workflows/manual.yml
vendored
16
.github/workflows/manual.yml
vendored
@@ -1,16 +0,0 @@
|
||||
name: Close issues related to a merged pull request based on master branch.
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [closed]
|
||||
branches:
|
||||
- upcoming
|
||||
|
||||
jobs:
|
||||
closeIssueOnPrMergeTrigger:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Closes issues related to a merged pull request.
|
||||
uses: ldez/gha-mjolnir@v1.0.3
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -21,7 +21,6 @@ sound/**/*.bin
|
||||
sound/songs/midi/*.s
|
||||
tools/agbcc
|
||||
*.map
|
||||
*.ld
|
||||
*.bat
|
||||
*.dump
|
||||
*.sa*
|
||||
@@ -39,3 +38,4 @@ prefabs.json
|
||||
*.diff
|
||||
*.sym
|
||||
*.js
|
||||
src/data/map_group_count.h
|
||||
|
||||
9
CHANGELOG.md
Normal file
9
CHANGELOG.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Pokeemerald-Expansion Changelogs
|
||||
|
||||
## [Version 1.7.2](docs/changelogs/1.7.2.md) - Bugfix Release
|
||||
|
||||
## [Version 1.7.1](docs/changelogs/1.7.1.md) - Bugfix Release
|
||||
|
||||
## [Version 1.7.0](docs/changelogs/1.7.0.md) - Feature Release
|
||||
|
||||
## [Version 1.6.2](docs/changelogs/1.6.2.md) - Bugfix Release
|
||||
394
INSTALL.md
394
INSTALL.md
@@ -1,6 +1,6 @@
|
||||
# Instructions
|
||||
|
||||
These instructions explain how to set up the tools required to build **pokeemerald**, which assembles the source files into a ROM.
|
||||
These instructions explain how to set up the tools required to build **pokeemerald Expansion**, which assembles the source files into a ROM (pokeemerald.gba).
|
||||
|
||||
These instructions come with notes which can be expanded by clicking the "<i>Note...</i>" text.
|
||||
In general, you should not need to open these unless if you get an error or if you need additional clarification.
|
||||
@@ -27,10 +27,10 @@ All of the Windows instructions assume that the default drive is C:\\. If this d
|
||||
**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.
|
||||
|
||||
## Windows 10/11 (WSL1)
|
||||
WSL1 is the preferred terminal to build **pokeemerald**. The following instructions will explain how to install WSL1 (referred to interchangeably as WSL).
|
||||
WSL1 is the preferred terminal to build **pokeemerald Expansion**. 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).
|
||||
- Otherwise, **open WSL** and go to [Choosing where to store pokeemerald Expansion (WSL1)](#Choosing-where-to-store-pokeemerald-expansion-WSL1).
|
||||
|
||||
### 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).
|
||||
@@ -79,21 +79,49 @@ Some tips before proceeding:
|
||||
|
||||
> 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:
|
||||
4. Certain packages are required to build pokeemerald Expansion. Install these packages by running the following command:
|
||||
|
||||
```bash
|
||||
sudo apt install build-essential binutils-arm-none-eabi git libpng-dev
|
||||
sudo apt install build-essential binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-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>
|
||||
This will install GCC v10 on Ubuntu 22.04. pokeemerald Expansion works with GCC v10, but remote repositories and the RHH Team use GCC v13 for stricter error-checking. If you want to upgrade from v10 to v13, also follow the devkitpro install instructions.
|
||||
|
||||
### 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.
|
||||
### Installing devkitARM on WSL1
|
||||
|
||||
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:
|
||||
1. Change directory to somewhere you can download a package, such as **C:\Users\\_\<user>_\Downloads** (the Downloads location for most users). To do so, enter this command, where *\<user> is your **Windows** username:
|
||||
|
||||
```bash
|
||||
cd /mnt/c/Users/<user>/Downloads
|
||||
```
|
||||
|
||||
2. Once the directory has been changed, run the following commands to install devkitARM.
|
||||
|
||||
```bash
|
||||
sudo apt install wget
|
||||
wget https://apt.devkitpro.org/install-devkitpro-pacman
|
||||
chmod +x ./install-devkitpro-pacman
|
||||
sudo ./install-devkitpro-pacman
|
||||
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.
|
||||
|
||||
3. 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.
|
||||
|
||||
### Choosing where to store pokeemerald Expansion (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 Expansion within Windows.
|
||||
|
||||
For example, say you want to store pokeemerald Expansion 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
|
||||
@@ -115,7 +143,7 @@ Otherwise, ask for help on Discord or IRC (see [README.md](README.md)), or conti
|
||||
|
||||
- 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).
|
||||
- Otherwise, **open msys2** and go to [Choosing where to store pokeemerald Expansion (msys2)](#choosing-where-to-store-pokeemerald-expansion-msys2).
|
||||
|
||||
### Installing devkitARM
|
||||
1. Download the devkitPro installer [here](https://github.com/devkitPro/installer/releases).
|
||||
@@ -125,23 +153,57 @@ Otherwise, ask for help on Discord or IRC (see [README.md](README.md)), or conti
|
||||
|
||||
Note that in msys2, Copy is Ctrl+Insert and Paste is Shift+Insert.
|
||||
|
||||
1. Open msys2 at C:\devkitPro\msys2\mingw64.exe or run `C:\devkitPro\msys2\msys2_shell.bat -mingw64`.
|
||||
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:
|
||||
2. Certain packages are required to build pokeemerald Expansion. Install these by running the following two commands:
|
||||
|
||||
```bash
|
||||
pacman -S make zlib-devel git mingw-w64-x86_64-gcc mingw-w64-x86_64-libpng
|
||||
pacman -Sy msys2-keyring
|
||||
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.
|
||||
> The commands will ask for confirmation, just enter the yes action when prompted.
|
||||
</details>
|
||||
|
||||
### 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.
|
||||
3. Download [libpng](https://sourceforge.net/projects/libpng/files/libpng16/1.6.37/libpng-1.6.37.tar.xz/download).
|
||||
|
||||
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:
|
||||
4. Change directory to where libpng was downloaded. By default, msys2 will start in the current user's profile folder, located at **C:\Users\\⁠_\<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 Expansion (msys2)
|
||||
At this point, you can choose a folder to store pokeemerald Expansion into. If you're okay with storing pokeemerald Expansion in the user profile folder, then proceed to [Installation](#installation). Otherwise, you'll need to account for where pokeemerald Expansion is stored when changing directory to the pokeemerald-expansion folder.
|
||||
|
||||
For example, if you want to store pokeemerald Expansion in **C:\Users\\_\<user>_\Desktop\decomps** (where *\<user>* is your **Windows** username), enter this command:
|
||||
|
||||
```bash
|
||||
cd Desktop/decomps
|
||||
@@ -157,7 +219,7 @@ Otherwise, ask for help on Discord or IRC (see [README.md](README.md)), or conti
|
||||
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)
|
||||
- Otherwise, **open Cygwin** and go to [Choosing where to store pokeemerald Expansion (Cygwin)](#choosing-where-to-store-pokeemerald-expansion-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.
|
||||
@@ -200,15 +262,15 @@ Note that in Cygwin, Copy is Ctrl+Insert and Paste is Shift+Insert.
|
||||
> Replace the drive letter c with the actual drive letter if it is not c.
|
||||
</details>
|
||||
|
||||
### Choosing where to store pokeemerald (Cygwin)
|
||||
### Choosing where to store pokeemerald Expansion (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.
|
||||
Cygwin has its own file system that's within Windows, at **C:\cygwin64\home\\_\<user>_**. If you don't want to store pokeemerald Expansion there, you'll need to account for where ppokeemerald Expansion is stored when **changing directory** to the pokeemerald-expansion 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:
|
||||
For example, if you want to store pokeemerald Expansion 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.
|
||||
Note that the directory **must exist** in Windows. If you want to store pokeemerald Expansion 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>
|
||||
@@ -228,7 +290,7 @@ If this works, then proceed to [Installation](#installation). Otherwise, ask for
|
||||
|
||||
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)
|
||||
- Otherwise, **open the Terminal** and go to [Choosing where to store pokeemerald Expansion (macOS)](#choosing-where-to-store-pokeemerald-expansion-macos)
|
||||
|
||||
### Installing libpng (macOS)
|
||||
<details>
|
||||
@@ -246,7 +308,7 @@ If this works, then proceed to [Installation](#installation). Otherwise, ask for
|
||||
```
|
||||
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).
|
||||
Continue to [Installing devkitARM (macOS)](#installing-devkitarm-macos) if **devkitARM is not installed**, otherwise, go to [Choosing where to store pokeemerald Expansion (macOS)](#choosing-where-to-store-pokeemerald-expansion-macos).
|
||||
|
||||
### Installing devkitARM (macOS)
|
||||
1. Download the `devkitpro-pacman-installer.pkg` package from [here](https://github.com/devkitPro/pacman/releases).
|
||||
@@ -272,14 +334,14 @@ If this works, then proceed to [Installation](#installation). Otherwise, ask for
|
||||
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.
|
||||
### Choosing where to store pokeemerald Expansion (macOS)
|
||||
At this point, you can choose a folder to store pokeemerald Expansion into. If you're okay with storing pokeemerald Expansion in the user folder, then proceed to [Installation](#installation). Otherwise, you'll need to account for where pokeemerald Expansion is stored when changing directory to the pokeemerald-expansion folder.
|
||||
|
||||
For example, if you want to store pokeemerald (and agbcc) in **~/Desktop/decomps**, enter this command to **change directory** to the desired folder:
|
||||
For example, if you want to store pokeemerald Expansion in **~/Desktop/decomps**, enter this command to **change directory** to the desired folder:
|
||||
```bash
|
||||
cd Desktop/decomps
|
||||
```
|
||||
Note that the directory **must exist** in the folder system. If you want to store pokeemerald in a dedicated folder that doesn't exist (e.g. the example provided above), then create the folder (e.g. using Finder) before executing the `cd` command.
|
||||
Note that the directory **must exist** in the folder system. If you want to store pokeemerald Expansion 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>
|
||||
@@ -295,30 +357,62 @@ Open Terminal and enter the following commands, depending on which distro you're
|
||||
### 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
|
||||
sudo apt install build-essential binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi git libpng-dev
|
||||
```
|
||||
Then proceed to [Choosing where to store pokeemerald (Linux)](#choosing-where-to-store-pokeemerald-linux).
|
||||
Then proceed to [Choosing where to store pokeemerald Expansion (Linux)](#choosing-where-to-store-pokeemerald-expansion-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
|
||||
> then you will have to install devkitARM. Install all the above packages except for the arm-none-eabi packages, and follow the instructions to
|
||||
> [install devkitARM on Debian/Ubuntu-based distributions](#installing-devkitarm-on-debianubuntu-based-distributions).
|
||||
</details>
|
||||
|
||||
### Installing devkitARM on Debian/Ubuntu-based distributions
|
||||
|
||||
1. Change directory to somewhere you can download a packages, like a Downloads folder. Then, run the following commands to install devkitARM:
|
||||
|
||||
```bash
|
||||
wget https://apt.devkitpro.org/install-devkitpro-pacman
|
||||
chmod +x ./install-devkitpro-pacman
|
||||
sudo ./install-devkitpro-pacman
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
### Arch Linux
|
||||
Run this command as root to install the necessary packages:
|
||||
```bash
|
||||
pacman -S base-devel arm-none-eabi-binutils git libpng
|
||||
pacman -S base-devel arm-none-eabi-binutils arm-none-eabi-gcc arm-none-eabi-newlib git libpng
|
||||
```
|
||||
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 Arch Linux](#installing-devkitarm-on-arch-linux).
|
||||
</details>
|
||||
### Installing devkitARM on Arch Linux
|
||||
|
||||
1. Follow [devkitPro's instructions](https://devkitpro.org/wiki/devkitPro_pacman#Customising_Existing_Pacman_Install) to configure `pacman` to download devkitPro packages.
|
||||
2. Install `gba-dev`: run the following command as root.
|
||||
|
||||
```console
|
||||
pacman -S gba-dev
|
||||
```
|
||||
This 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.
|
||||
|
||||
3. 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.
|
||||
|
||||
Then proceed to [Choosing where to store pokeemerald Expansion (Linux)](#choosing-where-to-store-pokeemerald-expansion-linux).
|
||||
|
||||
### Other distributions
|
||||
_(Specific instructions for other distributions would be greatly appreciated!)_
|
||||
@@ -340,8 +434,8 @@ _(Specific instructions for other distributions would be greatly appreciated!)_
|
||||
|
||||
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.
|
||||
### Choosing where to store pokeemerald Expansion (Linux)
|
||||
At this point, you can choose a folder to store pokeemerald Expansion into. If so, you'll have to account for the modified folder path when changing directory to the pokeemerald-expansion folder.
|
||||
|
||||
If this works, then proceed to [Installation](#installation). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)).
|
||||
|
||||
@@ -350,12 +444,12 @@ If this works, then proceed to [Installation](#installation). Otherwise, ask for
|
||||
<details>
|
||||
<summary><i>Note for Windows users...</i></summary>
|
||||
|
||||
> Consider adding an exception for the `pokeemerald` and/or `decomps` folder in Windows Security using
|
||||
> Consider adding an exception for the `pokeemerald-expansion` 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:
|
||||
1. If pokeemerald Expansion is not already downloaded (some users may prefer to download pokeemerald Expansion via a git client like GitHub Desktop), run:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/rh-hideout/pokeemerald-expansion
|
||||
@@ -369,54 +463,18 @@ If this works, then proceed to [Installation](#installation). Otherwise, ask for
|
||||
> cd
|
||||
> sudo umount /mnt/c
|
||||
> sudo mount -t drvfs C: /mnt/c -o metadata,noatime
|
||||
> cd <folder where pokeemerald is to be stored>
|
||||
> cd <folder where pokeemerald-expansion 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.
|
||||
> Where *\<folder where pokeemerald-expansion is to be stored>* is the path of the folder [where you chose to store pokeemerald Expansion](#Choosing-where-to-store-pokeemerald-expansion-WSL1). Then run the `git clone` command again.
|
||||
</details>
|
||||
|
||||
Now you're ready to build pokeemerald Expansion.
|
||||
|
||||
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:
|
||||
## Build pokeemerald Expansion
|
||||
|
||||
```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:
|
||||
If you aren't in the pokeemerald-expansion directory already, then **change directory** to the pokeemerald-expansion folder:
|
||||
```bash
|
||||
cd pokeemerald
|
||||
cd pokeemerald-expansion
|
||||
```
|
||||
To build **pokeemerald.gba** (Note: to speed up builds, see [Parallel builds](#parallel-builds)):
|
||||
```bash
|
||||
@@ -446,116 +504,6 @@ 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)).
|
||||
|
||||
## Compare ROM to the original
|
||||
|
||||
For contributing, or if you'd simply like to verify that your ROM is identical to the original game, run:
|
||||
```bash
|
||||
make compare
|
||||
```
|
||||
If it matches, you will see the following at the end of the output:
|
||||
```bash
|
||||
pokeemerald.gba: OK
|
||||
```
|
||||
If there are any changes from the original game, you will instead see:
|
||||
```bash
|
||||
pokeemerald.gba: FAILED
|
||||
shasum: WARNING: 1 computed checksum did NOT match
|
||||
```
|
||||
|
||||
## devkitARM's C compiler
|
||||
|
||||
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
|
||||
|
||||
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.
|
||||
|
||||
### Installing devkitARM on Arch Linux
|
||||
|
||||
1. Follow [devkitPro's instructions](https://devkitpro.org/wiki/devkitPro_pacman#Customising_Existing_Pacman_Install) to configure `pacman` to download devkitPro packages.
|
||||
2. Install `gba-dev`: run the following command as root.
|
||||
|
||||
```console
|
||||
pacman -S gba-dev
|
||||
```
|
||||
This 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.
|
||||
|
||||
3. Run the following command to set devkitPro related environment variables (alternatively, close and re-open the Terminal):
|
||||
|
||||
```bash
|
||||
source /etc/profile.d/devkit-env.sh
|
||||
```
|
||||
|
||||
devkitARM is now installed.
|
||||
|
||||
### Other toolchains
|
||||
|
||||
To build using a toolchain other than devkitARM, override the `TOOLCHAIN` environment variable with the path to your toolchain, which must contain the subdirectory `bin`.
|
||||
@@ -568,16 +516,64 @@ 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.
|
||||
|
||||
### Building with debug info under a modern toolchain
|
||||
### Building with debug info
|
||||
|
||||
To build **pokeemerald.elf** with debug symbols under a modern toolchain:
|
||||
```bash
|
||||
make modern DINFO=1
|
||||
make DINFO=1
|
||||
```
|
||||
Note that this is not necessary for a non-modern build since those are built with debug symbols by default.
|
||||
Note that this is not necessary for a non-modern (agbcc) build since those are built with debug symbols by default.
|
||||
|
||||
### agbcc
|
||||
|
||||
<details>
|
||||
<summary><i>Deprecated; installing agbcc is optional since 1.7.0</i>.</summary>
|
||||
2. Install agbcc into pokeemerald-expansion. 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 Expansion, run the following commands to build and install it into pokeemerald-expansion:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/pret/agbcc
|
||||
cd agbcc
|
||||
./build.sh
|
||||
./install.sh ../pokeemerald-expansion
|
||||
```
|
||||
|
||||
- **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-expansion:
|
||||
|
||||
```bash
|
||||
cd agbcc
|
||||
git clean -fX
|
||||
./build.sh
|
||||
./install.sh ../pokeemerald-expansion
|
||||
```
|
||||
|
||||
- **Otherwise**, if agbcc has been built before on the same terminal, run the following commands to install agbcc into pokeemerald-expansion:
|
||||
|
||||
```bash
|
||||
cd agbcc
|
||||
./install.sh ../pokeemerald-expansion
|
||||
```
|
||||
|
||||
<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-expansion and agbcc are stored:
|
||||
|
||||
```bash
|
||||
cd ..
|
||||
```
|
||||
|
||||
4. To compile with agbcc:
|
||||
|
||||
```make agbcc```
|
||||
|
||||
</details>
|
||||
|
||||
# Useful additional tools
|
||||
|
||||
* [porymap](https://github.com/huderlem/porymap) for viewing and editing maps
|
||||
* [poryscript](https://github.com/huderlem/poryscript) for scripting ([VS Code extension](https://marketplace.visualstudio.com/items?itemName=karathan.poryscript))
|
||||
* [Tilemap Studio](https://github.com/Rangi42/tilemap-studio) for viewing and editing tilemaps
|
||||
* [Tilemap Studio](https://github.com/Rangi42/tilemap-studio) for viewing and editing tilemaps
|
||||
47
Makefile
47
Makefile
@@ -28,7 +28,7 @@ LD := $(PREFIX)ld
|
||||
# note: the makefile must be set up so MODERNCC is never called
|
||||
# if MODERN=0
|
||||
MODERNCC := $(PREFIX)gcc
|
||||
PATH_MODERNCC := PATH=$(TOOLCHAIN)/bin:PATH $(MODERNCC)
|
||||
PATH_MODERNCC := PATH="$(PATH)" $(MODERNCC)
|
||||
|
||||
ifeq ($(OS),Windows_NT)
|
||||
EXE := .exe
|
||||
@@ -40,11 +40,12 @@ TITLE := POKEMON EMER
|
||||
GAME_CODE := BPEE
|
||||
MAKER_CODE := 01
|
||||
REVISION := 0
|
||||
MODERN ?= 0
|
||||
MODERN ?= 1
|
||||
TEST ?= 0
|
||||
ANALYZE ?= 0
|
||||
|
||||
ifeq (modern,$(MAKECMDGOALS))
|
||||
MODERN := 1
|
||||
ifeq (agbcc,$(MAKECMDGOALS))
|
||||
MODERN := 0
|
||||
endif
|
||||
|
||||
ifeq (check,$(MAKECMDGOALS))
|
||||
@@ -68,12 +69,12 @@ else
|
||||
CPP := $(PREFIX)cpp
|
||||
endif
|
||||
|
||||
ROM_NAME := pokeemerald.gba
|
||||
ROM_NAME := pokeemerald_agbcc.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_ROM_NAME := pokeemerald.gba
|
||||
MODERN_ELF_NAME := $(MODERN_ROM_NAME:.gba=.elf)
|
||||
MODERN_MAP_NAME := $(MODERN_ROM_NAME:.gba=.map)
|
||||
MODERN_OBJ_DIR_NAME := build/modern
|
||||
@@ -84,7 +85,11 @@ ELF = $(ROM:.gba=.elf)
|
||||
MAP = $(ROM:.gba=.map)
|
||||
SYM = $(ROM:.gba=.sym)
|
||||
|
||||
ifeq ($(MODERN),0)
|
||||
TEST_OBJ_DIR_NAME := build/test
|
||||
else
|
||||
TEST_OBJ_DIR_NAME := build/modern-test
|
||||
endif
|
||||
TESTELF = $(ROM:.gba=-test.elf)
|
||||
HEADLESSELF = $(ROM:.gba=-test-headless.elf)
|
||||
|
||||
@@ -118,7 +123,10 @@ LIBPATH := -L ../../tools/agbcc/lib
|
||||
LIB := $(LIBPATH) -lgcc -lc -L../../libagbsyscall -lagbsyscall
|
||||
else
|
||||
CC1 = $(shell $(PATH_MODERNCC) --print-prog-name=cc1) -quiet
|
||||
override CFLAGS += -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast
|
||||
override CFLAGS += -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast -std=gnu17 -Werror -Wall -Wno-strict-aliasing -Wno-attribute-alias -Woverride-init
|
||||
ifeq ($(ANALYZE),1)
|
||||
override CFLAGS += -fanalyzer
|
||||
endif
|
||||
ROM := $(MODERN_ROM_NAME)
|
||||
OBJ_DIR := $(MODERN_OBJ_DIR_NAME)
|
||||
LIBPATH := -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libgcc.a))" -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libnosys.a))" -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libc.a))"
|
||||
@@ -138,8 +146,6 @@ ifneq ($(MODERN),1)
|
||||
CPPFLAGS += -I tools/agbcc/include -I tools/agbcc -nostdinc -undef
|
||||
endif
|
||||
|
||||
LDFLAGS = -Map ../../$(MAP)
|
||||
|
||||
SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
|
||||
GFX := tools/gbagfx/gbagfx$(EXE)
|
||||
AIF := tools/aif2pcm/aif2pcm$(EXE)
|
||||
@@ -174,7 +180,7 @@ MAKEFLAGS += --no-print-directory
|
||||
# Secondary expansion is required for dependency variables in object rules.
|
||||
.SECONDEXPANSION:
|
||||
|
||||
.PHONY: all rom clean compare tidy tools check-tools mostlyclean clean-tools clean-check-tools $(TOOLDIRS) $(CHECKTOOLDIRS) libagbsyscall modern tidymodern tidynonmodern check
|
||||
.PHONY: all rom clean compare tidy tools check-tools mostlyclean clean-tools clean-check-tools $(TOOLDIRS) $(CHECKTOOLDIRS) libagbsyscall agbcc modern tidymodern tidynonmodern check
|
||||
|
||||
infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
|
||||
|
||||
@@ -182,7 +188,7 @@ infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst
|
||||
# Disable dependency scanning for clean/tidy/tools
|
||||
# Use a separate minimal makefile for speed
|
||||
# Since we don't need to reload most of this makefile
|
||||
ifeq (,$(filter-out all rom compare modern check libagbsyscall syms $(TESTELF),$(MAKECMDGOALS)))
|
||||
ifeq (,$(filter-out all rom compare agbcc modern check libagbsyscall syms $(TESTELF),$(MAKECMDGOALS)))
|
||||
$(call infoshell, $(MAKE) -f make_tools.mk)
|
||||
else
|
||||
NODEP ?= 1
|
||||
@@ -272,8 +278,7 @@ clean-check-tools:
|
||||
@$(foreach tooldir,$(CHECKTOOLDIRS),$(MAKE) clean -C $(tooldir);)
|
||||
|
||||
mostlyclean: tidynonmodern tidymodern tidycheck
|
||||
rm -f $(SAMPLE_SUBDIR)/*.bin
|
||||
rm -f $(CRY_SUBDIR)/*.bin
|
||||
find sound -iname '*.bin' -exec rm {} +
|
||||
rm -f $(MID_SUBDIR)/*.s
|
||||
find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.rl' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} +
|
||||
rm -f $(DATA_ASM_SUBDIR)/layouts/layouts.inc $(DATA_ASM_SUBDIR)/layouts/layouts_table.inc
|
||||
@@ -341,6 +346,7 @@ $(C_BUILDDIR)/librfu_intr.o: CC1 := tools/agbcc/bin/agbcc_arm$(EXE)
|
||||
$(C_BUILDDIR)/librfu_intr.o: CFLAGS := -O2 -mthumb-interwork -quiet
|
||||
else
|
||||
$(C_BUILDDIR)/librfu_intr.o: CFLAGS := -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast
|
||||
$(C_BUILDDIR)/pokedex_plus_hgss.o: CFLAGS := -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -Wno-pointer-to-int-cast -std=gnu17 -Werror -Wall -Wno-strict-aliasing -Wno-attribute-alias -Woverride-init
|
||||
endif
|
||||
|
||||
ifeq ($(DINFO),1)
|
||||
@@ -455,35 +461,38 @@ $(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt
|
||||
|
||||
# NOTE: Based on C_DEP above, but without NODEP and KEEP_TEMPS handling.
|
||||
define TEST_DEP
|
||||
$1: $2 $$(shell $(SCANINC) -I include -I tools/agbcc/include -I gflib -I test $2)
|
||||
$1: $2 $$(shell $(SCANINC) -I include -I tools/agbcc/include -I gflib $2)
|
||||
@echo "$$(CC1) <flags> -o $$@ $$<"
|
||||
@$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) $$< charmap.txt -i | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ -
|
||||
endef
|
||||
$(foreach src, $(TEST_SRCS), $(eval $(call TEST_DEP,$(patsubst $(TEST_SUBDIR)/%.c,$(TEST_BUILDDIR)/%.o,$(src)),$(src),$(patsubst $(TEST_SUBDIR)/%.c,%,$(src)))))
|
||||
|
||||
ifeq ($(MODERN),0)
|
||||
LD_SCRIPT := ld_script.txt
|
||||
LD_SCRIPT := ld_script.ld
|
||||
LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld
|
||||
else
|
||||
LD_SCRIPT := ld_script_modern.txt
|
||||
LD_SCRIPT := ld_script_modern.ld
|
||||
LD_SCRIPT_DEPS :=
|
||||
endif
|
||||
|
||||
$(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS)
|
||||
cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld
|
||||
|
||||
LDFLAGS = -Map ../../$(MAP)
|
||||
$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) libagbsyscall
|
||||
@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)
|
||||
@cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld --print-memory-usage -o ../../$@ $(OBJS_REL) $(LIB) | cat
|
||||
$(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent
|
||||
|
||||
$(ROM): $(ELF)
|
||||
$(OBJCOPY) -O binary $< $@
|
||||
$(FIX) $@ --silent
|
||||
|
||||
agbcc: all
|
||||
|
||||
modern: all
|
||||
|
||||
LD_SCRIPT_TEST := ld_script_test.txt
|
||||
LD_SCRIPT_TEST := ld_script_test.ld
|
||||
|
||||
$(OBJ_DIR)/ld_script_test.ld: $(LD_SCRIPT_TEST) $(LD_SCRIPT_DEPS)
|
||||
cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT_TEST) > ld_script_test.ld
|
||||
@@ -491,7 +500,7 @@ $(OBJ_DIR)/ld_script_test.ld: $(LD_SCRIPT_TEST) $(LD_SCRIPT_DEPS)
|
||||
$(TESTELF): $(OBJ_DIR)/ld_script_test.ld $(OBJS) $(TEST_OBJS) libagbsyscall tools check-tools
|
||||
@echo "cd $(OBJ_DIR) && $(LD) -T ld_script_test.ld -o ../../$@ <objects> <test-objects> <lib>"
|
||||
@cd $(OBJ_DIR) && $(LD) $(TESTLDFLAGS) -T ld_script_test.ld -o ../../$@ $(OBJS_REL) $(TEST_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) -d0 --silent
|
||||
$(PATCHELF) $(TESTELF) gTestRunnerArgv "$(TESTS)\0"
|
||||
|
||||
ifeq ($(GITHUB_REPOSITORY_OWNER),rh-hideout)
|
||||
|
||||
196
README.md
196
README.md
@@ -1,42 +1,190 @@
|
||||
# pokeemerald Expansion
|
||||
# pokeemerald-expansion
|
||||
|
||||
## What is the pokeemerald Expansion?
|
||||
## What is pokeemerald-expansion?
|
||||
|
||||
The Pokeemerald Expansion is a collection of feature branches that can be integrated into existing [pokeemerald](https://github.com/pret/pokeemerald) projects.
|
||||
pokeemerald-expansion is a decomp hack base project based off pret's [pokeemerald](https://github.com/pret/pokeemerald) decompilation project. It's recommended that any new projects that plan on using it, to clone this repository instead of pret's vanilla repository, as we regurlarly incorporate pret's documentation changes. This is ***NOT*** a standalone romhack, and as such, most features will be unavailable and/or unbalanced if played as is.
|
||||
|
||||
If you use pokeemerald-expansion in your hack, please add RHH (Rom Hacking Hideout) to your credits list. Optionally, you can list the version used, so it can help players know what features to expect.
|
||||
You can phrase it as the following:
|
||||
```
|
||||
Based off RHH's pokeemerald-expansion v1.7.2 https://github.com/rh-hideout/pokeemerald-expansion/
|
||||
```
|
||||
|
||||
## What features are included?
|
||||
- Upgraded battle engine.
|
||||
- Fairy Type.
|
||||
- Physical/Special/Status Category Split.
|
||||
- New moves and abilities up to SwSh.
|
||||
- Options to change behaviors and data by generation.
|
||||
- Mega Evolution and Primal Reversion
|
||||
- ***IMPORTANT*❗❗ Read through these to learn what features you can toggle**:
|
||||
- [Battle configurations](/include/config/battle.h)
|
||||
- [Pokémon configurations](/include/config/pokemon.h)
|
||||
- [Item configurations](/include/config/item.h)
|
||||
- [Overworld configurations](/include/config/overworld.h)
|
||||
- [Debug configurations](/include/config/debug.h)
|
||||
- ***Upgraded battle engine.***
|
||||
- Gen5+ damage calculation.
|
||||
- 2v2 Wild battles support.
|
||||
- 1v2/2v1 battles support.
|
||||
- Fairy Type (configurable).
|
||||
- Physical/Special/Status Category (configurable).
|
||||
- New moves and abilities up to Scarlet and Violet.
|
||||
- Custom Contest data up to SwSh, newer moves are WIP. ([source](https://pokemonurpg.com/info/contests/rse-move-list/))
|
||||
- Mega Evolution
|
||||
- Primal Reversion
|
||||
- Ultra Burst
|
||||
- Z-Moves
|
||||
- Pokémon Species from newer Generations (with the option to disable them if needed).
|
||||
- Updates Hoenn's Regional Dex to match ORAS'.
|
||||
- Updates National Dex incorporating all the new species.
|
||||
- Option to change base stats by generation.
|
||||
- New evolution methods.
|
||||
- Hidden Abilities data (How to make them available is up to the user).
|
||||
- Items from newer Generations and updated item effects for battle and field use.
|
||||
- Gen 8+ damaging moves are given power extrapolated from Gen 7.
|
||||
- Gen 8+ status moves have no additional effects, like Healing Wish.
|
||||
- Dynamax
|
||||
- Gigantamax forms
|
||||
- Initial battle parameters
|
||||
- Queueing stat boosts (aka, Totem Boosts)
|
||||
- Setting Terrains.
|
||||
- Mid-turn speed recalculation.
|
||||
- Quick Poké Ball selection in Wild Battles
|
||||
- Press `R` to use last selected Poké Ball.
|
||||
- Hold `R` to change selection with the D-Pad.
|
||||
- Run option shortcut
|
||||
- Faster battle intro
|
||||
- Message and animation/cry happens at the same time.
|
||||
- Faster HP drain.
|
||||
- Battle Debug menu.
|
||||
- Accessed by pressing `Select` on the "Fight/Bag/Pokémon/Run" menu.
|
||||
- Option to use AI flags in wild Pokémon battles.
|
||||
- FRLG/Gen4+ whiteout money calculation.
|
||||
- Configurable experience settings
|
||||
- Experience on catch.
|
||||
- Splitting experience.
|
||||
- Trainer experience.
|
||||
- Scaled experience.
|
||||
- Unevolved experience boost.
|
||||
- Frostbite.
|
||||
- Doesn't replace freezing unless a config is enabled, so you can mix and match.
|
||||
- Critical capture.
|
||||
- Removed badge boosts (configurable).
|
||||
- Recalculating stats at the end of every battle.
|
||||
- Level 100 Pokémon can earn EVs.
|
||||
- Inverse battle support.
|
||||
- TONS of other features listed [here](/include/config/battle.h).
|
||||
- ***Full Trainer customization***
|
||||
- Nickname, EVs, IVs, moves, ability, ball, friendship, nature, gender, shininess.
|
||||
- Custom tag battle support (teaming up an NPC in a double battle).
|
||||
- Sliding trainer messages.
|
||||
- Upgraded Trainer AI
|
||||
- Considers newer move effects.
|
||||
- New flag options to let you customize the intelligence of your trainers.
|
||||
- Faster calculations.
|
||||
- Specify Poké Balls by Trainer class.
|
||||
- ***Pokémon Species from Generations 1-9.***
|
||||
- Simplified process to add new Pokémon.
|
||||
- Option to disable unwanted families.
|
||||
- Updated sprites to DS style.
|
||||
- Updated stats, types, abilities and egg groups (configurable).
|
||||
- Updated Hoenn's Regional Dex to match ORAS' (configurable).
|
||||
- Updated National Dex incorporating the new species.
|
||||
- Sprite and animation visualizer.
|
||||
- Accesible by pressing `Select` on a Pokémon's Summary screen.
|
||||
- Gen4+ evolution methods, with some changes:
|
||||
- Mossy Rock, Icy Rock and Magnetic Field locations match ORAS'.
|
||||
- Leaf, Ice and Thunder Stones may also be used.
|
||||
- Inkay just needs level 30 to evolve.
|
||||
- You can't physically have both the RTC and gyroscope, so we skip this requirement.
|
||||
- Sylveon uses Gen8+'s evolution method (friendship + Fairy Move).
|
||||
- Option to use hold evolution items directly like stones.
|
||||
- Hidden Abilities.
|
||||
- Available via Ability Patch.
|
||||
- Compatible with Ghoul's DexNav branch.
|
||||
- All gender differences.
|
||||
- Custom female icons for female Hippopotas Hippowdon, Pikachu and Wobbufett
|
||||
- 3 Perfect IVs on Legendaries, Mythicals and Ultra Beasts.
|
||||
- ***Customizable form change tables. Full list of methods [here](/include/constants/form_change_types.h).***
|
||||
- Item holding (eg. Giratina/Arceus)
|
||||
- Item using (eg. Oricorio)
|
||||
- Time of day option for Shaymin
|
||||
- Fainting
|
||||
- Battle begin and end (eg. Xerneas)
|
||||
- Move change option for Zacian/Zamazenta
|
||||
- Battle end in terrains (eg. Burmy)
|
||||
- Switched in battle (eg. Palafin)
|
||||
- HP Threshold (eg. Darmanitan)
|
||||
- Weather (eg. Castform)
|
||||
- End of turn (eg. Morpeko)
|
||||
- Time of day (Shaymin)
|
||||
- ***Breeding Improvements***
|
||||
- Incense Baby Pokémon now happen automatically (configurable).
|
||||
- Level 1 eggs (configurable).
|
||||
- Poké Ball inheriting (configurable).
|
||||
- Egg Move Transfer, including Mirror Herb (configurable).
|
||||
- Nature inheriting 100% of the time with Everstone (configurable)
|
||||
- Gen6+ Ability inheriting (configurable).
|
||||
- ***Items from newer Generations. Full list [here](/include/constants/items.h).***
|
||||
- ***Gen 6+ Exp. Share*** (configurable)
|
||||
- Berserk Gene
|
||||
- Most battle items from Gen 4+
|
||||
- Existing item data but missing effects:
|
||||
- Mints
|
||||
- Dynamax Candy
|
||||
- Mulches
|
||||
- Gimmighoul Coin
|
||||
- Booster Energy
|
||||
- Tera Shards
|
||||
- Tera Orb
|
||||
- ***Feature branches incorporated (with permission):***
|
||||
- [RHH intro credits](https://github.com/Xhyzi/pokeemerald/tree/rhh-intro-credits) by @Xhyzi.
|
||||
- A small signature from all of us to show the collective effort in the project :)
|
||||
- [Overworld debug](https://github.com/TheXaman/pokeemerald/tree/tx_debug_system) by @TheXaman
|
||||
- May be disabled.
|
||||
- Accesible by pressing `R + Start` in the overworld by default.
|
||||
- **Additional features**:
|
||||
- *Clear Boxes*: cleans every Pokémon from the Boxes.
|
||||
- *Hatch an Egg*: lets you choose an Egg in your party and immediatly hatch it.
|
||||
- [HGSS Pokédex](https://github.com/TheXaman/pokeemerald/tree/tx_pokedexPlus_hgss) by @TheXaman
|
||||
- May be disabled.
|
||||
- **Additional features**:
|
||||
- *Support for new evolution methods*.
|
||||
- *Dark Mode*.
|
||||
- [Nature Colors](https://github.com/DizzyEggg/pokeemerald/tree/nature_color) in summary screen by @DizzyEggg
|
||||
- [Dynamic Multichoice](https://github.com/SBird1337/pokeemerald/tree/feature/dynmulti) by @SBird1337
|
||||
- ***Other features***
|
||||
- Pressing B while holding a Pokémon drops them like in modern games (configurable).
|
||||
- Running indoors (configurable).
|
||||
- Configurable overworld poison damage.
|
||||
- Configurable flags for disabling Wild encounters and Trainer battles.
|
||||
- Configurable flags for forcing or disabling Shinies.
|
||||
- Reusable TM (configurable).
|
||||
- B2W2+ Repel system that also supports LGPE's Lures
|
||||
- Gen6+'s EV cap.
|
||||
- All bugfixes from pret included.
|
||||
- Fixed overworld snow effect.
|
||||
|
||||
There are some mechanics, moves and abilities that are missing and being developed. Check [the project's milestones](https://github.com/rh-hideout/pokeemerald-expansion/milestones) to see which ones.
|
||||
|
||||
Certain mechanics, moves, abilities and species sprites are missing. For more information, see [the project's milestones](https://github.com/rh-hideout/pokeemerald-expansion/milestones).
|
||||
|
||||
### [Documentation on features can be found here](https://github.com/rh-hideout/pokeemerald-expansion/wiki)
|
||||
|
||||
## If I already have a project based on regular pokeemerald, can I use pokeemerald-expansion?
|
||||
Yes! Keep in mind that we keep up with pret's documentation of pokeemerald, which means that if your project a bit old, you might get merge conflicts that you need to solve manually.
|
||||
- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`.
|
||||
- Once you have your remote set up, run the command `git pull RHH master`.
|
||||
|
||||
With this, you'll get the latest version of pokeemerald-expansion, plus a couple of bugfixes that haven't been released into the next patch version :)
|
||||
|
||||
## **How do I update my version of pokeemerald-expansion?**
|
||||
- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`.
|
||||
- Once you have your remote set up, run the command `git pull RHH expansion/1.7.2`.
|
||||
|
||||
### Please consider crediting the entire [list of contributors](https://github.com/rh-hideout/pokeemerald-expansion/wiki/Credits) in your project, as they have all worked hard to develop this project :)
|
||||
|
||||
## There's a bug in the project. How do I let you guys know?
|
||||
Please submit any issues with the project [here](https://github.com/rh-hideout/pokeemerald-expansion/issues). Make sure that the issue wasn't reported by someone else by searching using the filters.
|
||||
|
||||
## Can I contribute even if I'm not a member of ROM Hacking Hideout?
|
||||
|
||||
Yes! Contributions are welcome via Pull Requests and they will be reviewed by maintainers. Don't feel discouraged if we take a bit to review your PR, we'll get to it.
|
||||
|
||||
## Who maintains the project?
|
||||
|
||||
The project was originally started by DizzyEgg alongside other contributors.
|
||||
|
||||
The project has now gotten larger and DizzyEgg is now maintaining the project as part of the ROM Hacking Hideout community. Some members of this community are taking on larger roles to help maintain the project.
|
||||
|
||||
### Please consider crediting the entire [list of contributors](https://github.com/rh-hideout/pokeemerald-expansion/wiki/Credits) in your project, as they have all worked hard to develop this project :)
|
||||
|
||||
## Can I contribute even if I'm not a member of ROM Hacking Hideout?
|
||||
|
||||
Yes! Contributions are welcome via Pull Requests and they will be reviewed by maintainers. Don't feel discouraged if we take a bit to review your PR, we'll get to it.
|
||||
|
||||
## What is ROM Hacking Hideout?
|
||||
## What is the ROM Hacking Hideout?
|
||||
|
||||
A Discord-based ROM hacking community that has many members who hack using the disassembly and decompilation projects for Pokémon. Quite a few contributors to the original feature branches by DizzyEgg were members of ROM Hacking Hideout. You can call it RHH for short!
|
||||
|
||||
|
||||
@@ -1,783 +0,0 @@
|
||||
.macro if_random_less_than param0:req, param1:req
|
||||
.byte 0x0
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_random_greater_than param0:req, param1:req
|
||||
.byte 0x1
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_random_equal param0:req, param1:req
|
||||
.byte 0x2
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_random_not_equal param0:req, param1:req
|
||||
.byte 0x3
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro score param0:req
|
||||
.byte 0x4
|
||||
.byte \param0
|
||||
.endm
|
||||
|
||||
.macro if_hp_less_than battler:req, param1:req, param2:req
|
||||
.byte 0x5
|
||||
.byte \battler
|
||||
.byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_hp_more_than battler:req, param1:req, param2:req
|
||||
.byte 0x6
|
||||
.byte \battler
|
||||
.byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_hp_equal battler:req, param1:req, param2:req
|
||||
.byte 0x7
|
||||
.byte \battler
|
||||
.byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_hp_not_equal battler:req, param1:req, param2:req
|
||||
.byte 0x8
|
||||
.byte \battler
|
||||
.byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_status battler:req, status1:req, param2:req
|
||||
.byte 0x9
|
||||
.byte \battler
|
||||
.4byte \status1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_not_status battler:req, status1:req, param2:req
|
||||
.byte 0xa
|
||||
.byte \battler
|
||||
.4byte \status1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_status2 battler:req, status2:req, param2:req
|
||||
.byte 0xb
|
||||
.byte \battler
|
||||
.4byte \status2
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_not_status2 battler:req, status2:req, param2:req
|
||||
.byte 0xc
|
||||
.byte \battler
|
||||
.4byte \status2
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_status3 battler:req, status3:req, param2:req
|
||||
.byte 0xd
|
||||
.byte \battler
|
||||
.4byte \status3
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_not_status3 battler:req, status3:req, param2:req
|
||||
.byte 0xe
|
||||
.byte \battler
|
||||
.4byte \status3
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_side_affecting battler:req, sidestatus:req, param2:req
|
||||
.byte 0xf
|
||||
.byte \battler
|
||||
.4byte \sidestatus
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_not_side_affecting battler:req, sidestatus:req, param2:req
|
||||
.byte 0x10
|
||||
.byte \battler
|
||||
.4byte \sidestatus
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_less_than param0:req, param1:req
|
||||
.byte 0x11
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_more_than param0:req, param1:req
|
||||
.byte 0x12
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_equal param0:req, param1:req
|
||||
.byte 0x13
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_not_equal param0:req, param1:req
|
||||
.byte 0x14
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_less_than_ptr param0:req, param1:req
|
||||
.byte 0x15
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_more_than_ptr param0:req, param1:req
|
||||
.byte 0x16
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_equal_ptr param0:req, param1:req
|
||||
.byte 0x17
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_not_equal_ptr param0:req, param1:req
|
||||
.byte 0x18
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_move param0:req, param1:req
|
||||
.byte 0x19
|
||||
.2byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_not_move param0:req, param1:req
|
||||
.byte 0x1a
|
||||
.2byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_in_bytes param0:req, param1:req
|
||||
.byte 0x1b
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_not_in_bytes param0:req, param1:req
|
||||
.byte 0x1c
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_in_hwords param0:req, param1:req
|
||||
.byte 0x1d
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_not_in_hwords param0:req, param1:req
|
||||
.byte 0x1e
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_user_has_attacking_move param0:req
|
||||
.byte 0x1f
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro if_user_has_no_attacking_moves param0:req
|
||||
.byte 0x20
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro get_turn_count
|
||||
.byte 0x21
|
||||
.endm
|
||||
|
||||
.macro get_type param0:req
|
||||
.byte 0x22
|
||||
.byte \param0
|
||||
.endm
|
||||
|
||||
.macro get_considered_move_power
|
||||
.byte 0x23
|
||||
.endm
|
||||
|
||||
.macro get_how_powerful_move_is
|
||||
.byte 0x24
|
||||
.endm
|
||||
|
||||
.macro get_last_used_bank_move battler:req
|
||||
.byte 0x25
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro if_equal_u32 param0:req, param1:req
|
||||
.byte 0x26
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_not_equal_u32 param0:req, param1:req
|
||||
.byte 0x27
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_user_goes param0:req, param1:req
|
||||
.byte 0x28
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_cant_use_belch battler:req, ptr:req
|
||||
.byte 0x29
|
||||
.byte \battler
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro nop_2A
|
||||
.byte 0x2a
|
||||
.endm
|
||||
|
||||
.macro nop_2B
|
||||
.byte 0x2b
|
||||
.endm
|
||||
|
||||
.macro count_usable_party_mons battler:req
|
||||
.byte 0x2c
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro get_considered_move
|
||||
.byte 0x2d
|
||||
.endm
|
||||
|
||||
.macro get_considered_move_effect
|
||||
.byte 0x2e
|
||||
.endm
|
||||
|
||||
.macro get_ability battler:req
|
||||
.byte 0x2f
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro get_highest_type_effectiveness
|
||||
.byte 0x30
|
||||
.endm
|
||||
|
||||
.macro if_type_effectiveness param0:req, param1:req
|
||||
.byte 0x31
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro nop_32
|
||||
.byte 0x32
|
||||
.endm
|
||||
|
||||
.macro nop_33
|
||||
.byte 0x33
|
||||
.endm
|
||||
|
||||
.macro if_status_in_party battler:req, status1:req, param2:req
|
||||
.byte 0x34
|
||||
.byte \battler
|
||||
.4byte \status1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_status_not_in_party battler:req, status1:req, param2:req
|
||||
.byte 0x35
|
||||
.byte \battler
|
||||
.4byte \status1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro get_weather
|
||||
.byte 0x36
|
||||
.endm
|
||||
|
||||
.macro if_effect param0:req, param1:req
|
||||
.byte 0x37
|
||||
.2byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_not_effect param0:req, param1:req
|
||||
.byte 0x38
|
||||
.2byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_stat_level_less_than battler:req, stat:req, param2:req, param3:req
|
||||
.byte 0x39
|
||||
.byte \battler
|
||||
.byte \stat
|
||||
.byte \param2
|
||||
.4byte \param3
|
||||
.endm
|
||||
|
||||
.macro if_stat_level_more_than battler:req, stat:req, param2:req, param3:req
|
||||
.byte 0x3a
|
||||
.byte \battler
|
||||
.byte \stat
|
||||
.byte \param2
|
||||
.4byte \param3
|
||||
.endm
|
||||
|
||||
.macro if_stat_level_equal battler:req, stat:req, param2:req, param3:req
|
||||
.byte 0x3b
|
||||
.byte \battler
|
||||
.byte \stat
|
||||
.byte \param2
|
||||
.4byte \param3
|
||||
.endm
|
||||
|
||||
.macro if_stat_level_not_equal battler:req, stat:req, param2:req, param3:req
|
||||
.byte 0x3c
|
||||
.byte \battler
|
||||
.byte \stat
|
||||
.byte \param2
|
||||
.4byte \param3
|
||||
.endm
|
||||
|
||||
.macro if_can_faint param0:req
|
||||
.byte 0x3d
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro if_cant_faint param0:req
|
||||
.byte 0x3e
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro if_has_move battler:req, param1:req, param2:req
|
||||
.byte 0x3f
|
||||
.byte \battler
|
||||
.2byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_doesnt_have_move battler:req, param1:req, param2:req
|
||||
.byte 0x40
|
||||
.byte \battler
|
||||
.2byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_has_move_with_effect battler:req, param1:req, param2:req
|
||||
.byte 0x41
|
||||
.byte \battler
|
||||
.byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_doesnt_have_move_with_effect battler:req, param1:req, param2:req
|
||||
.byte 0x42
|
||||
.byte \battler
|
||||
.byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_any_move_disabled_or_encored battler:req, param1:req, param2:req
|
||||
.byte 0x43
|
||||
.byte \battler
|
||||
.byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_curr_move_disabled_or_encored param0:req, param1:req
|
||||
.byte 0x44
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro flee
|
||||
.byte 0x45
|
||||
.endm
|
||||
|
||||
.macro if_random_safari_flee param0:req
|
||||
.byte 0x46
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro watch
|
||||
.byte 0x47
|
||||
.endm
|
||||
|
||||
.macro get_hold_effect battler:req
|
||||
.byte 0x48
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro get_gender battler:req
|
||||
.byte 0x49
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro is_first_turn_for battler:req
|
||||
.byte 0x4a
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro get_stockpile_count battler:req
|
||||
.byte 0x4b
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro is_double_battle
|
||||
.byte 0x4c
|
||||
.endm
|
||||
|
||||
.macro get_used_held_item battler:req
|
||||
.byte 0x4d
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro get_move_type_from_result
|
||||
.byte 0x4e
|
||||
.endm
|
||||
|
||||
.macro get_move_power_from_result
|
||||
.byte 0x4f
|
||||
.endm
|
||||
|
||||
.macro get_move_effect_from_result
|
||||
.byte 0x50
|
||||
.endm
|
||||
|
||||
.macro get_protect_count battler:req
|
||||
.byte 0x51
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro if_move_flag flag jumpptr
|
||||
.byte 0x52
|
||||
.4byte \flag
|
||||
.4byte \jumpptr
|
||||
.endm
|
||||
|
||||
.macro if_field_status flag jumpptr
|
||||
.byte 0x53
|
||||
.4byte \flag
|
||||
.4byte \jumpptr
|
||||
.endm
|
||||
|
||||
.macro get_move_accuracy
|
||||
.byte 0x54
|
||||
.endm
|
||||
|
||||
.macro call_if_eq value, ptr
|
||||
.byte 0x55
|
||||
.2byte \value
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro call_if_move_flag flag ptr
|
||||
.byte 0x56
|
||||
.4byte \flag
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro nop_57
|
||||
.byte 0x57
|
||||
.endm
|
||||
|
||||
.macro call param0:req
|
||||
.byte 0x58
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro goto param0:req
|
||||
.byte 0x59
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro end
|
||||
.byte 0x5a
|
||||
.endm
|
||||
|
||||
.macro if_level_cond param0:req, param1:req
|
||||
.byte 0x5b
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_target_taunted param0:req
|
||||
.byte 0x5c
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro if_target_not_taunted param0:req
|
||||
.byte 0x5d
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro if_target_is_ally param0:req
|
||||
.byte 0x5e
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro is_of_type battler:req, type:req
|
||||
.byte 0x5f
|
||||
.byte \battler
|
||||
.byte \type
|
||||
.endm
|
||||
|
||||
.macro check_ability battler:req, ability:req
|
||||
.byte 0x60
|
||||
.byte \battler
|
||||
.byte \ability
|
||||
.endm
|
||||
|
||||
.macro if_flash_fired battler:req, param1:req
|
||||
.byte 0x61
|
||||
.byte \battler
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_holds_item battler:req, param1:req, param2:req
|
||||
.byte 0x62
|
||||
.byte \battler
|
||||
.2byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro get_ally_chosen_move
|
||||
.byte 0x63
|
||||
.endm
|
||||
|
||||
.macro if_has_no_attacking_moves battler:req, param1:req
|
||||
.byte 0x64
|
||||
.byte \battler
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro get_hazards_count battler:req, effect:req
|
||||
.byte 0x65
|
||||
.byte \battler
|
||||
.2byte \effect
|
||||
.endm
|
||||
|
||||
.macro if_doesnt_hold_berry battler:req, ptr:req
|
||||
.byte 0x66
|
||||
.byte \battler
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_share_type battler1:req, battler2:req, ptr:req
|
||||
.byte 0x67
|
||||
.byte \battler1
|
||||
.byte \battler2
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_cant_use_last_resort battler:req, ptr:req
|
||||
.byte 0x68
|
||||
.byte \battler
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_has_move_with_split battler:req, split:req, ptr:req
|
||||
.byte 0x69
|
||||
.byte \battler
|
||||
.byte \split
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_has_no_move_with_split battler:req, split:req, ptr:req
|
||||
.byte 0x6A
|
||||
.byte \battler
|
||||
.byte \split
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_physical_moves_unusable attacker:req, target:req, ptr:req
|
||||
.byte 0x6B
|
||||
.byte \attacker
|
||||
.byte \target
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_ai_can_go_down ptr:req
|
||||
.byte 0x6C
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_has_move_with_type battler:req, type:req, ptr:req
|
||||
.byte 0x6D
|
||||
.byte \battler
|
||||
.byte \type
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_no_move_used battler:req, ptr:req
|
||||
.byte 0x6E
|
||||
.byte \battler
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_has_move_with_flag battler:req, flag:req, ptr:req
|
||||
.byte 0x6F
|
||||
.byte \battler
|
||||
.4byte \flag
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_battler_absent battler:req, ptr:req
|
||||
.byte 0x70
|
||||
.byte \battler
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_grounded battler:req, ptr:req
|
||||
.byte 0x71
|
||||
.byte \battler
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro get_best_dmg_hp_percent
|
||||
.byte 0x72
|
||||
.endm
|
||||
|
||||
.macro get_curr_dmg_hp_percent
|
||||
.byte 0x73
|
||||
.endm
|
||||
|
||||
.macro get_move_split_from_result
|
||||
.byte 0x74
|
||||
.endm
|
||||
|
||||
.macro get_considered_move_split
|
||||
.byte 0x75
|
||||
.endm
|
||||
|
||||
.macro get_considered_move_target
|
||||
.byte 0x76
|
||||
.endm
|
||||
|
||||
.macro compare_speeds battler1:req, battler2:req
|
||||
.byte 0x77
|
||||
.byte \battler1
|
||||
.byte \battler2
|
||||
.endm
|
||||
|
||||
.macro is_wakeup_turn battler:req
|
||||
.byte 0x78
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro if_has_move_with_accuracy_lt battler:req, value:req, ptr:req
|
||||
.byte 0x79
|
||||
.byte \battler
|
||||
.byte \value
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
@ useful script macros
|
||||
.macro if_has_physical_move battler:req, ptr:req
|
||||
if_has_move_with_split \battler, SPLIT_PHYSICAL, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_has_no_physical_move battler:req, ptr:req
|
||||
if_has_no_move_with_split \battler, SPLIT_PHYSICAL, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_has_special_move battler:req, ptr:req
|
||||
if_has_move_with_split \battler, SPLIT_SPECIAL, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_has_no_special_move battler:req, ptr:req
|
||||
if_has_no_move_with_split \battler, SPLIT_SPECIAL, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_holds_no_item battler, ptr:req
|
||||
if_holds_item \battler, 0, \ptr
|
||||
.endm
|
||||
|
||||
.macro get_curr_move_type
|
||||
get_type AI_TYPE_MOVE
|
||||
.endm
|
||||
|
||||
.macro get_user_type1
|
||||
get_type AI_TYPE1_USER
|
||||
.endm
|
||||
|
||||
.macro get_user_type2
|
||||
get_type AI_TYPE2_USER
|
||||
.endm
|
||||
|
||||
.macro get_target_type1
|
||||
get_type AI_TYPE1_TARGET
|
||||
.endm
|
||||
|
||||
.macro get_target_type2
|
||||
get_type AI_TYPE2_TARGET
|
||||
.endm
|
||||
|
||||
.macro if_ability battler:req, ability:req, ptr:req
|
||||
check_ability \battler, \ability
|
||||
if_equal 1, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_no_ability battler:req, ability:req, ptr:req
|
||||
check_ability \battler, \ability
|
||||
if_equal 0, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_type battler:req, type:req, ptr:req
|
||||
is_of_type \battler, \type
|
||||
if_equal 1, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_no_type battler:req, type:req, ptr:req
|
||||
is_of_type \battler, \type
|
||||
if_equal 0, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_target_faster ptr:req
|
||||
if_user_goes 1, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_user_faster ptr:req
|
||||
if_user_goes 0, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_double_battle ptr:req
|
||||
is_double_battle
|
||||
if_equal 1, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_not_double_battle ptr:req
|
||||
is_double_battle
|
||||
if_equal 0, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_any_move_disabled battler:req, ptr:req
|
||||
if_any_move_disabled_or_encored \battler, 0, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_any_move_encored battler:req, ptr:req
|
||||
if_any_move_disabled_or_encored \battler, 1, \ptr
|
||||
.endm
|
||||
|
||||
.macro call_if_always_hit ptr:req
|
||||
get_move_accuracy
|
||||
call_if_eq 0, \ptr
|
||||
.endm
|
||||
@@ -1,4 +1,4 @@
|
||||
@ Get the status (CHALLENGE_STATUS_*) of the current challenge and store the result in VAR_TEMP_0
|
||||
@ Get the status (CHALLENGE_STATUS_*) of the current challenge and store the result in VAR_TEMP_CHALLENGE_STATUS
|
||||
.macro frontier_getstatus
|
||||
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_STATUS
|
||||
special CallFrontierUtilFunc
|
||||
|
||||
@@ -92,19 +92,30 @@
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro seteffectwithchance
|
||||
.macro setadditionaleffects
|
||||
1:
|
||||
.byte 0x15
|
||||
jumpifhalfword CMP_EQUAL, sMOVE_EFFECT, MOVE_EFFECT_CONTINUE, 1b
|
||||
.endm
|
||||
|
||||
.macro seteffectprimary
|
||||
.macro seteffectprimary moveEffect=0
|
||||
.if \moveEffect != 0
|
||||
setmoveeffect \moveEffect
|
||||
.endif
|
||||
.byte 0x16
|
||||
.endm
|
||||
|
||||
.macro seteffectsecondary
|
||||
.macro seteffectsecondary moveEffect=0
|
||||
.if \moveEffect != 0
|
||||
setmoveeffect \moveEffect
|
||||
.endif
|
||||
.byte 0x17
|
||||
.endm
|
||||
|
||||
.macro clearstatusfromeffect battler:req
|
||||
.macro clearstatusfromeffect battler:req, moveEffect=0
|
||||
.if \moveEffect != 0
|
||||
setmoveeffect \moveEffect
|
||||
.endif
|
||||
.byte 0x18
|
||||
.byte \battler
|
||||
.endm
|
||||
@@ -362,11 +373,6 @@
|
||||
.byte 0x3f
|
||||
.endm
|
||||
|
||||
.macro jumpifaffectedbyprotect failInstr:req
|
||||
.byte 0x40
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro call instr:req
|
||||
.byte 0x41
|
||||
.4byte \instr
|
||||
@@ -769,7 +775,7 @@
|
||||
.byte 0x8b
|
||||
.endm
|
||||
|
||||
.macro confuseifrepeatingattackends
|
||||
.macro unused0x8C
|
||||
.byte 0x8c
|
||||
.endm
|
||||
|
||||
@@ -985,7 +991,7 @@
|
||||
.byte 0xbb
|
||||
.endm
|
||||
|
||||
.macro maxattackhalvehp failInstr:req
|
||||
.macro halvehp failInstr:req
|
||||
.byte 0xbc
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
@@ -1053,8 +1059,9 @@
|
||||
.byte 0xca
|
||||
.endm
|
||||
|
||||
.macro setcharge
|
||||
.macro setcharge battler:req
|
||||
.byte 0xcb
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro callterrainattack
|
||||
@@ -1091,8 +1098,9 @@
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro trycopyability failInstr:req
|
||||
.macro trycopyability battler:req, failInstr:req
|
||||
.byte 0xd3
|
||||
.byte \battler
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
@@ -1178,19 +1186,21 @@
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro getsecretpowereffect
|
||||
.macro jumpifnotcurrentmoveargtype battler:req, failInstr:req
|
||||
.byte 0xe4
|
||||
.byte \battler
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro pickup
|
||||
.byte 0xe5
|
||||
.endm
|
||||
|
||||
.macro doweatherformchangeanimation
|
||||
.macro unused3
|
||||
.byte 0xe6
|
||||
.endm
|
||||
|
||||
.macro tryweatherformdatachange
|
||||
.macro unused4
|
||||
.byte 0xe7
|
||||
.endm
|
||||
|
||||
@@ -1311,13 +1321,28 @@
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifcantfling battler:req, jumpInstr:req
|
||||
callnative BS_JumpIfCantFling
|
||||
.byte \battler
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro allyswitchswapbattlers
|
||||
callnative BS_AllySwitchSwapBattler
|
||||
.endm
|
||||
|
||||
.macro allyswitchfailchance jumpInstr:req
|
||||
callnative BS_AllySwitchFailChance
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifholdeffect battler:req, holdEffect:req, jumpInstr:req
|
||||
callnative BS_JumpIfHoldEffect
|
||||
.byte \battler
|
||||
.2byte \holdEffect
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
|
||||
.macro dostockpilestatchangeswearoff, battler:req, statChangeInstr:req
|
||||
callnative BS_DoStockpileStatChangesWearOff
|
||||
.byte \battler
|
||||
@@ -1353,7 +1378,42 @@
|
||||
.macro setsnow
|
||||
callnative BS_SetSnow
|
||||
.endm
|
||||
|
||||
|
||||
.macro applysaltcure battler:req
|
||||
callnative BS_ApplySaltCure
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro trysetoctolock battler:req, failInstr:req
|
||||
callnative BS_TrySetOctolock
|
||||
.byte \battler
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro setglaiverush
|
||||
callnative BS_SetGlaiveRush
|
||||
.endm
|
||||
|
||||
.macro tryrelicsong
|
||||
callnative BS_TryRelicSong
|
||||
.endm
|
||||
|
||||
.macro setpledge jumpInstr:req
|
||||
callnative BS_SetPledge
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro setpledgestatus battler:req sidestatus:req
|
||||
callnative BS_SetPledgeStatus
|
||||
.byte \battler
|
||||
.4byte \sidestatus
|
||||
.endm
|
||||
|
||||
.macro trycopycat failInstr:req
|
||||
callnative BS_TryCopycat
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro setzeffect
|
||||
callnative BS_SetZEffect
|
||||
.endm
|
||||
@@ -1363,12 +1423,6 @@
|
||||
callnative BS_TrySymbiosis
|
||||
.endm
|
||||
|
||||
@ returns TRUE or FALSE to gBattleCommunication[0]
|
||||
.macro canteleport battler:req
|
||||
callnative BS_CanTeleport
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
@ returns B_SIDE_x to gBattleCommunication[0]
|
||||
.macro getbattlerside battler:req
|
||||
callnative BS_GetBattlerSide
|
||||
@@ -1381,6 +1435,154 @@
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro jumpifcantloseitem battler:req, ptr:req
|
||||
callnative BS_JumpIfCantLoseItem
|
||||
.byte \battler
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro handlemegaevo battler:req, case:req
|
||||
callnative BS_HandleMegaEvolution
|
||||
.byte \battler
|
||||
.byte \case
|
||||
.endm
|
||||
|
||||
.macro handleprimalreversion battler:req, case:req
|
||||
callnative BS_HandlePrimalReversion
|
||||
.byte \battler
|
||||
.byte \case
|
||||
.endm
|
||||
|
||||
.macro handleultraburst battler:req, case:req
|
||||
callnative BS_HandleUltraBurst
|
||||
.byte \battler
|
||||
.byte \case
|
||||
.endm
|
||||
|
||||
.macro jumpifshelltrap battler:req, jumpInstr:req
|
||||
callnative BS_JumpIfShellTrap
|
||||
.byte \battler
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifemergencyexited battler:req, jumpInstr:req
|
||||
callnative BS_JumpIfEmergencyExited
|
||||
.byte \battler
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifrodaffected battler:req, jumpInstr:req
|
||||
callnative BS_JumpIfRod
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifabsorbaffected battler:req, jumpInstr:req
|
||||
callnative BS_JumpIfAbsorb
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifmotoraffected battler:req, jumpInstr:req
|
||||
callnative BS_JumpIfMotor
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifargument argument:req, jumpInstr:req
|
||||
callnative BS_JumpIfArgument
|
||||
.byte \argument
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro setremoveterrain failInstr:req
|
||||
callnative BS_SetRemoveTerrain
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifterrainaffected battler:req, terrainFlags:req, jumpInstr:req
|
||||
callnative BS_JumpIfTerrainAffected
|
||||
.byte \battler
|
||||
.4byte \terrainFlags
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro tryreflecttype failInstr:req
|
||||
callnative BS_TryReflectType
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
@ Used to active a different Max Move effects.
|
||||
.macro setmaxmoveeffect
|
||||
callnative BS_SetMaxMoveEffect
|
||||
.endm
|
||||
|
||||
.macro setsteelsurge, failInstr:req
|
||||
callnative BS_SetSteelsurge
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro damagenontypes
|
||||
callnative BS_DamageNonTypes
|
||||
.endm
|
||||
|
||||
.macro trysetstatus1, ptr:req
|
||||
callnative BS_TrySetStatus1
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro trysetstatus2, ptr:req
|
||||
callnative BS_TrySetStatus2
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro tryhealsixthhealth, ptr:req
|
||||
callnative BS_HealOneSixth
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro tryrecycleberry, ptr:req
|
||||
callnative BS_TryRecycleBerry
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro updatedynamax
|
||||
callnative BS_UpdateDynamax
|
||||
.endm
|
||||
|
||||
.macro jumpiftargetdynamaxed, ptr:req
|
||||
callnative BS_JumpIfDynamaxed
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro trytrainerslidezmovemsg
|
||||
callnative BS_TryTrainerSlideZMoveMsg
|
||||
.endm
|
||||
|
||||
.macro trytrainerslidemegaevolutionmsg
|
||||
callnative BS_TryTrainerSlideMegaEvolutionMsg
|
||||
.endm
|
||||
|
||||
.macro trytrainerslidedynamaxmsg
|
||||
callnative BS_TryTrainerSlideDynamaxMsg
|
||||
.endm
|
||||
|
||||
.macro tryhealpulse failInstr:req
|
||||
callnative BS_TryHealPulse
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro trydefog clear:req, failInstr:req
|
||||
callnative BS_TryDefog
|
||||
.byte \clear
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro trytriggerstatusform
|
||||
callnative BS_TryTriggerStatusForm
|
||||
.endm
|
||||
|
||||
.macro setphotongeysercategory
|
||||
callnative BS_SetPhotonGeyserCategory
|
||||
.endm
|
||||
|
||||
@ various command changed to more readable macros
|
||||
.macro cancelmultiturnmoves battler:req
|
||||
various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES
|
||||
@@ -1572,11 +1774,6 @@
|
||||
various \battler, VARIOUS_SET_LAST_USED_ABILITY
|
||||
.endm
|
||||
|
||||
.macro tryhealpulse battler:req, failInstr:req
|
||||
various \battler, VARIOUS_TRY_HEAL_PULSE
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro tryquash failInstr:req
|
||||
various BS_ATTACKER, VARIOUS_TRY_QUASH
|
||||
.4byte \failInstr
|
||||
@@ -1596,11 +1793,6 @@
|
||||
various \battler, VARIOUS_INVERT_STAT_STAGES
|
||||
.endm
|
||||
|
||||
.macro setterrain failInstr:req
|
||||
various BS_ATTACKER, VARIOUS_SET_TERRAIN
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro trymefirst failInstr:req
|
||||
various BS_ATTACKER, VARIOUS_TRY_ME_FIRST
|
||||
.4byte \failInstr
|
||||
@@ -1616,26 +1808,11 @@
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro tryreflecttype failInstr:req
|
||||
various BS_ATTACKER, VARIOUS_TRY_REFLECT_TYPE
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro trysoak failInstr:req
|
||||
various BS_ATTACKER, VARIOUS_TRY_SOAK
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro handlemegaevo battler:req, case:req
|
||||
various \battler, VARIOUS_HANDLE_MEGA_EVO
|
||||
.byte \case
|
||||
.endm
|
||||
|
||||
.macro handleprimalreversion battler:req, case:req
|
||||
various \battler, VARIOUS_HANDLE_PRIMAL_REVERSION
|
||||
.byte \case
|
||||
.endm
|
||||
|
||||
.macro handleformchange battler:req, case:req
|
||||
various \battler, VARIOUS_HANDLE_FORM_CHANGE
|
||||
.byte \case
|
||||
@@ -1646,8 +1823,8 @@
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro argumentstatuseffect
|
||||
various BS_ATTACKER, VARIOUS_ARGUMENT_STATUS_EFFECT
|
||||
.macro setargtobattledamage
|
||||
various BS_ATTACKER, VARIOUS_SET_ARG_TO_BATTLE_DAMAGE
|
||||
.endm
|
||||
|
||||
.macro tryhitswitchtarget failInstr:req
|
||||
@@ -1665,11 +1842,6 @@
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro trycopycat failInstr:req
|
||||
various BS_ATTACKER, VARIOUS_TRY_COPYCAT
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro showabilitypopup battler:req
|
||||
various \battler, VARIOUS_ABILITY_POPUP
|
||||
.endm
|
||||
@@ -1678,12 +1850,6 @@
|
||||
various \battler, VARIOUS_UPDATE_ABILITY_POPUP
|
||||
.endm
|
||||
|
||||
.macro defogclear battler:req, clear:req, failInstr:req
|
||||
various \battler, VARIOUS_DEFOG
|
||||
.byte \clear
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro jumpiftargetally jumpInstr:req
|
||||
various BS_ATTACKER, VARIOUS_JUMP_IF_TARGET_ALLY
|
||||
.4byte \jumpInstr
|
||||
@@ -1702,10 +1868,6 @@
|
||||
various \battler, VARIOUS_POWER_TRICK
|
||||
.endm
|
||||
|
||||
.macro argumenttomoveeffect
|
||||
various BS_ATTACKER, VARIOUS_ARGUMENT_TO_MOVE_EFFECT
|
||||
.endm
|
||||
|
||||
.macro jumpifnotgrounded battler:req, jumpInstr:req
|
||||
various \battler, VARIOUS_JUMP_IF_NOT_GROUNDED
|
||||
.4byte \jumpInstr
|
||||
@@ -1893,12 +2055,6 @@
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifterrainaffected battler:req, terrainFlags:req, jumpInstr:req
|
||||
various \battler, VARIOUS_JUMP_IF_TERRAIN_AFFECTED
|
||||
.4byte \terrainFlags
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifpranksterblocked battler:req, jumpInstr:req
|
||||
various \battler, VARIOUS_JUMP_IF_PRANKSTER_BLOCKED
|
||||
.4byte \jumpInstr
|
||||
@@ -1950,10 +2106,6 @@
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro applyplasmafists
|
||||
various BS_ATTACKER, VARIOUS_APPLY_PLASMA_FISTS
|
||||
.endm
|
||||
|
||||
.macro jumpifweatheraffected battler:req, flags:req, jumpInstr:req
|
||||
various \battler, VARIOUS_JUMP_IF_WEATHER_AFFECTED
|
||||
.4byte \flags
|
||||
@@ -1990,39 +2142,15 @@
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro setoctolock battler:req, failInstr:req
|
||||
various \battler, VARIOUS_SET_OCTOLOCK
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro cutonethirdhpraisestats failInstr:req
|
||||
various BS_ATTACKER, VARIOUS_CUT_1_3_HP_RAISE_STATS
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro photongeysercheck battler:req
|
||||
various \battler, VARIOUS_PHOTON_GEYSER_CHECK
|
||||
.endm
|
||||
|
||||
.macro shellsidearmcheck
|
||||
various BS_ATTACKER, VARIOUS_SHELL_SIDE_ARM_CHECK
|
||||
.endm
|
||||
|
||||
.macro jumpifrodaffected battler:req, jumpInstr:req
|
||||
various \battler, VARIOUS_JUMP_IF_ROD
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifabsorbaffected battler:req, jumpInstr:req
|
||||
various \battler, VARIOUS_JUMP_IF_ABSORB
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifmotoraffected battler:req, jumpInstr:req
|
||||
various \battler, VARIOUS_JUMP_IF_MOTOR
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifteanoberry jumpInstr:req
|
||||
various BS_ATTACKER, VARIOUS_TEATIME_TARGETS
|
||||
.4byte \jumpInstr
|
||||
@@ -2033,11 +2161,6 @@
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifcantfling battler:req, jumpInstr:req
|
||||
various \battler, VARIOUS_JUMP_IF_CANT_FLING
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro curecertainstatuses battler:req
|
||||
various \battler, VARIOUS_CURE_CERTAIN_STATUSES
|
||||
.endm
|
||||
@@ -2076,7 +2199,7 @@
|
||||
.macro swapsidestatuses
|
||||
various BS_ATTACKER, VARIOUS_SWAP_SIDE_STATUSES
|
||||
.endm
|
||||
|
||||
|
||||
.macro swapstats stat:req
|
||||
various BS_ATTACKER, VARIOUS_SWAP_STATS
|
||||
.byte \stat
|
||||
@@ -2095,14 +2218,6 @@
|
||||
various \battler, VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES
|
||||
.endm
|
||||
|
||||
.macro trytrainerslidezmovemsg battler:req
|
||||
various \battler, VARIOUS_TRY_TRAINER_SLIDE_MSG_Z_MOVE
|
||||
.endm
|
||||
|
||||
.macro trytrainerslidemegaevolutionmsg battler:req
|
||||
various \battler, VARIOUS_TRY_TRAINER_SLIDE_MSG_MEGA_EVOLUTION
|
||||
.endm
|
||||
|
||||
@ helpful macros
|
||||
.macro setstatchanger stat:req, stages:req, down:req
|
||||
setbyte sSTATCHANGER, \stat | \stages << 3 | \down << 7
|
||||
@@ -2177,6 +2292,11 @@
|
||||
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_NO_EFFECT, \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifside battler:req, side:req, equalJumpInstr:req
|
||||
getbattlerside \battler
|
||||
jumpifbyte CMP_EQUAL, gBattleCommunication, \side, \equalJumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifbattletype flags:req, jumpInstr:req
|
||||
jumpifword CMP_COMMON_BITS, gBattleTypeFlags, \flags, \jumpInstr
|
||||
.endm
|
||||
@@ -2222,6 +2342,15 @@
|
||||
goto \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro setallytonextattacker jumpInstr:req
|
||||
jumpifbyte CMP_GREATER_THAN, gBattlerAttacker, 0x1, 1f
|
||||
addbyte gBattlerAttacker, 0x2
|
||||
goto \jumpInstr
|
||||
1:
|
||||
subbyte gBattlerAttacker, 0x2
|
||||
goto \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifleafguardprotected battler:req, jumpInstr:req
|
||||
various \battler, VARIOUS_JUMP_IF_LEAF_GUARD_PROTECTED
|
||||
.4byte \jumpInstr
|
||||
@@ -2287,16 +2416,6 @@
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
.endm
|
||||
|
||||
.macro jumpifemergencyexited battler:req, jumpInstr:req
|
||||
various \battler, VARIOUS_JUMP_IF_EMERGENCY_EXITED
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifshelltrap battler:req, ptr:req
|
||||
various \battler, VARIOUS_JUMP_IF_SHELL_TRAP
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro hitswitchtargetfailed
|
||||
various 0, VARIOUS_HIT_SWITCH_TARGET_FAILED
|
||||
.endm
|
||||
@@ -2305,3 +2424,14 @@
|
||||
various 0, VARIOUS_TRY_REVIVAL_BLESSING
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
@ Will jump to script pointer if the specified battler has or has not fainted.
|
||||
.macro jumpiffainted battler:req, value:req, ptr:req
|
||||
getbattlerfainted \battler
|
||||
jumpifbyte CMP_EQUAL, gBattleCommunication, \value, \ptr
|
||||
.endm
|
||||
|
||||
.macro flushtextbox
|
||||
printstring STRINGID_EMPTYSTRING3
|
||||
waitmessage 1
|
||||
.endm
|
||||
|
||||
@@ -1735,12 +1735,45 @@
|
||||
.2byte \quantity
|
||||
.endm
|
||||
|
||||
.macro _dynmultichoice left:req, top:req, ignoreBPress:req, maxBeforeScroll:req, shouldSort:req, initialSelected:req, callbacks:req argv:vararg
|
||||
.byte 0xe3
|
||||
.2byte \left
|
||||
.2byte \top
|
||||
.byte \ignoreBPress
|
||||
.byte \maxBeforeScroll
|
||||
.byte \shouldSort
|
||||
.2byte \initialSelected
|
||||
.byte \callbacks
|
||||
.byte (.Ldynmultichoice_\@_2 - .Ldynmultichoice_\@_1) / 4
|
||||
.Ldynmultichoice_\@_1:
|
||||
.4byte \argv
|
||||
.Ldynmultichoice_\@_2:
|
||||
.endm
|
||||
|
||||
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made.
|
||||
@ Lists of options are provided in argv.
|
||||
@ 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 dynmultichoice left:req, top:req, ignoreBPress:req, maxBeforeScroll:req, initialSelected:req, callbacks:req argv:vararg
|
||||
_dynmultichoice \left, \top, \ignoreBPress, \maxBeforeScroll, FALSE, \initialSelected, \callbacks, \argv
|
||||
.endm
|
||||
|
||||
.macro dynmultipush name:req, id:req
|
||||
.byte 0xe4
|
||||
.4byte \name
|
||||
.2byte \id
|
||||
.endm
|
||||
|
||||
.macro dynmultistack left:req, top:req, ignoreBPress:req, maxBeforeScroll:req, shouldSort:req, initialSelected:req, callbacks:req
|
||||
_dynmultichoice \left, \top, \ignoreBPress, \maxBeforeScroll, \shouldSort, \initialSelected, \callbacks, NULL
|
||||
.endm
|
||||
|
||||
@ Like callnative, but function expects a ctx
|
||||
.macro callfunc func:req
|
||||
.byte 0xe3
|
||||
.byte 0xe5
|
||||
.4byte \func
|
||||
.endm
|
||||
|
||||
|
||||
@ Supplementary
|
||||
|
||||
.macro goto_if_unset flag:req, dest:req
|
||||
@@ -2023,3 +2056,40 @@
|
||||
setvar VAR_0x8002, \tryMultiple
|
||||
special TrySpecialOverworldEvo
|
||||
.endm
|
||||
|
||||
.macro ai_vs_ai_battle trainer1:req, trainer2:req
|
||||
setflag B_FLAG_AI_VS_AI_BATTLE
|
||||
setvar VAR_0x8004, \trainer1
|
||||
callnative CreateTrainerPartyForPlayer
|
||||
trainerbattle_no_intro \trainer2, NULL
|
||||
.endm
|
||||
|
||||
@ Sets VAR_RESULT to TRUE if stat can be hyper trained, or to
|
||||
@ FALSE otherwise.
|
||||
.macro canhypertrain stat:req, slot:req
|
||||
callnative CanHyperTrain
|
||||
.byte \stat
|
||||
.2byte \slot
|
||||
.endm
|
||||
|
||||
@ Hyper Trains a stat.
|
||||
.macro hypertrain stat:req, slot:req
|
||||
callnative HyperTrain
|
||||
.byte \stat
|
||||
.2byte \slot
|
||||
.endm
|
||||
|
||||
@ Sets VAR_RESULT to TRUE if the Pokemon has the Gigantamax Factor,
|
||||
@ or to FALSE otherwise.
|
||||
.macro hasgigantamaxfactor slot:req
|
||||
callnative HasGigantamaxFactor
|
||||
.2byte \slot
|
||||
.endm
|
||||
|
||||
@ Toggles the Gigantamax Factor for a Pokemon.
|
||||
@ Fails for Melmetal (vanilla behavior).
|
||||
@ Sets VAR_RESULT to TRUE if it succeeds, and FALSE otherwise.
|
||||
.macro togglegigantamaxfactor slot:req
|
||||
callnative ToggleGigantamaxFactor
|
||||
.2byte \slot
|
||||
.endm
|
||||
|
||||
@@ -27,6 +27,10 @@
|
||||
.2byte \x, \y
|
||||
.byte \elevation
|
||||
.byte \movement_type
|
||||
.if \x_radius > 15
|
||||
@ This warning is relevant for GetItemBallIdAndAmountFromTemplate
|
||||
.error "movementRangeX has a bitfield of 4 bytes, so values over 15 will overflow. Use a custom script for item balls that should give the player more than 15 items."
|
||||
.endif
|
||||
.byte ((\y_radius << 4) | \x_radius)
|
||||
.space 1 @ Padding
|
||||
.2byte \trainer_type
|
||||
|
||||
@@ -162,6 +162,8 @@
|
||||
create_movement_action figure_8, MOVEMENT_ACTION_FIGURE_8
|
||||
create_movement_action fly_up, MOVEMENT_ACTION_FLY_UP
|
||||
create_movement_action fly_down, MOVEMENT_ACTION_FLY_DOWN
|
||||
create_movement_action emote_double_exclamation_mark, MOVEMENT_ACTION_EMOTE_DOUBLE_EXCL_MARK
|
||||
create_movement_action emote_x, MOVEMENT_ACTION_EMOTE_X
|
||||
|
||||
create_movement_action exit_pokeball, MOVEMENT_ACTION_EXIT_POKEBALL
|
||||
create_movement_action enter_pokeball, MOVEMENT_ACTION_ENTER_POKEBALL
|
||||
|
||||
@@ -153,6 +153,7 @@ SUPER_RE = A0
|
||||
'ä' = F4
|
||||
'ö' = F5
|
||||
'ü' = F6
|
||||
EMOJI_DIZZYEGG = F7
|
||||
TALL_PLUS = FC 0C FB
|
||||
'$' = FF
|
||||
|
||||
@@ -367,7 +368,7 @@ B_ATK_PARTNER_NAME = FD 0E
|
||||
B_ATK_NAME_WITH_PREFIX = FD 0F
|
||||
B_DEF_NAME_WITH_PREFIX = FD 10
|
||||
B_EFF_NAME_WITH_PREFIX = FD 11 @ EFF = short for gEffectBattler
|
||||
B_ACTIVE_NAME_WITH_PREFIX = FD 12
|
||||
@ FD 12 - preiously gActiveBattler with prefix
|
||||
B_SCR_ACTIVE_NAME_WITH_PREFIX = FD 13
|
||||
B_CURRENT_MOVE = FD 14
|
||||
B_LAST_MOVE = FD 15
|
||||
@@ -409,8 +410,8 @@ B_ATK_TEAM2 = FD 38
|
||||
B_DEF_NAME = FD 39
|
||||
B_DEF_TEAM1 = FD 3A
|
||||
B_DEF_TEAM2 = FD 3B
|
||||
B_ACTIVE_NAME = FD 3C
|
||||
B_ACTIVE_NAME2 = FD 3D @ no Illusion check
|
||||
@ FD 3C - preiously gActiveBattler
|
||||
@ FD 3D - preiously gActiveBattler without Illusion Check
|
||||
|
||||
@ indicates the end of a town/city name (before " TOWN" or " CITY")
|
||||
NAME_END = FC 00
|
||||
|
||||
3
common_syms/battle_controllers.txt
Normal file
3
common_syms/battle_controllers.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
gBattlerControllerFuncs
|
||||
gBattleControllerData
|
||||
gBattlerControllerEndFuncs
|
||||
@@ -2,8 +2,6 @@ gPreBattleCallback1
|
||||
gBattleMainFunc
|
||||
gBattleResults
|
||||
gLeveledUpInBattle
|
||||
gBattlerControllerFuncs
|
||||
gHealthboxSpriteIds
|
||||
gMultiUsePlayerCursor
|
||||
gNumberOfMovesToChoose
|
||||
gBattleControllerData
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "constants/global.inc"
|
||||
.include "constants/tms_hms.inc"
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
#ifndef GUARD_CONSTANTS_GBA_CONSTANTS_INC
|
||||
#define GUARD_CONSTANTS_GBA_CONSTANTS_INC
|
||||
|
||||
.set PSR_USR_MODE, 0x00000010
|
||||
.set PSR_FIQ_MODE, 0x00000011
|
||||
.set PSR_IRQ_MODE, 0x00000012
|
||||
@@ -511,3 +514,5 @@
|
||||
.set BLDCNT_TGT2_OBJ, 1 << 12
|
||||
.set BLDCNT_TGT2_BD, 1 << 13
|
||||
.set BLDCNT_TGT2_ALL, BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD
|
||||
|
||||
#endif @ GUARD_CONSTANTS_GBA_CONSTANTS_INC
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
#ifndef GUARD_CONSTANTS_GLOBAL_INC
|
||||
#define GUARD_CONSTANTS_GLOBAL_INC
|
||||
|
||||
.set TRUE, 1
|
||||
.set FALSE, 0
|
||||
|
||||
@@ -20,3 +23,5 @@
|
||||
|
||||
.set OBJ_IMAGE_ANIM_H_FLIP, 1 << 6
|
||||
.set OBJ_IMAGE_ANIM_V_FLIP, 1 << 7
|
||||
|
||||
#endif @ GUARD_CONSTANTS_GLOBAL_INC
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
#ifndef GUARD_CONSTANTS_M4A_CONSTANTS_INC
|
||||
#define GUARD_CONSTANTS_M4A_CONSTANTS_INC
|
||||
|
||||
.equiv ID_NUMBER, 0x68736d53
|
||||
|
||||
.equiv PCM_DMA_BUF_SIZE, 1584
|
||||
@@ -250,3 +253,5 @@
|
||||
struct_field o_CgbChannel_nextChannelPointer, 4
|
||||
struct_field o_CgbChannel_dummy4, 8
|
||||
struct_field CgbChannel_size, 0
|
||||
|
||||
#endif @ GUARD_CONSTANTS_M4A_CONSTANTS_INC
|
||||
|
||||
22
constants/tms_hms.inc
Normal file
22
constants/tms_hms.inc
Normal file
@@ -0,0 +1,22 @@
|
||||
#ifndef GUARD_CONSTANTS_TMS_HMS_INC
|
||||
#define GUARD_CONSTANTS_TMS_HMS_INC
|
||||
|
||||
#include "constants/tms_hms.h"
|
||||
|
||||
/* Expands to:
|
||||
* enum_start ITEM_TM01
|
||||
* enum ITEM_TM_FOCUS_PUNCH
|
||||
* ...
|
||||
* enum_start ITEM_HM01
|
||||
* enum ITEM_HM_CUT
|
||||
* ... */
|
||||
#define EQUIV_TM(id) enum ITEM_TM_ ## id;
|
||||
#define EQUIV_HM(id) enum ITEM_HM_ ## id;
|
||||
enum_start ITEM_TM01
|
||||
FOREACH_TM(EQUIV_TM)
|
||||
enum_start ITEM_HM01
|
||||
FOREACH_HM(EQUIV_HM)
|
||||
#undef EQUIV_TM
|
||||
#undef EQUIV_HM
|
||||
|
||||
#endif @ GUARD_CONSTANTS_TMS_HMS_INC
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -49,11 +49,17 @@ BattleScript_UseItemMessage:
|
||||
BattleScript_ItemRestoreHP::
|
||||
call BattleScript_UseItemMessage
|
||||
itemrestorehp
|
||||
jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_ItemRestoreHP_SendOutRevivedBattler
|
||||
bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
healthbarupdate BS_SCRIPTING
|
||||
datahpupdate BS_SCRIPTING
|
||||
printstring STRINGID_ITEMRESTOREDSPECIESHEALTH
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end
|
||||
|
||||
BattleScript_ItemRestoreHP_Party::
|
||||
jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_ItemRestoreHP_SendOutRevivedBattler
|
||||
bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT
|
||||
printstring STRINGID_ITEMRESTOREDSPECIESHEALTH
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end
|
||||
@@ -67,7 +73,7 @@ BattleScript_ItemRestoreHP_SendOutRevivedBattler:
|
||||
BattleScript_ItemCureStatus::
|
||||
call BattleScript_UseItemMessage
|
||||
itemcurestatus
|
||||
updatestatusicon BS_ATTACKER
|
||||
updatestatusicon BS_SCRIPTING
|
||||
printstring STRINGID_ITEMCUREDSPECIESSTATUS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end
|
||||
@@ -80,9 +86,9 @@ BattleScript_ItemHealAndCureStatus::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
updatestatusicon BS_ATTACKER
|
||||
healthbarupdate BS_SCRIPTING
|
||||
datahpupdate BS_SCRIPTING
|
||||
updatestatusicon BS_SCRIPTING
|
||||
printstring STRINGID_ITEMRESTOREDSPECIESHEALTH
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end
|
||||
@@ -112,6 +118,7 @@ BattleScript_ItemSetFocusEnergy::
|
||||
setfocusenergy
|
||||
playmoveanimation BS_ATTACKER, MOVE_FOCUS_ENERGY
|
||||
waitanimation
|
||||
copybyte sBATTLER, gBattlerAttacker
|
||||
printstring STRINGID_PKMNUSEDXTOGETPUMPED
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end
|
||||
@@ -152,6 +159,7 @@ BattleScript_PrintCaughtMonInfo::
|
||||
getexp BS_TARGET
|
||||
sethword gBattle_BG2_X, 0
|
||||
BattleScript_TryPrintCaughtMonInfo:
|
||||
jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_GiveCaughtMonEnd
|
||||
trysetcaughtmondexflags BattleScript_TryNicknameCaughtMon
|
||||
printstring STRINGID_PKMNDATAADDEDTODEX
|
||||
waitstate
|
||||
@@ -243,7 +251,7 @@ BattleScript_TrainerASlideMsgRet::
|
||||
BattleScript_TrainerASlideMsgEnd2::
|
||||
call BattleScript_TrainerASlideMsgRet
|
||||
end2
|
||||
|
||||
|
||||
BattleScript_TrainerBSlideMsgRet::
|
||||
handletrainerslidemsg BS_SCRIPTING, 0
|
||||
trainerslidein B_POSITION_OPPONENT_RIGHT
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#include "config.h"
|
||||
#include "constants/global.h"
|
||||
#include "constants/contest.h"
|
||||
.include "asm/macros.inc"
|
||||
@@ -435,11 +436,11 @@ AI_CGM_BetterWhenAudienceExcited:
|
||||
AI_CGM_BetterWhenAudienceExcited_1stUp:
|
||||
@ BUG: Should be if_appeal_num_eq 0
|
||||
@ 1st up on 1st appeal excitement will always be 0
|
||||
.ifdef BUGFIX
|
||||
#ifdef BUGFIX
|
||||
if_appeal_num_eq 0, AI_CGM_BetterWhenAudienceExcited_1stAppeal
|
||||
.else
|
||||
#else
|
||||
if_appeal_num_not_eq 0, AI_CGM_BetterWhenAudienceExcited_1stAppeal
|
||||
.endif
|
||||
#endif
|
||||
if_excitement_eq 4, AI_CGM_BetterWhenAudienceExcited_1AwayFromMax
|
||||
if_excitement_eq 3, AI_CGM_BetterWhenAudienceExcited_2AwayFromMax
|
||||
end
|
||||
@@ -546,11 +547,11 @@ AI_CGM_TargetMonWithJudgesAttention:
|
||||
end
|
||||
AI_CGM_TargetMonWithJudgesAttention_CheckMon1:
|
||||
if_cannot_participate MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
|
||||
.ifdef BUGFIX
|
||||
#ifdef BUGFIX
|
||||
if_not_used_combo_starter MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
|
||||
.else
|
||||
#else
|
||||
if_used_combo_starter MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
|
||||
.endif
|
||||
#endif
|
||||
if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
|
||||
score +2
|
||||
if_not_completed_combo MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
|
||||
@@ -559,11 +560,11 @@ AI_CGM_TargetMonWithJudgesAttention_CheckMon1:
|
||||
AI_CGM_TargetMonWithJudgesAttention_CheckMon2:
|
||||
if_user_order_eq MON_2, AI_CGM_End
|
||||
if_cannot_participate MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
|
||||
.ifdef BUGFIX
|
||||
#ifdef BUGFIX
|
||||
if_not_used_combo_starter MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
|
||||
.else
|
||||
#else
|
||||
if_used_combo_starter MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
|
||||
.endif
|
||||
#endif
|
||||
if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
|
||||
score +2
|
||||
if_not_completed_combo MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
|
||||
@@ -572,11 +573,11 @@ AI_CGM_TargetMonWithJudgesAttention_CheckMon2:
|
||||
AI_CGM_TargetMonWithJudgesAttention_CheckMon3:
|
||||
if_user_order_eq MON_3, AI_CGM_End
|
||||
if_cannot_participate MON_3, AI_CGM_End
|
||||
.ifdef BUGFIX
|
||||
#ifdef BUGFIX
|
||||
if_not_used_combo_starter MON_3, AI_CGM_End
|
||||
.else
|
||||
#else
|
||||
if_used_combo_starter MON_3, AI_CGM_End
|
||||
.endif
|
||||
#endif
|
||||
if_random_less_than 125, AI_CGM_End
|
||||
score +2
|
||||
if_not_completed_combo MON_3, AI_CGM_End
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#include "config.h"
|
||||
#include "config/battle.h"
|
||||
#include "config/item.h"
|
||||
#include "constants/global.h"
|
||||
@@ -947,6 +948,10 @@ gText_PlayerFoundOneTMHM::
|
||||
.string "{PLAYER} found one {STR_VAR_1}\n"
|
||||
.string "{STR_VAR_2}!$"
|
||||
|
||||
gText_PlayerFoundTMHMs::
|
||||
.string "{PLAYER} found {STR_VAR_3} {STR_VAR_1}\n"
|
||||
.string "{STR_VAR_2}!$"
|
||||
|
||||
gText_Sudowoodo_Attacked::
|
||||
.string "The weird tree doesn't like the\n"
|
||||
.string "WAILMER PAIL!\p"
|
||||
@@ -1005,6 +1010,13 @@ Common_EventScript_LegendaryFlewAway::
|
||||
release
|
||||
end
|
||||
|
||||
EventScript_VsSeekerChargingDone::
|
||||
special VsSeekerFreezeObjectsAfterChargeComplete
|
||||
waitstate
|
||||
special VsSeekerResetObjectMovementAfterChargeComplete
|
||||
releaseall
|
||||
end
|
||||
|
||||
.include "data/scripts/pc_transfer.inc"
|
||||
.include "data/scripts/questionnaire.inc"
|
||||
.include "data/scripts/abnormal_weather.inc"
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#include "config/item.h"
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
@@ -72,6 +73,9 @@ gFieldEffectScriptPointers::
|
||||
.4byte gFieldEffectScript_RayquazaSpotlight @ FLDEFF_RAYQUAZA_SPOTLIGHT
|
||||
.4byte gFieldEffectScript_DestroyDeoxysRock @ FLDEFF_DESTROY_DEOXYS_ROCK
|
||||
.4byte gFieldEffectScript_MoveDeoxysRock @ FLDEFF_MOVE_DEOXYS_ROCK
|
||||
.4byte gFldEffScript_UseVsSeeker @ FLDEFF_USE_VS_SEEKER
|
||||
.4byte gFldEffScript_XIcon @ FLDEFF_X_ICON
|
||||
.4byte gFldEffScript_DoubleExclMarkIcon @ FLDEFF_DOUBLE_EXCL_MARK_ICON
|
||||
.4byte gFieldEffectScript_TracksSlither @ FLDEFF_TRACKS_SLITHER
|
||||
.4byte gFieldEffectScript_TracksBug @ FLDEFF_TRACKS_BUG
|
||||
.4byte gFieldEffectScript_TracksSpot @ FLDEFF_TRACKS_SPOT
|
||||
@@ -347,6 +351,18 @@ gFieldEffectScript_MoveDeoxysRock::
|
||||
field_eff_callnative FldEff_MoveDeoxysRock
|
||||
field_eff_end
|
||||
|
||||
gFldEffScript_UseVsSeeker::
|
||||
field_eff_callnative FldEff_UseVsSeeker
|
||||
field_eff_end
|
||||
|
||||
gFldEffScript_XIcon::
|
||||
field_eff_callnative FldEff_XIcon
|
||||
field_eff_end
|
||||
|
||||
gFldEffScript_DoubleExclMarkIcon::
|
||||
field_eff_callnative FldEff_DoubleExclMarkIcon
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_TracksBug::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_TracksBug
|
||||
field_eff_end
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "AbandonedShip_CaptainsOffice_EventScript_ItemStorageKey",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_STORAGE_KEY",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_ABANDONED_SHIP_CAPTAINS_OFFICE_STORAGE_KEY"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "AbandonedShip_HiddenFloorRooms_EventScript_ItemLuxuryBall",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_LUXURY_BALL",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_6_LUXURY_BALL"
|
||||
},
|
||||
{
|
||||
@@ -36,8 +36,8 @@
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "AbandonedShip_HiddenFloorRooms_EventScript_ItemScanner",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_SCANNER",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_2_SCANNER"
|
||||
},
|
||||
{
|
||||
@@ -49,9 +49,9 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "AbandonedShip_HiddenFloorRooms_EventScript_ItemTM18",
|
||||
"flag": "FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_1_TM18"
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_TM_RAIN_DANCE",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_1_TM_RAIN_DANCE"
|
||||
},
|
||||
{
|
||||
"graphics_id": "OBJ_EVENT_GFX_ITEM_BALL",
|
||||
@@ -62,8 +62,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "AbandonedShip_HiddenFloorRooms_EventScript_ItemWaterStone",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_WATER_STONE",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_3_WATER_STONE"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -23,9 +23,9 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "AbandonedShip_Room_B1F_EventScript_ItemTM13",
|
||||
"flag": "FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_TM13"
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_TM_ICE_BEAM",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_TM_ICE_BEAM"
|
||||
}
|
||||
],
|
||||
"warp_events": [
|
||||
|
||||
@@ -49,8 +49,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "AbandonedShip_Rooms2_1F_EventScript_ItemRevive",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_REVIVE",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_1F_REVIVE"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "AbandonedShip_Rooms2_B1F_EventScript_ItemDiveBall",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_DIVE_BALL",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_B1F_DIVE_BALL"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "AbandonedShip_Rooms_1F_EventScript_ItemHarborMail",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_HARBOR_MAIL",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_ABANDONED_SHIP_ROOMS_1F_HARBOR_MAIL"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "AbandonedShip_Rooms_B1F_EventScript_ItemEscapeRope",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_ESCAPE_ROPE",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_ESCAPE_ROPE"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -49,8 +49,8 @@
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "AquaHideout_B1F_EventScript_ItemMaxElixir",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_MAX_ELIXIR",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_AQUA_HIDEOUT_B1F_MAX_ELIXIR"
|
||||
},
|
||||
{
|
||||
@@ -75,8 +75,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "AquaHideout_B1F_EventScript_ItemMasterBall",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_MASTER_BALL",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_AQUA_HIDEOUT_B1F_MASTER_BALL"
|
||||
},
|
||||
{
|
||||
@@ -101,8 +101,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "AquaHideout_B1F_EventScript_ItemNugget",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_NUGGET",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_AQUA_HIDEOUT_B1F_NUGGET"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -49,8 +49,8 @@
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "AquaHideout_B2F_EventScript_ItemNestBall",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_NEST_BALL",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_AQUA_HIDEOUT_B2F_NEST_BALL"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "ArtisanCave_1F_EventScript_ItemCarbos",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_CARBOS",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_ARTISAN_CAVE_1F_CARBOS"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "ArtisanCave_B1F_EventScript_ItemHPUp",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_HP_UP",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_ARTISAN_CAVE_B1F_HP_UP"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -15,11 +15,11 @@ BattleFrontier_BattleArenaLobby_EventScript_TurnPlayerNorth::
|
||||
end
|
||||
|
||||
BattleFrontier_BattleArenaLobby_OnFrame:
|
||||
map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleArenaLobby_EventScript_GetChallengeStatus
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleArenaLobby_EventScript_QuitWithoutSaving
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleArenaLobby_EventScript_ResumeChallenge
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattleArenaLobby_EventScript_WonChallenge
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleArenaLobby_EventScript_LostChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, 0, BattleFrontier_BattleArenaLobby_EventScript_GetChallengeStatus
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleArenaLobby_EventScript_QuitWithoutSaving
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleArenaLobby_EventScript_ResumeChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_WON, BattleFrontier_BattleArenaLobby_EventScript_WonChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST, BattleFrontier_BattleArenaLobby_EventScript_LostChallenge
|
||||
.2byte 0
|
||||
|
||||
BattleFrontier_BattleArenaLobby_EventScript_GetChallengeStatus::
|
||||
@@ -33,7 +33,7 @@ BattleFrontier_BattleArenaLobby_EventScript_QuitWithoutSaving::
|
||||
arena_set ARENA_DATA_WIN_STREAK, 0
|
||||
arena_set ARENA_DATA_WIN_STREAK_ACTIVE, FALSE
|
||||
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -55,7 +55,7 @@ BattleFrontier_BattleArenaLobby_EventScript_GiveBattlePoints::
|
||||
call BattleFrontier_BattleArenaLobby_EventScript_SaveAfterChallenge
|
||||
msgbox BattleFrontier_BattleArenaLobby_Text_AwaitAnotherChallenge2, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -67,7 +67,7 @@ BattleFrontier_BattleArenaLobby_EventScript_LostChallenge::
|
||||
call BattleFrontier_BattleArenaLobby_EventScript_SaveAfterChallenge
|
||||
msgbox BattleFrontier_BattleArenaLobby_Text_AwaitAnotherChallenge2, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -102,7 +102,7 @@ BattleFrontier_BattleArenaLobby_EventScript_ResumeChallenge::
|
||||
playse SE_SAVE
|
||||
waitse
|
||||
frontier_set FRONTIER_DATA_PAUSED, FALSE
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
goto BattleFrontier_BattleArenaLobby_EventScript_EnterChallenge
|
||||
|
||||
BattleFrontier_BattleArenaLobby_EventScript_Attendant::
|
||||
@@ -148,7 +148,7 @@ BattleFrontier_BattleArenaLobby_EventScript_TryEnterChallenge::
|
||||
case MULTI_B_PRESSED, BattleFrontier_BattleArenaLobby_EventScript_LoadPartyAndCancelChallenge
|
||||
|
||||
BattleFrontier_BattleArenaLobby_EventScript_SaveBeforeChallenge::
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
frontier_set FRONTIER_DATA_SELECTED_MON_ORDER
|
||||
arena_init
|
||||
arena_set ARENA_DATA_WIN_STREAK_ACTIVE, TRUE
|
||||
@@ -158,7 +158,7 @@ BattleFrontier_BattleArenaLobby_EventScript_SaveBeforeChallenge::
|
||||
closemessage
|
||||
delay 2
|
||||
call Common_EventScript_SaveGame
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleArenaLobby_EventScript_CancelChallengeSaveFailed
|
||||
BattleFrontier_BattleArenaLobby_EventScript_EnterChallenge::
|
||||
special SavePlayerParty
|
||||
@@ -169,7 +169,7 @@ BattleFrontier_BattleArenaLobby_EventScript_EnterChallenge::
|
||||
call_if_eq VAR_RESULT, FRONTIER_LVL_50, BattleFrontier_BattleArenaLobby_EventScript_WalkToDoorLv50
|
||||
call_if_eq VAR_RESULT, FRONTIER_LVL_OPEN, BattleFrontier_BattleArenaLobby_EventScript_WalkToDoorLvOpen
|
||||
warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR, 9, 13
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
waitstate
|
||||
end
|
||||
|
||||
|
||||
@@ -21,11 +21,11 @@ BattleFrontier_BattleDomeLobby_EventScript_TurnPlayerNorth::
|
||||
end
|
||||
|
||||
BattleFrontier_BattleDomeLobby_OnFrame:
|
||||
map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeLobby_EventScript_GetChallengeStatus
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleDomeLobby_EventScript_QuitWithoutSaving
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleDomeLobby_EventScript_ResumeChallenge
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattleDomeLobby_EventScript_WonChallenge
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleDomeLobby_EventScript_LostChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, 0, BattleFrontier_BattleDomeLobby_EventScript_GetChallengeStatus
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleDomeLobby_EventScript_QuitWithoutSaving
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleDomeLobby_EventScript_ResumeChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_WON, BattleFrontier_BattleDomeLobby_EventScript_WonChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST, BattleFrontier_BattleDomeLobby_EventScript_LostChallenge
|
||||
.2byte 0
|
||||
|
||||
BattleFrontier_BattleDomeLobby_EventScript_GetChallengeStatus::
|
||||
@@ -40,7 +40,7 @@ BattleFrontier_BattleDomeLobby_EventScript_QuitWithoutSaving::
|
||||
dome_set DOME_DATA_WIN_STREAK_ACTIVE, FALSE
|
||||
dome_set DOME_DATA_ATTEMPTED_CHALLENGE, TRUE
|
||||
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -103,7 +103,7 @@ BattleFrontier_BattleDomeLobby_EventScript_RecordBattle::
|
||||
BattleFrontier_BattleDomeLobby_EventScript_EndChallenge::
|
||||
msgbox BattleFrontier_BattleDomeLobby_Text_HopeToSeeYouAgain, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -116,7 +116,7 @@ BattleFrontier_BattleDomeLobby_EventScript_ResumeChallenge::
|
||||
playse SE_SAVE
|
||||
waitse
|
||||
frontier_set FRONTIER_DATA_PAUSED, FALSE
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
goto BattleFrontier_BattleDomeLobby_EventScript_EnterChallenge
|
||||
|
||||
BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendant::
|
||||
@@ -176,7 +176,7 @@ BattleFrontier_BattleDomeLobby_EventScript_TryEnterChallenge::
|
||||
case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge
|
||||
|
||||
BattleFrontier_BattleDomeLobby_EventScript_SaveBeforeChallenge::
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
frontier_set FRONTIER_DATA_SELECTED_MON_ORDER
|
||||
dome_init
|
||||
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING
|
||||
@@ -185,7 +185,7 @@ BattleFrontier_BattleDomeLobby_EventScript_SaveBeforeChallenge::
|
||||
closemessage
|
||||
delay 2
|
||||
call Common_EventScript_SaveGame
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleDomeLobby_EventScript_CancelChallengeSaveFailed
|
||||
dome_inittrainers
|
||||
BattleFrontier_BattleDomeLobby_EventScript_EnterChallenge::
|
||||
@@ -197,7 +197,7 @@ BattleFrontier_BattleDomeLobby_EventScript_EnterChallenge::
|
||||
call BattleFrontier_BattleDomeLobby_EventScript_WalkToDoor
|
||||
special HealPlayerParty
|
||||
warp MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR, 23, 6
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
waitstate
|
||||
end
|
||||
|
||||
|
||||
@@ -16,11 +16,11 @@ BattleFrontier_BattleFactoryLobby_EventScript_TurnPlayerNorth::
|
||||
end
|
||||
|
||||
BattleFrontier_BattleFactoryLobby_OnFrame:
|
||||
map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleFactoryLobby_EventScript_GetChallengeStatus
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleFactoryLobby_EventScript_QuitWithoutSaving
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleFactoryLobby_EventScript_ResumeChallenge
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattleFactoryLobby_EventScript_WonChallenge
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleFactoryLobby_EventScript_LostChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, 0, BattleFrontier_BattleFactoryLobby_EventScript_GetChallengeStatus
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleFactoryLobby_EventScript_QuitWithoutSaving
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleFactoryLobby_EventScript_ResumeChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_WON, BattleFrontier_BattleFactoryLobby_EventScript_WonChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST, BattleFrontier_BattleFactoryLobby_EventScript_LostChallenge
|
||||
.2byte 0
|
||||
|
||||
BattleFrontier_BattleFactoryLobby_EventScript_GetChallengeStatus::
|
||||
@@ -36,7 +36,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_QuitWithoutSaving::
|
||||
factory_set FACTORY_DATA_WIN_STREAK, 0
|
||||
factory_set FACTORY_DATA_WIN_STREAK_ACTIVE, FALSE
|
||||
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -94,7 +94,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_RecordBattle::
|
||||
BattleFrontier_BattleFactoryLobby_EventScript_EndRecordBattle::
|
||||
msgbox BattleFrontier_BattleFactoryLobby_Text_LookForwardToNextVisit, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -106,7 +106,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_ResumeChallenge::
|
||||
playse SE_SAVE
|
||||
waitse
|
||||
frontier_set FRONTIER_DATA_PAUSED, FALSE
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
setvar VAR_0x8006, 2
|
||||
goto BattleFrontier_BattleFactoryLobby_EventScript_EnterChallenge
|
||||
|
||||
@@ -154,7 +154,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_TryEnterChallenge::
|
||||
case MULTI_B_PRESSED, BattleFrontier_BattleFactoryLobby_EventScript_LoadPartyAndCancelChallenge
|
||||
|
||||
BattleFrontier_BattleFactoryLobby_EventScript_SaveBeforeChallenge::
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
factory_init
|
||||
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING
|
||||
factory_set FACTORY_DATA_WIN_STREAK_ACTIVE, TRUE
|
||||
@@ -162,7 +162,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_SaveBeforeChallenge::
|
||||
closemessage
|
||||
delay 2
|
||||
call Common_EventScript_SaveGame
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleFactoryLobby_EventScript_CancelChallengeSaveFailed
|
||||
setvar VAR_0x8006, 0
|
||||
BattleFrontier_BattleFactoryLobby_EventScript_EnterChallenge::
|
||||
@@ -175,7 +175,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_EnterChallenge::
|
||||
applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleFactoryLobby_Movement_PlayerEnterDoor
|
||||
waitmovement 0
|
||||
warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM, 8, 13
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
waitstate
|
||||
end
|
||||
|
||||
|
||||
@@ -16,11 +16,11 @@ BattleFrontier_BattlePalaceLobby_EventScript_TurnPlayerNorth::
|
||||
end
|
||||
|
||||
BattleFrontier_BattlePalaceLobby_OnFrame:
|
||||
map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePalaceLobby_EventScript_GetChallengeStatus
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePalaceLobby_EventScript_QuitWithoutSaving
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePalaceLobby_EventScript_ResumeChallenge
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattlePalaceLobby_EventScript_WonChallenge
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattlePalaceLobby_EventScript_LostChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, 0, BattleFrontier_BattlePalaceLobby_EventScript_GetChallengeStatus
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePalaceLobby_EventScript_QuitWithoutSaving
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePalaceLobby_EventScript_ResumeChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_WON, BattleFrontier_BattlePalaceLobby_EventScript_WonChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST, BattleFrontier_BattlePalaceLobby_EventScript_LostChallenge
|
||||
.2byte 0
|
||||
|
||||
BattleFrontier_BattlePalaceLobby_EventScript_GetChallengeStatus::
|
||||
@@ -34,7 +34,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_QuitWithoutSaving::
|
||||
palace_set PALACE_DATA_WIN_STREAK, 0
|
||||
palace_set PALACE_DATA_WIN_STREAK_ACTIVE, FALSE
|
||||
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -56,7 +56,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_GiveBattlePoints::
|
||||
call BattleFrontier_BattlePalaceLobby_EventScript_SaveAfterChallenge
|
||||
msgbox BattleFrontier_BattlePalaceLobby_Text_ReturnWhenFortified, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -68,7 +68,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_LostChallenge::
|
||||
call BattleFrontier_BattlePalaceLobby_EventScript_SaveAfterChallenge
|
||||
msgbox BattleFrontier_BattlePalaceLobby_Text_ReturnWhenFortified, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -104,7 +104,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_ResumeChallenge::
|
||||
playse SE_SAVE
|
||||
waitse
|
||||
frontier_set FRONTIER_DATA_PAUSED, FALSE
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
goto BattleFrontier_BattlePalaceLobby_EventScript_EnterChallenge
|
||||
|
||||
BattleFrontier_BattlePalaceLobby_EventScript_SinglesAttendant::
|
||||
@@ -166,7 +166,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_TryEnterChallenge::
|
||||
case MULTI_B_PRESSED, BattleFrontier_BattlePalaceLobby_EventScript_LoadPartyAndCancelChallenge
|
||||
|
||||
BattleFrontier_BattlePalaceLobby_EventScript_SaveBeforeChallenge::
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
frontier_set FRONTIER_DATA_SELECTED_MON_ORDER
|
||||
palace_init
|
||||
palace_set PALACE_DATA_WIN_STREAK_ACTIVE, TRUE
|
||||
@@ -176,7 +176,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_SaveBeforeChallenge::
|
||||
closemessage
|
||||
delay 2
|
||||
call Common_EventScript_SaveGame
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
goto_if_eq VAR_RESULT, 0, BattleFrontier_BattlePalaceLobby_EventScript_CancelChallengeSaveFailed
|
||||
BattleFrontier_BattlePalaceLobby_EventScript_EnterChallenge::
|
||||
special SavePlayerParty
|
||||
@@ -185,7 +185,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_EnterChallenge::
|
||||
closemessage
|
||||
call BattleFrontier_BattlePalaceLobby_EventScript_WalkToDoor
|
||||
warp MAP_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR, 8, 13
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
waitstate
|
||||
end
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@ BattleFrontier_BattlePikeLobby_MapScripts::
|
||||
.byte 0
|
||||
|
||||
BattleFrontier_BattlePikeLobby_OnFrame:
|
||||
map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeLobby_EventScript_GetChallengeStatus
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePikeLobby_EventScript_QuitWithoutSaving
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattlePikeLobby_EventScript_WonChallenge
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattlePikeLobby_EventScript_LostChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, 0, BattleFrontier_BattlePikeLobby_EventScript_GetChallengeStatus
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePikeLobby_EventScript_QuitWithoutSaving
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_WON, BattleFrontier_BattlePikeLobby_EventScript_WonChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST, BattleFrontier_BattlePikeLobby_EventScript_LostChallenge
|
||||
.2byte 0
|
||||
|
||||
BattleFrontier_BattlePikeLobby_OnWarp:
|
||||
@@ -34,7 +34,7 @@ BattleFrontier_BattlePikeLobby_EventScript_QuitWithoutSaving::
|
||||
pike_set PIKE_DATA_WIN_STREAK, 0
|
||||
pike_set PIKE_DATA_WIN_STREAK_ACTIVE, FALSE
|
||||
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -68,7 +68,7 @@ BattleFrontier_BattlePikeLobby_EventScript_GiveBattlePoints::
|
||||
waitse
|
||||
msgbox BattleFrontier_BattlePikeLobby_Text_LookForwardToSeeingYou, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -88,7 +88,7 @@ BattleFrontier_BattlePikeLobby_EventScript_LostChallenge::
|
||||
waitse
|
||||
msgbox BattleFrontier_BattlePikeLobby_Text_LookForwardToSeeingYou, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -135,7 +135,7 @@ BattleFrontier_BattlePikeLobby_EventScript_TryEnterChallenge::
|
||||
case MULTI_B_PRESSED, BattleFrontier_BattlePikeLobby_EventScript_LoadPartyAndCancelChallenge
|
||||
|
||||
BattleFrontier_BattlePikeLobby_EventScript_SaveBeforeChallenge::
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
setvar VAR_TEMP_1, 0
|
||||
frontier_set FRONTIER_DATA_SELECTED_MON_ORDER
|
||||
pike_init
|
||||
@@ -147,7 +147,7 @@ BattleFrontier_BattlePikeLobby_EventScript_SaveBeforeChallenge::
|
||||
closemessage
|
||||
delay 2
|
||||
call Common_EventScript_SaveGame
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
pike_savehelditems
|
||||
goto_if_eq VAR_RESULT, 0, BattleFrontier_BattlePikeLobby_EventScript_CancelChallengeSaveFailed
|
||||
special SavePlayerParty
|
||||
@@ -159,7 +159,7 @@ BattleFrontier_BattlePikeLobby_EventScript_SaveBeforeChallenge::
|
||||
special HealPlayerParty
|
||||
call BattleFrontier_BattlePike_EventScript_CloseCurtain
|
||||
warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR, 6, 7
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
waitstate
|
||||
end
|
||||
|
||||
|
||||
@@ -7,9 +7,9 @@ BattleFrontier_BattlePikeThreePathRoom_MapScripts::
|
||||
.byte 0
|
||||
|
||||
BattleFrontier_BattlePikeThreePathRoom_OnFrame:
|
||||
map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_GetChallengeStatus
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpToLobby
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePikeThreePathRoom_EventScript_ResumeChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_GetChallengeStatus
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpToLobby
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePikeThreePathRoom_EventScript_ResumeChallenge
|
||||
map_script_2 VAR_TEMP_5, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_SetHintRoom
|
||||
map_script_2 VAR_TEMP_5, 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_GivePikeQueenHint
|
||||
.2byte 0
|
||||
@@ -40,7 +40,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_ResumeChallenge::
|
||||
playse SE_SAVE
|
||||
waitse
|
||||
frontier_set FRONTIER_DATA_PAUSED, FALSE
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
special SavePlayerParty
|
||||
frontier_setpartyorder FRONTIER_PARTY_SIZE
|
||||
msgbox BattleFrontier_BattlePikeThreePathRoom_Text_PleaseEnjoyChallenge, MSGBOX_DEFAULT
|
||||
|
||||
@@ -6,7 +6,7 @@ BattleFrontier_BattlePyramidFloor_MapScripts::
|
||||
|
||||
BattleFrontier_BattlePyramidFloor_OnFrame:
|
||||
map_script_2 VAR_TEMP_D, 1, BattleFrontier_BattlePyramidFloor_EventScript_UpdateLight
|
||||
map_script_2 VAR_TEMP_E, 0, BattleFrontier_BattlePyramidFloor_EventScript_PlayPyramidMusic
|
||||
map_script_2 VAR_TEMP_PLAYING_PYRAMID_MUSIC, 0, BattleFrontier_BattlePyramidFloor_EventScript_PlayPyramidMusic
|
||||
map_script_2 VAR_TEMP_F, 1, BattleFrontier_BattlePyramidFloor_EventScript_ShowMapName
|
||||
.2byte 0
|
||||
|
||||
@@ -33,13 +33,13 @@ BattleFrontier_BattlePyramidFloor_EventScript_ShowMapName::
|
||||
|
||||
BattleFrontier_BattlePyramidFloor_EventScript_PlayPyramidMusic::
|
||||
playbgm MUS_B_PYRAMID, FALSE
|
||||
setvar VAR_TEMP_E, 1
|
||||
setvar VAR_TEMP_PLAYING_PYRAMID_MUSIC, 1
|
||||
end
|
||||
|
||||
BattleFrontier_BattlePyramidFloor_OnResume:
|
||||
pyramid_setfloorpal
|
||||
frontier_getstatus
|
||||
switch VAR_TEMP_0
|
||||
switch VAR_TEMP_CHALLENGE_STATUS
|
||||
case 0, BattleFrontier_BattlePyramidFloor_EventScript_ReadyChallenge
|
||||
case CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePyramid_EventScript_WarpToLobby
|
||||
case CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePyramidFloor_EventScript_ReadyChallenge
|
||||
|
||||
@@ -17,11 +17,11 @@ BattleFrontier_BattlePyramidLobby_EventScript_TurnPlayerNorth:
|
||||
end
|
||||
|
||||
BattleFrontier_BattlePyramidLobby_OnFrame:
|
||||
map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePyramidLobby_EventScript_GetChallengeStatus
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePyramidLobby_EventScript_QuitWithoutSaving
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePyramidLobby_EventScript_ResumeChallenge
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattlePyramidLobby_EventScript_WonChallenge
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattlePyramidLobby_EventScript_LostChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, 0, BattleFrontier_BattlePyramidLobby_EventScript_GetChallengeStatus
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePyramidLobby_EventScript_QuitWithoutSaving
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePyramidLobby_EventScript_ResumeChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_WON, BattleFrontier_BattlePyramidLobby_EventScript_WonChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST, BattleFrontier_BattlePyramidLobby_EventScript_LostChallenge
|
||||
.2byte 0
|
||||
|
||||
BattleFrontier_BattlePyramidLobby_EventScript_GetChallengeStatus::
|
||||
@@ -38,7 +38,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_QuitWithoutSaving::
|
||||
pyramid_set PYRAMID_DATA_WIN_STREAK, 0
|
||||
pyramid_set PYRAMID_DATA_WIN_STREAK_ACTIVE, FALSE
|
||||
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -75,7 +75,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_GiveBattlePoints::
|
||||
waitse
|
||||
msgbox BattleFrontier_BattlePyramidLobby_Text_LookForwardToNextChallenge, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -98,7 +98,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_LostChallenge::
|
||||
waitse
|
||||
msgbox BattleFrontier_BattlePyramidLobby_Text_LookForwardToNextChallenge, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -148,7 +148,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_TryEnterChallenge::
|
||||
case MULTI_B_PRESSED, BattleFrontier_BattlePyramidLobby_EventScript_LoadPartyAndCancelChallenge
|
||||
|
||||
BattleFrontier_BattlePyramidLobby_EventScript_SaveBeforeChallenge::
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
frontier_set FRONTIER_DATA_SELECTED_MON_ORDER
|
||||
pyramid_init
|
||||
pyramid_set PYRAMID_DATA_WIN_STREAK_ACTIVE, TRUE
|
||||
@@ -160,7 +160,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_SaveBeforeChallenge::
|
||||
closemessage
|
||||
delay 2
|
||||
call Common_EventScript_SaveGame
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
goto_if_eq VAR_RESULT, 0, BattleFrontier_BattlePyramidLobby_EventScript_CancelChallengeSaveFailed
|
||||
BattleFrontier_BattlePyramidLobby_EventScript_EnterChallenge::
|
||||
special SavePlayerParty
|
||||
@@ -172,7 +172,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_EnterChallenge::
|
||||
setvar VAR_RESULT, 0
|
||||
special HealPlayerParty
|
||||
warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR, 1, 1
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
waitstate
|
||||
end
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ BattleFrontier_BattlePyramidTop_OnResume:
|
||||
BattleFrontier_BattlePyramidTop_EventScript_CheckChallengeStatus::
|
||||
copyvar VAR_TEMP_C, VAR_RESULT
|
||||
frontier_getstatus
|
||||
switch VAR_TEMP_0
|
||||
switch VAR_TEMP_CHALLENGE_STATUS
|
||||
case 0, BattleFrontier_BattlePyramidTop_EventScript_ReadyChallenge
|
||||
case CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePyramid_EventScript_WarpToLobby
|
||||
case CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePyramidTop_EventScript_ReadyChallenge
|
||||
@@ -43,13 +43,13 @@ BattleFrontier_BattlePyramidTop_EventScript_CheckChallengeStatus::
|
||||
end
|
||||
|
||||
BattleFrontier_BattlePyramidTop_OnFrame:
|
||||
map_script_2 VAR_TEMP_E, 0, BattleFrontier_BattlePyramidTop_EventScript_PlayPyramidMusic
|
||||
map_script_2 VAR_TEMP_PLAYING_PYRAMID_MUSIC, 0, BattleFrontier_BattlePyramidTop_EventScript_PlayPyramidMusic
|
||||
map_script_2 VAR_TEMP_F, 1, BattleFrontier_BattlePyramidTop_EventScript_ShowMapName
|
||||
.2byte 0
|
||||
|
||||
BattleFrontier_BattlePyramidTop_EventScript_PlayPyramidMusic::
|
||||
playbgm MUS_B_PYRAMID_TOP, FALSE
|
||||
setvar VAR_TEMP_E, 1
|
||||
setvar VAR_TEMP_PLAYING_PYRAMID_MUSIC, 1
|
||||
end
|
||||
|
||||
BattleFrontier_BattlePyramidTop_EventScript_ShowMapName::
|
||||
|
||||
@@ -41,11 +41,11 @@ BattleFrontier_BattleTowerLobby_EventScript_PlayerFaceNorth::
|
||||
end
|
||||
|
||||
BattleFrontier_BattleTowerLobby_OnFrame:
|
||||
map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleTowerLobby_EventScript_GetChallengeStatus
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleTowerLobby_EventScript_QuitWithoutSaving
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleTowerLobby_EventScript_ResumeChallenge
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattleTowerLobby_EventScript_WonChallenge
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleTowerLobby_EventScript_LostChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, 0, BattleFrontier_BattleTowerLobby_EventScript_GetChallengeStatus
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleTowerLobby_EventScript_QuitWithoutSaving
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleTowerLobby_EventScript_ResumeChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_WON, BattleFrontier_BattleTowerLobby_EventScript_WonChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST, BattleFrontier_BattleTowerLobby_EventScript_LostChallenge
|
||||
.2byte 0
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_GetChallengeStatus::
|
||||
@@ -60,7 +60,7 @@ BattleFrontier_BattleTowerLobby_EventScript_QuitWithoutSaving::
|
||||
tower_set TOWER_DATA_WIN_STREAK, 0
|
||||
tower_set TOWER_DATA_WIN_STREAK_ACTIVE, FALSE
|
||||
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
release
|
||||
end
|
||||
|
||||
@@ -94,7 +94,7 @@ BattleFrontier_BattleTowerLobby_EventScript_GiveBattlePoints::
|
||||
BattleFrontier_BattleTowerLobby_EventScript_LookForwardToChallenge::
|
||||
msgbox BattleFrontier_BattleTowerLobby_Text_LookForwardToAnotherChallenge, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
callnative UpdateFollowingPokemon
|
||||
release
|
||||
end
|
||||
@@ -114,7 +114,7 @@ BattleFrontier_BattleTowerLobby_EventScript_LostThanksForPlaying::
|
||||
call BattleFrontier_BattleTowerLobby_EventScript_AskSaveBattle
|
||||
msgbox BattleFrontier_BattleTowerLobby_Text_LookForwardToAnotherChallenge, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
callnative UpdateFollowingPokemon
|
||||
release
|
||||
end
|
||||
@@ -217,7 +217,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterSinglesChallenge::
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeSinglesChallenge::
|
||||
frontier_set FRONTIER_DATA_SELECTED_MON_ORDER
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
tower_init
|
||||
tower_set TOWER_DATA_WIN_STREAK_ACTIVE, TRUE
|
||||
frontier_set FRONTIER_DATA_PAUSED, FALSE
|
||||
@@ -225,7 +225,7 @@ BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeSinglesChallenge::
|
||||
closemessage
|
||||
delay 2
|
||||
call Common_EventScript_SaveGame
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_CancelChallengeSaveFailed
|
||||
incrementgamestat GAME_STAT_ENTERED_BATTLE_TOWER
|
||||
setvar VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, TRUE
|
||||
@@ -281,7 +281,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterDoublesChallenge::
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeDoublesChallenge::
|
||||
frontier_set FRONTIER_DATA_SELECTED_MON_ORDER
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
tower_init
|
||||
tower_set TOWER_DATA_WIN_STREAK_ACTIVE, TRUE
|
||||
frontier_set FRONTIER_DATA_PAUSED, FALSE
|
||||
@@ -289,7 +289,7 @@ BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeDoublesChallenge::
|
||||
closemessage
|
||||
delay 2
|
||||
call Common_EventScript_SaveGame
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_CancelChallengeSaveFailed
|
||||
incrementgamestat GAME_STAT_ENTERED_BATTLE_TOWER
|
||||
setvar VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, FALSE
|
||||
@@ -346,7 +346,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterMultisChallenge::
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeMultisChallenge::
|
||||
frontier_set FRONTIER_DATA_SELECTED_MON_ORDER
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
tower_init
|
||||
tower_set TOWER_DATA_WIN_STREAK_ACTIVE, TRUE
|
||||
frontier_set FRONTIER_DATA_PAUSED, FALSE
|
||||
@@ -354,7 +354,7 @@ BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeMultisChallenge::
|
||||
closemessage
|
||||
delay 2
|
||||
call Common_EventScript_SaveGame
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_CancelChallengeSaveFailed
|
||||
incrementgamestat GAME_STAT_ENTERED_BATTLE_TOWER
|
||||
setvar VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, FALSE
|
||||
@@ -410,7 +410,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterLinkMultisChallenge::
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeLinkMultisChallenge::
|
||||
frontier_set FRONTIER_DATA_SELECTED_MON_ORDER
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
tower_init
|
||||
tower_set TOWER_DATA_WIN_STREAK_ACTIVE, TRUE
|
||||
frontier_set FRONTIER_DATA_PAUSED, FALSE
|
||||
@@ -421,13 +421,18 @@ BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeLinkMultisChallenge::
|
||||
@ to the flash, but not data in PokemonStorage. The SaveGame script that follows asks the player to do a full save,
|
||||
@ which they can opt out of. As a result the player can save their party and quit without having saved the PC.
|
||||
@ This allows players to clone pokemon and their held items by withdrawing them (or erase them by despositing).
|
||||
.ifndef BUGFIX
|
||||
#ifndef BUGFIX
|
||||
tower_save 0
|
||||
.endif
|
||||
#endif
|
||||
call Common_EventScript_SaveGame
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_CancelChallengeSaveFailed
|
||||
@ GAME_STAT_ENTERED_BATTLE_TOWER should not be incremented here, for two reasons:
|
||||
@ 1. It is incremented again in BattleFrontier_BattleTowerLobby_EventScript_CableLinkSuccessful or BattleFrontier_BattleTowerLobby_EventScript_WirelessLinkSuccessful
|
||||
@ 2. If the player tries to connect, but fails, the counter will still be incremented even if the player never enters the tower.
|
||||
#ifndef BUGFIX
|
||||
incrementgamestat GAME_STAT_ENTERED_BATTLE_TOWER
|
||||
#endif
|
||||
specialvar VAR_RESULT, IsWirelessAdapterConnected
|
||||
goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleTowerLobby_EventScript_TryWirelessLink
|
||||
goto BattleFrontier_BattleTowerLobby_EventScript_TryCableLink
|
||||
@@ -604,7 +609,7 @@ BattleFrontier_BattleTowerLobby_EventScript_WaitForLinkOpponentLoad::
|
||||
call BattleFrontier_BattleTowerLobby_EventScript_ShowYouToBattleRoom
|
||||
clearflag FLAG_CANCEL_BATTLE_ROOM_CHALLENGE
|
||||
warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR, 1, 6
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
waitstate
|
||||
end
|
||||
|
||||
|
||||
@@ -20,12 +20,12 @@ BattleFrontier_Lounge7_EventScript_ChooseLeftTutorMove::
|
||||
message BattleFrontier_Lounge7_Text_TeachWhichMove
|
||||
waitmessage
|
||||
special ShowBattlePointsWindow
|
||||
setvar VAR_TEMP_E, 0
|
||||
setvar VAR_TEMP_FRONTIER_TUTOR_ID, 0
|
||||
setvar VAR_0x8004, SCROLL_MULTI_BF_MOVE_TUTOR_1
|
||||
setvar VAR_0x8006, 0
|
||||
special ShowScrollableMultichoice
|
||||
waitstate
|
||||
copyvar VAR_TEMP_D, VAR_RESULT
|
||||
copyvar VAR_TEMP_FRONTIER_TUTOR_SELECTION, VAR_RESULT
|
||||
switch VAR_RESULT
|
||||
case 0, BattleFrontier_Lounge7_EventScript_Softboiled
|
||||
case 1, BattleFrontier_Lounge7_EventScript_SeismicToss
|
||||
@@ -44,12 +44,12 @@ BattleFrontier_Lounge7_EventScript_ChooseLeftTutorMove::
|
||||
BattleFrontier_Lounge7_EventScript_ChooseNewLeftTutorMove::
|
||||
message BattleFrontier_Lounge7_Text_TeachWhichMove
|
||||
waitmessage
|
||||
setvar VAR_TEMP_E, 0
|
||||
setvar VAR_TEMP_FRONTIER_TUTOR_ID, 0
|
||||
setvar VAR_0x8004, SCROLL_MULTI_BF_MOVE_TUTOR_1
|
||||
setvar VAR_0x8006, 1
|
||||
special ShowScrollableMultichoice
|
||||
waitstate
|
||||
copyvar VAR_TEMP_D, VAR_RESULT
|
||||
copyvar VAR_TEMP_FRONTIER_TUTOR_SELECTION, VAR_RESULT
|
||||
switch VAR_RESULT
|
||||
case 0, BattleFrontier_Lounge7_EventScript_Softboiled
|
||||
case 1, BattleFrontier_Lounge7_EventScript_SeismicToss
|
||||
@@ -144,12 +144,12 @@ BattleFrontier_Lounge7_EventScript_ChooseRightTutorMove::
|
||||
message BattleFrontier_Lounge7_Text_TeachWhichMove
|
||||
waitmessage
|
||||
special ShowBattlePointsWindow
|
||||
setvar VAR_TEMP_E, 1
|
||||
setvar VAR_TEMP_FRONTIER_TUTOR_ID, 1
|
||||
setvar VAR_0x8004, SCROLL_MULTI_BF_MOVE_TUTOR_2
|
||||
setvar VAR_0x8006, 0
|
||||
special ShowScrollableMultichoice
|
||||
waitstate
|
||||
copyvar VAR_TEMP_D, VAR_RESULT
|
||||
copyvar VAR_TEMP_FRONTIER_TUTOR_SELECTION, VAR_RESULT
|
||||
switch VAR_RESULT
|
||||
case 0, BattleFrontier_Lounge7_EventScript_DefenseCurl
|
||||
case 1, BattleFrontier_Lounge7_EventScript_Snore
|
||||
@@ -168,12 +168,12 @@ BattleFrontier_Lounge7_EventScript_ChooseRightTutorMove::
|
||||
BattleFrontier_Lounge7_EventScript_ChooseNewRightTutorMove::
|
||||
message BattleFrontier_Lounge7_Text_TeachWhichMove
|
||||
waitmessage
|
||||
setvar VAR_TEMP_E, 1
|
||||
setvar VAR_TEMP_FRONTIER_TUTOR_ID, 1
|
||||
setvar VAR_0x8004, SCROLL_MULTI_BF_MOVE_TUTOR_2
|
||||
setvar VAR_0x8006, 1
|
||||
special ShowScrollableMultichoice
|
||||
waitstate
|
||||
copyvar VAR_TEMP_D, VAR_RESULT
|
||||
copyvar VAR_TEMP_FRONTIER_TUTOR_SELECTION, VAR_RESULT
|
||||
switch VAR_RESULT
|
||||
case 0, BattleFrontier_Lounge7_EventScript_DefenseCurl
|
||||
case 1, BattleFrontier_Lounge7_EventScript_Snore
|
||||
@@ -263,8 +263,8 @@ BattleFrontier_Lounge7_EventScript_CancelChooseMon::
|
||||
|
||||
@ VAR_0x8008 is the price
|
||||
@ VAR_TEMP_C is the scroll multichoice ID
|
||||
@ VAR_TEMP_D is the move selection
|
||||
@ VAR_TEMP_E is which move tutor was spoken to
|
||||
@ VAR_TEMP_FRONTIER_TUTOR_SELECTION is the move selection
|
||||
@ VAR_TEMP_FRONTIER_TUTOR_ID is which move tutor was spoken to
|
||||
BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection::
|
||||
special BufferBattleFrontierTutorMoveName
|
||||
buffernumberstring STR_VAR_2, VAR_0x8008
|
||||
@@ -291,7 +291,7 @@ BattleFrontier_Lounge7_EventScript_TeachTutorMove::
|
||||
end
|
||||
|
||||
BattleFrontier_Lounge7_EventScript_ChooseNewMove::
|
||||
goto_if_eq VAR_TEMP_E, 0, BattleFrontier_Lounge7_EventScript_ChooseNewLeftTutorMove
|
||||
goto_if_eq VAR_TEMP_FRONTIER_TUTOR_ID, 0, BattleFrontier_Lounge7_EventScript_ChooseNewLeftTutorMove
|
||||
goto BattleFrontier_Lounge7_EventScript_ChooseNewRightTutorMove
|
||||
end
|
||||
|
||||
|
||||
@@ -81,11 +81,11 @@ BirthIsland_Exterior_EventScript_Deoxys::
|
||||
applymovement LOCALID_DEOXYS, BirthIsland_Exterior_Movement_DeoxysApproach
|
||||
waitmovement 0
|
||||
waitse
|
||||
playmoncry SPECIES_DEOXYS, CRY_MODE_ENCOUNTER
|
||||
playmoncry SPECIES_DEOXYS_NORMAL, CRY_MODE_ENCOUNTER
|
||||
delay 40
|
||||
waitmoncry
|
||||
setvar VAR_LAST_TALKED, LOCALID_DEOXYS
|
||||
seteventmon SPECIES_DEOXYS, 30
|
||||
seteventmon SPECIES_DEOXYS_NORMAL, 30
|
||||
setflag FLAG_SYS_CTRL_OBJ_DELETE
|
||||
special BattleSetup_StartLegendaryBattle
|
||||
waitstate
|
||||
@@ -100,12 +100,12 @@ BirthIsland_Exterior_EventScript_Deoxys::
|
||||
|
||||
BirthIsland_Exterior_EventScript_DefeatedDeoxys::
|
||||
setflag FLAG_DEFEATED_DEOXYS
|
||||
setvar VAR_0x8004, SPECIES_DEOXYS
|
||||
setvar VAR_0x8004, SPECIES_DEOXYS_NORMAL
|
||||
goto Common_EventScript_LegendaryFlewAway
|
||||
end
|
||||
|
||||
BirthIsland_Exterior_EventScript_RanFromDeoxys::
|
||||
setvar VAR_0x8004, SPECIES_DEOXYS
|
||||
setvar VAR_0x8004, SPECIES_DEOXYS_NORMAL
|
||||
goto Common_EventScript_LegendaryFlewAway
|
||||
end
|
||||
|
||||
|
||||
@@ -136,7 +136,7 @@ DewfordTown_Gym_EventScript_Brawly::
|
||||
trainerbattle_single TRAINER_BRAWLY_1, DewfordTown_Gym_Text_BrawlyIntro, DewfordTown_Gym_Text_BrawlyDefeat, DewfordTown_Gym_EventScript_BrawlyDefeated, NO_MUSIC
|
||||
specialvar VAR_RESULT, ShouldTryRematchBattle
|
||||
goto_if_eq VAR_RESULT, TRUE, DewfordTown_Gym_EventScript_BrawlyRematch
|
||||
goto_if_unset FLAG_RECEIVED_TM08, DewfordTown_Gym_EventScript_GiveBulkUp2
|
||||
goto_if_unset FLAG_RECEIVED_TM_BULK_UP, DewfordTown_Gym_EventScript_GiveBulkUp2
|
||||
msgbox DewfordTown_Gym_Text_BrawlyPostBattle, MSGBOX_DEFAULT
|
||||
release
|
||||
end
|
||||
@@ -168,17 +168,17 @@ DewfordTown_Gym_EventScript_BrawlyDefeated::
|
||||
end
|
||||
|
||||
DewfordTown_Gym_EventScript_GiveBulkUp::
|
||||
giveitem ITEM_TM08
|
||||
giveitem ITEM_TM_BULK_UP
|
||||
goto_if_eq VAR_RESULT, 0, Common_EventScript_BagIsFull
|
||||
msgbox DewfordTown_Gym_Text_ExplainBulkUp, MSGBOX_DEFAULT
|
||||
setflag FLAG_RECEIVED_TM08
|
||||
setflag FLAG_RECEIVED_TM_BULK_UP
|
||||
return
|
||||
|
||||
DewfordTown_Gym_EventScript_GiveBulkUp2:
|
||||
giveitem ITEM_TM08
|
||||
giveitem ITEM_TM_BULK_UP
|
||||
goto_if_eq VAR_RESULT, 0, Common_EventScript_ShowBagIsFull
|
||||
msgbox DewfordTown_Gym_Text_ExplainBulkUp, MSGBOX_DEFAULT
|
||||
setflag FLAG_RECEIVED_TM08
|
||||
setflag FLAG_RECEIVED_TM_BULK_UP
|
||||
release
|
||||
end
|
||||
|
||||
|
||||
@@ -246,11 +246,11 @@ DewfordTown_Hall_EventScript_SludgeBombMan::
|
||||
lock
|
||||
faceplayer
|
||||
call Common_EventScript_BufferTrendyPhrase
|
||||
goto_if_set FLAG_RECEIVED_TM36, DewfordTown_Hall_EventScript_ReceivedSludgeBomb
|
||||
goto_if_set FLAG_RECEIVED_TM_SLUDGE_BOMB, DewfordTown_Hall_EventScript_ReceivedSludgeBomb
|
||||
msgbox DewfordTown_Hall_Text_GiveYouSludgeBomb, MSGBOX_DEFAULT
|
||||
giveitem ITEM_TM36
|
||||
giveitem ITEM_TM_SLUDGE_BOMB
|
||||
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull
|
||||
setflag FLAG_RECEIVED_TM36
|
||||
setflag FLAG_RECEIVED_TM_SLUDGE_BOMB
|
||||
release
|
||||
end
|
||||
|
||||
|
||||
@@ -15,11 +15,11 @@ FallarborTown_BattleTentLobby_EventScript_TurnPlayerNorth::
|
||||
end
|
||||
|
||||
FallarborTown_BattleTentLobby_OnFrame:
|
||||
map_script_2 VAR_TEMP_0, 0, FallarborTown_BattleTentLobby_EventScript_GetChallengeStatus
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, FallarborTown_BattleTentLobby_EventScript_QuitWithoutSaving
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, FallarborTown_BattleTentLobby_EventScript_ResumeChallenge
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, FallarborTown_BattleTentLobby_EventScript_WonChallenge
|
||||
map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, FallarborTown_BattleTentLobby_EventScript_LostChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, 0, FallarborTown_BattleTentLobby_EventScript_GetChallengeStatus
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING, FallarborTown_BattleTentLobby_EventScript_QuitWithoutSaving
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_PAUSED, FallarborTown_BattleTentLobby_EventScript_ResumeChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_WON, FallarborTown_BattleTentLobby_EventScript_WonChallenge
|
||||
map_script_2 VAR_TEMP_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST, FallarborTown_BattleTentLobby_EventScript_LostChallenge
|
||||
.2byte 0
|
||||
|
||||
FallarborTown_BattleTentLobby_EventScript_GetChallengeStatus::
|
||||
@@ -31,7 +31,7 @@ FallarborTown_BattleTentLobby_EventScript_QuitWithoutSaving::
|
||||
msgbox FallarborTown_BattleTentLobby_Text_DidntSaveBeforeQuitting, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50
|
||||
releaseall
|
||||
end
|
||||
@@ -59,7 +59,7 @@ FallarborTown_BattleTentLobby_EventScript_GivePrize::
|
||||
waitfanfare
|
||||
msgbox FallarborTown_BattleTentLobby_Text_AwaitAnotherChallenge2, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -67,7 +67,7 @@ FallarborTown_BattleTentLobby_EventScript_NoRoomForPrize::
|
||||
msgbox FallarborTown_BattleTentLobby_Text_BagFullReturnForPrize, MSGBOX_DEFAULT
|
||||
waitmessage
|
||||
closemessage
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -87,7 +87,7 @@ FallarborTown_BattleTentLobby_EventScript_LostChallenge::
|
||||
waitse
|
||||
msgbox FallarborTown_BattleTentLobby_Text_AwaitAnotherChallenge2, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
releaseall
|
||||
end
|
||||
|
||||
@@ -99,7 +99,7 @@ FallarborTown_BattleTentLobby_EventScript_ResumeChallenge::
|
||||
playse SE_SAVE
|
||||
waitse
|
||||
frontier_set FRONTIER_DATA_PAUSED, FALSE
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
goto FallarborTown_BattleTentLobby_EventScript_EnterChallenge
|
||||
|
||||
FallarborTown_BattleTentLobby_EventScript_Attendant::
|
||||
@@ -140,7 +140,7 @@ FallarborTown_BattleTentLobby_EventScript_TryEnterChallenge::
|
||||
case MULTI_B_PRESSED, FallarborTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge
|
||||
|
||||
FallarborTown_BattleTentLobby_EventScript_SaveBeforeChallenge::
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
frontier_set FRONTIER_DATA_SELECTED_MON_ORDER
|
||||
fallarbortent_init
|
||||
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING
|
||||
@@ -149,7 +149,7 @@ FallarborTown_BattleTentLobby_EventScript_SaveBeforeChallenge::
|
||||
closemessage
|
||||
delay 2
|
||||
call Common_EventScript_SaveGame
|
||||
setvar VAR_TEMP_0, 255
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 255
|
||||
goto_if_eq VAR_RESULT, 0, FallarborTown_BattleTentLobby_EventScript_CancelChallengeSaveFailed
|
||||
FallarborTown_BattleTentLobby_EventScript_EnterChallenge::
|
||||
special SavePlayerParty
|
||||
@@ -158,7 +158,7 @@ FallarborTown_BattleTentLobby_EventScript_EnterChallenge::
|
||||
closemessage
|
||||
call FallarborTown_BattleTentLobby_EventScript_WalkToDoor
|
||||
warp MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR, 2, 7
|
||||
setvar VAR_TEMP_0, 0
|
||||
setvar VAR_TEMP_CHALLENGE_STATUS, 0
|
||||
waitstate
|
||||
end
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ FallarborTown_CozmosHouse_MapScripts::
|
||||
FallarborTown_CozmosHouse_EventScript_ProfCozmo::
|
||||
lock
|
||||
faceplayer
|
||||
goto_if_set FLAG_RECEIVED_TM27, FallarborTown_CozmosHouse_EventScript_GaveMeteorite
|
||||
goto_if_set FLAG_RECEIVED_TM_RETURN, FallarborTown_CozmosHouse_EventScript_GaveMeteorite
|
||||
checkitem ITEM_METEORITE
|
||||
goto_if_eq VAR_RESULT, TRUE, FallarborTown_CozmosHouse_EventScript_PlayerHasMeteorite
|
||||
msgbox FallarborTown_CozmosHouse_Text_MeteoriteWillNeverBeMineNow, MSGBOX_DEFAULT
|
||||
@@ -16,11 +16,11 @@ FallarborTown_CozmosHouse_EventScript_PlayerHasMeteorite::
|
||||
call_if_set FLAG_TEMP_2, FallarborTown_CozmosHouse_EventScript_AskForMeteorite
|
||||
goto_if_eq VAR_RESULT, NO, FallarborTown_CozmosHouse_EventScript_DeclineGiveMeteorite
|
||||
msgbox FallarborTown_CozmosHouse_Text_PleaseUseThisTM, MSGBOX_DEFAULT
|
||||
giveitem ITEM_TM27
|
||||
giveitem ITEM_TM_RETURN
|
||||
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull
|
||||
setvar VAR_0x8004, ITEM_METEORITE
|
||||
call Common_EventScript_PlayerHandedOverTheItem
|
||||
setflag FLAG_RECEIVED_TM27
|
||||
setflag FLAG_RECEIVED_TM_RETURN
|
||||
msgbox FallarborTown_CozmosHouse_Text_ReallyGoingToHelpMyResearch, MSGBOX_DEFAULT
|
||||
release
|
||||
end
|
||||
@@ -48,7 +48,7 @@ FallarborTown_CozmosHouse_EventScript_GaveMeteorite::
|
||||
FallarborTown_CozmosHouse_EventScript_CozmosWife::
|
||||
lock
|
||||
faceplayer
|
||||
goto_if_set FLAG_RECEIVED_TM27, FallarborTown_CozmosHouse_EventScript_CozmoIsHappy
|
||||
goto_if_set FLAG_RECEIVED_TM_RETURN, FallarborTown_CozmosHouse_EventScript_CozmoIsHappy
|
||||
goto_if_set FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, FallarborTown_CozmosHouse_EventScript_CozmoIsSad
|
||||
msgbox FallarborTown_CozmosHouse_Text_CozmoWentToMeteorFalls, MSGBOX_DEFAULT
|
||||
release
|
||||
|
||||
@@ -23,9 +23,9 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "FieryPath_EventScript_ItemTM06",
|
||||
"flag": "FLAG_ITEM_FIERY_PATH_TM06"
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_TM_TOXIC",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_FIERY_PATH_TM_TOXIC"
|
||||
},
|
||||
{
|
||||
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
|
||||
@@ -114,8 +114,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "FieryPath_EventScript_ItemFireStone",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_FIRE_STONE",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_FIERY_PATH_FIRE_STONE"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -12,6 +12,7 @@ FortreeCity_Gym_OnWarp:
|
||||
map_script_2 VAR_TEMP_0, VAR_TEMP_0, FortreeCity_Gym_EventScript_InitRotatingGates
|
||||
.2byte 0
|
||||
|
||||
@ NOTE: This rotating gate puzzle makes use of VAR_TEMP_0 - VAR_TEMP_3
|
||||
FortreeCity_Gym_EventScript_InitRotatingGates::
|
||||
special RotatingGate_InitPuzzleAndGraphics
|
||||
end
|
||||
@@ -20,7 +21,7 @@ FortreeCity_Gym_EventScript_Winona::
|
||||
trainerbattle_single TRAINER_WINONA_1, FortreeCity_Gym_Text_WinonaIntro, FortreeCity_Gym_Text_WinonaDefeat, FortreeCity_Gym_EventScript_WinonaDefeated, NO_MUSIC
|
||||
specialvar VAR_RESULT, ShouldTryRematchBattle
|
||||
goto_if_eq VAR_RESULT, TRUE, FortreeCity_Gym_EventScript_WinonaRematch
|
||||
goto_if_unset FLAG_RECEIVED_TM40, FortreeCity_Gym_EventScript_GiveAerialAce2
|
||||
goto_if_unset FLAG_RECEIVED_TM_AERIAL_ACE, FortreeCity_Gym_EventScript_GiveAerialAce2
|
||||
msgbox FortreeCity_Gym_Text_WinonaPostBattle, MSGBOX_DEFAULT
|
||||
release
|
||||
end
|
||||
@@ -49,18 +50,18 @@ FortreeCity_Gym_EventScript_WinonaDefeated::
|
||||
end
|
||||
|
||||
FortreeCity_Gym_EventScript_GiveAerialAce2::
|
||||
giveitem ITEM_TM40
|
||||
giveitem ITEM_TM_AERIAL_ACE
|
||||
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull
|
||||
msgbox FortreeCity_Gym_Text_ExplainAerialAce, MSGBOX_DEFAULT
|
||||
setflag FLAG_RECEIVED_TM40
|
||||
setflag FLAG_RECEIVED_TM_AERIAL_ACE
|
||||
release
|
||||
end
|
||||
|
||||
FortreeCity_Gym_EventScript_GiveAerialAce::
|
||||
giveitem ITEM_TM40
|
||||
giveitem ITEM_TM_AERIAL_ACE
|
||||
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_BagIsFull
|
||||
msgbox FortreeCity_Gym_Text_ExplainAerialAce, MSGBOX_DEFAULT
|
||||
setflag FLAG_RECEIVED_TM40
|
||||
setflag FLAG_RECEIVED_TM_AERIAL_ACE
|
||||
return
|
||||
|
||||
FortreeCity_Gym_EventScript_WinonaRematch::
|
||||
|
||||
@@ -4,7 +4,7 @@ FortreeCity_House2_MapScripts::
|
||||
FortreeCity_House2_EventScript_HiddenPowerGiver::
|
||||
lock
|
||||
faceplayer
|
||||
goto_if_set FLAG_RECEIVED_TM10, FortreeCity_House2_EventScript_ExplainHiddenPower
|
||||
goto_if_set FLAG_RECEIVED_TM_HIDDEN_POWER, FortreeCity_House2_EventScript_ExplainHiddenPower
|
||||
call_if_unset FLAG_MET_HIDDEN_POWER_GIVER, FortreeCity_House2_EventScript_Greeting
|
||||
msgbox FortreeCity_House2_Text_CoinInWhichHand, MSGBOX_DEFAULT
|
||||
multichoice 21, 8, MULTI_RIGHTLEFT, TRUE
|
||||
@@ -19,9 +19,9 @@ FortreeCity_House2_EventScript_HiddenPowerGiver::
|
||||
switch VAR_RESULT
|
||||
case 0, FortreeCity_House2_EventScript_WrongGuess
|
||||
msgbox FortreeCity_House2_Text_YourHiddenPowerHasAwoken, MSGBOX_DEFAULT
|
||||
giveitem ITEM_TM10
|
||||
giveitem ITEM_TM_HIDDEN_POWER
|
||||
goto_if_eq VAR_RESULT, 0, Common_EventScript_ShowBagIsFull
|
||||
setflag FLAG_RECEIVED_TM10
|
||||
setflag FLAG_RECEIVED_TM_HIDDEN_POWER
|
||||
msgbox FortreeCity_House2_Text_ExplainHiddenPower, MSGBOX_DEFAULT
|
||||
release
|
||||
end
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "GraniteCave_1F_EventScript_ItemEscapeRope",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_ESCAPE_ROPE",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_GRANITE_CAVE_1F_ESCAPE_ROPE"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -4,10 +4,10 @@ GraniteCave_1F_MapScripts::
|
||||
GraniteCave_1F_EventScript_Hiker::
|
||||
lock
|
||||
faceplayer
|
||||
goto_if_set FLAG_RECEIVED_HM05, GraniteCave_1F_EventScript_ReceivedFlash
|
||||
goto_if_set FLAG_RECEIVED_HM_FLASH, GraniteCave_1F_EventScript_ReceivedFlash
|
||||
msgbox GraniteCave_1F_Text_GetsDarkAheadHereYouGo, MSGBOX_DEFAULT
|
||||
giveitem ITEM_HM05
|
||||
setflag FLAG_RECEIVED_HM05
|
||||
giveitem ITEM_HM_FLASH
|
||||
setflag FLAG_RECEIVED_HM_FLASH
|
||||
msgbox GraniteCave_1F_Text_ExplainFlash, MSGBOX_DEFAULT
|
||||
release
|
||||
end
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "GraniteCave_B1F_EventScript_ItemPokeBall",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_POKE_BALL",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_GRANITE_CAVE_B1F_POKE_BALL"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "GraniteCave_B2F_EventScript_ItemRepel",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_REPEL",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_GRANITE_CAVE_B2F_REPEL"
|
||||
},
|
||||
{
|
||||
@@ -36,8 +36,8 @@
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "GraniteCave_B2F_EventScript_ItemRareCandy",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_RARE_CANDY",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_GRANITE_CAVE_B2F_RARE_CANDY"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -11,7 +11,7 @@ GraniteCave_StevensRoom_EventScript_Steven::
|
||||
call Common_EventScript_PlayerHandedOverTheItem
|
||||
setflag FLAG_DELIVERED_STEVEN_LETTER
|
||||
msgbox GraniteCave_StevensRoom_Text_ThankYouTakeThis, MSGBOX_DEFAULT
|
||||
giveitem ITEM_TM47
|
||||
giveitem ITEM_TM_STEEL_WING
|
||||
call_if_eq VAR_RESULT, FALSE, GraniteCave_StevensRoom_EventScript_BagFull
|
||||
msgbox GraniteCave_StevensRoom_Text_CouldBecomeChampionLetsRegister, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
|
||||
@@ -51,10 +51,10 @@ IslandCave_EventScript_OpenRegiEntrance::
|
||||
|
||||
IslandCave_EventScript_CaveEntranceMiddle::
|
||||
lockall
|
||||
call_if_set FLAG_TEMP_3, IslandCave_EventScript_ClearSteps
|
||||
call_if_set FLAG_TEMP_REGICE_PUZZLE_FAILED, IslandCave_EventScript_ClearSteps
|
||||
goto_if_set FLAG_SYS_BRAILLE_REGICE_COMPLETED, IslandCave_EventScript_BigHoleInWall
|
||||
braillemessage IslandCave_Braille_RunLapAroundWall
|
||||
setflag FLAG_TEMP_2
|
||||
setflag FLAG_TEMP_REGICE_PUZZLE_STARTED
|
||||
special ShouldDoBrailleRegicePuzzle
|
||||
goto IslandCave_EventScript_CloseBrailleMsg
|
||||
end
|
||||
@@ -66,10 +66,10 @@ IslandCave_EventScript_BigHoleInWall::
|
||||
|
||||
IslandCave_EventScript_CaveEntranceSide::
|
||||
lockall
|
||||
call_if_set FLAG_TEMP_3, IslandCave_EventScript_ClearSteps
|
||||
call_if_set FLAG_TEMP_REGICE_PUZZLE_FAILED, IslandCave_EventScript_ClearSteps
|
||||
braillemessage IslandCave_Braille_RunLapAroundWall
|
||||
goto_if_set FLAG_SYS_BRAILLE_REGICE_COMPLETED, IslandCave_EventScript_CloseBrailleMsg
|
||||
setflag FLAG_TEMP_2
|
||||
setflag FLAG_TEMP_REGICE_PUZZLE_STARTED
|
||||
special ShouldDoBrailleRegicePuzzle
|
||||
goto IslandCave_EventScript_CloseBrailleMsg
|
||||
end
|
||||
@@ -84,7 +84,7 @@ IslandCave_EventScript_ClearSteps::
|
||||
setvar VAR_REGICE_STEPS_1, 0
|
||||
setvar VAR_REGICE_STEPS_2, 0
|
||||
setvar VAR_REGICE_STEPS_3, 0
|
||||
clearflag FLAG_TEMP_3
|
||||
clearflag FLAG_TEMP_REGICE_PUZZLE_FAILED
|
||||
return
|
||||
|
||||
IslandCave_EventScript_Regice::
|
||||
|
||||
@@ -49,8 +49,8 @@
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "JaggedPass_EventScript_ItemBurnHeal",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_BURN_HEAL",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_JAGGED_PASS_BURN_HEAL"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -52,7 +52,7 @@ LavaridgeTown_Gym_1F_EventScript_Flannery::
|
||||
trainerbattle_single TRAINER_FLANNERY_1, LavaridgeTown_Gym_1F_Text_FlanneryIntro, LavaridgeTown_Gym_1F_Text_FlanneryDefeat, LavaridgeTown_Gym_1F_EventScript_FlanneryDefeated, NO_MUSIC
|
||||
specialvar VAR_RESULT, ShouldTryRematchBattle
|
||||
goto_if_eq VAR_RESULT, TRUE, LavaridgeTown_Gym_1F_EventScript_FlanneryRematch
|
||||
goto_if_unset FLAG_RECEIVED_TM50, LavaridgeTown_Gym_1F_EventScript_GiveOverheat2
|
||||
goto_if_unset FLAG_RECEIVED_TM_OVERHEAT, LavaridgeTown_Gym_1F_EventScript_GiveOverheat2
|
||||
msgbox LavaridgeTown_Gym_1F_Text_FlanneryPostBattle, MSGBOX_DEFAULT
|
||||
release
|
||||
end
|
||||
@@ -84,18 +84,18 @@ LavaridgeTown_Gym_1F_EventScript_FlanneryDefeated::
|
||||
end
|
||||
|
||||
LavaridgeTown_Gym_1F_EventScript_GiveOverheat2::
|
||||
giveitem ITEM_TM50
|
||||
giveitem ITEM_TM_OVERHEAT
|
||||
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull
|
||||
msgbox LavaridgeTown_Gym_1F_Text_ExplainOverheat, MSGBOX_DEFAULT
|
||||
setflag FLAG_RECEIVED_TM50
|
||||
setflag FLAG_RECEIVED_TM_OVERHEAT
|
||||
release
|
||||
end
|
||||
|
||||
LavaridgeTown_Gym_1F_EventScript_GiveOverheat::
|
||||
giveitem ITEM_TM50
|
||||
giveitem ITEM_TM_OVERHEAT
|
||||
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_BagIsFull
|
||||
msgbox LavaridgeTown_Gym_1F_Text_ExplainOverheat, MSGBOX_DEFAULT
|
||||
setflag FLAG_RECEIVED_TM50
|
||||
setflag FLAG_RECEIVED_TM_OVERHEAT
|
||||
return
|
||||
|
||||
LavaridgeTown_Gym_1F_EventScript_FlanneryRematch::
|
||||
|
||||
@@ -164,8 +164,8 @@
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "LilycoveCity_EventScript_ItemMaxRepel",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_MAX_REPEL",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_LILYCOVE_CITY_MAX_REPEL"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -25,10 +25,10 @@ LilycoveCity_DepartmentStore_4F_EventScript_ClerkLeft::
|
||||
|
||||
.align 2
|
||||
LilycoveCity_DepartmentStore_4F_Pokemart_AttackTMs:
|
||||
.2byte ITEM_TM38 @ Fire Blast
|
||||
.2byte ITEM_TM25 @ Thunder
|
||||
.2byte ITEM_TM14 @ Blizzard
|
||||
.2byte ITEM_TM15 @ Hyper Beam
|
||||
.2byte ITEM_TM_FIRE_BLAST
|
||||
.2byte ITEM_TM_THUNDER
|
||||
.2byte ITEM_TM_BLIZZARD
|
||||
.2byte ITEM_TM_HYPER_BEAM
|
||||
.2byte ITEM_NONE
|
||||
release
|
||||
end
|
||||
@@ -45,10 +45,10 @@ LilycoveCity_DepartmentStore_4F_EventScript_ClerkRight::
|
||||
|
||||
.align 2
|
||||
LilycoveCity_DepartmentStore_4F_Pokemart_DefenseTMs:
|
||||
.2byte ITEM_TM17 @ Protect
|
||||
.2byte ITEM_TM20 @ Safeguard
|
||||
.2byte ITEM_TM33 @ Reflect
|
||||
.2byte ITEM_TM16 @ Light Screen
|
||||
.2byte ITEM_TM_PROTECT
|
||||
.2byte ITEM_TM_SAFEGUARD
|
||||
.2byte ITEM_TM_REFLECT
|
||||
.2byte ITEM_TM_LIGHT_SCREEN
|
||||
.2byte ITEM_NONE
|
||||
release
|
||||
end
|
||||
|
||||
@@ -4,11 +4,11 @@ LilycoveCity_House2_MapScripts::
|
||||
LilycoveCity_House2_EventScript_FatMan::
|
||||
lock
|
||||
faceplayer
|
||||
goto_if_set FLAG_RECEIVED_TM44, LilycoveCity_House2_EventScript_ReceivedRest
|
||||
goto_if_set FLAG_RECEIVED_TM_REST, LilycoveCity_House2_EventScript_ReceivedRest
|
||||
msgbox LilycoveCity_House2_Text_NotAwakeYetHaveThis, MSGBOX_DEFAULT
|
||||
giveitem ITEM_TM44
|
||||
giveitem ITEM_TM_REST
|
||||
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull
|
||||
setflag FLAG_RECEIVED_TM44
|
||||
setflag FLAG_RECEIVED_TM_REST
|
||||
msgbox LilycoveCity_House2_Text_SleepIsEssential, MSGBOX_DEFAULT
|
||||
release
|
||||
end
|
||||
|
||||
@@ -339,7 +339,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_TakeYourTime::
|
||||
|
||||
LittlerootTown_ProfessorBirchsLab_EventScript_GiveCyndaquil::
|
||||
bufferspeciesname STR_VAR_1, SPECIES_CYNDAQUIL
|
||||
setvar VAR_TEMP_1, SPECIES_CYNDAQUIL
|
||||
setvar VAR_TEMP_TRANSFERRED_SPECIES, SPECIES_CYNDAQUIL
|
||||
givemon SPECIES_CYNDAQUIL, 5
|
||||
goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, LittlerootTown_ProfessorBirchsLab_EventScript_SendCyndaquilToParty
|
||||
goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, LittlerootTown_ProfessorBirchsLab_EventScript_SendCyndaquilToPC
|
||||
@@ -380,7 +380,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedCyndaquil::
|
||||
|
||||
LittlerootTown_ProfessorBirchsLab_EventScript_GiveTotodile::
|
||||
bufferspeciesname STR_VAR_1, SPECIES_TOTODILE
|
||||
setvar VAR_TEMP_1, SPECIES_TOTODILE
|
||||
setvar VAR_TEMP_TRANSFERRED_SPECIES, SPECIES_TOTODILE
|
||||
givemon SPECIES_TOTODILE, 5
|
||||
goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, LittlerootTown_ProfessorBirchsLab_EventScript_SendTotodileToParty
|
||||
goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, LittlerootTown_ProfessorBirchsLab_EventScript_SendTotodileToPC
|
||||
@@ -421,7 +421,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedTotodile::
|
||||
|
||||
LittlerootTown_ProfessorBirchsLab_EventScript_GiveChikorita::
|
||||
bufferspeciesname STR_VAR_1, SPECIES_CHIKORITA
|
||||
setvar VAR_TEMP_1, SPECIES_CHIKORITA
|
||||
setvar VAR_TEMP_TRANSFERRED_SPECIES, SPECIES_CHIKORITA
|
||||
givemon SPECIES_CHIKORITA, 5
|
||||
goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, LittlerootTown_ProfessorBirchsLab_EventScript_SendChikoritaToParty
|
||||
goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, LittlerootTown_ProfessorBirchsLab_EventScript_SendChikoritaToPC
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MagmaHideout_1F_EventScript_ItemRareCandy",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_RARE_CANDY",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_MAGMA_HIDEOUT_1F_RARE_CANDY"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -49,8 +49,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MagmaHideout_2F_2R_EventScript_ItemMaxElixir",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_MAX_ELIXIR",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_MAGMA_HIDEOUT_2F_2R_MAX_ELIXIR"
|
||||
},
|
||||
{
|
||||
@@ -88,8 +88,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MagmaHideout_2F_2R_EventScript_ItemFullRestore",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_FULL_RESTORE",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_MAGMA_HIDEOUT_2F_2R_FULL_RESTORE"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -49,8 +49,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MagmaHideout_3F_1R_EventScript_ItemNugget",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_NUGGET",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_MAGMA_HIDEOUT_3F_1R_NUGGET"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MagmaHideout_3F_2R_EventScript_ItemPPMax",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_PP_MAX",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_MAGMA_HIDEOUT_3F_2R_PP_MAX"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MagmaHideout_3F_3R_EventScript_ItemEscapeRope",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_ESCAPE_ROPE",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_MAGMA_HIDEOUT_3F_3R_ECAPE_ROPE"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -114,8 +114,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MagmaHideout_4F_EventScript_ItemMaxRevive",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_MAX_REVIVE",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_MAGMA_HIDEOUT_4F_MAX_REVIVE"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -148,8 +148,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MauvilleCity_EventScript_ItemXSpeed",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_X_SPEED",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_MAUVILLE_CITY_X_SPEED"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -13,7 +13,7 @@ MauvilleCity_OnTransition:
|
||||
setflag FLAG_SYS_TV_START
|
||||
clearflag FLAG_MAUVILLE_GYM_BARRIERS_STATE
|
||||
setvar VAR_MAUVILLE_GYM_STATE, 0
|
||||
call_if_set FLAG_GOT_TM24_FROM_WATTSON, MauvilleCity_EventScript_MoveWattsonBackToGym
|
||||
call_if_set FLAG_GOT_TM_THUNDERBOLT_FROM_WATTSON, MauvilleCity_EventScript_MoveWattsonBackToGym
|
||||
end
|
||||
|
||||
MauvilleCity_EventScript_MoveWattsonBackToGym::
|
||||
@@ -418,7 +418,7 @@ MauvilleCity_Movement_ScottExitEast:
|
||||
MauvilleCity_EventScript_Wattson::
|
||||
lock
|
||||
faceplayer
|
||||
goto_if_set FLAG_GOT_TM24_FROM_WATTSON, MauvilleCity_EventScript_ReceivedThunderbolt
|
||||
goto_if_set FLAG_GOT_TM_THUNDERBOLT_FROM_WATTSON, MauvilleCity_EventScript_ReceivedThunderbolt
|
||||
goto_if_eq VAR_NEW_MAUVILLE_STATE, 2, MauvilleCity_EventScript_CompletedNewMauville
|
||||
goto_if_set FLAG_GOT_BASEMENT_KEY_FROM_WATTSON, MauvilleCity_EventScript_BegunNewMauville
|
||||
msgbox MauvilleCity_Text_WattsonNeedFavorTakeKey, MSGBOX_DEFAULT
|
||||
@@ -435,9 +435,9 @@ MauvilleCity_EventScript_BegunNewMauville::
|
||||
|
||||
MauvilleCity_EventScript_CompletedNewMauville::
|
||||
msgbox MauvilleCity_Text_WattsonThanksTakeTM, MSGBOX_DEFAULT
|
||||
giveitem ITEM_TM24
|
||||
giveitem ITEM_TM_THUNDERBOLT
|
||||
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull
|
||||
setflag FLAG_GOT_TM24_FROM_WATTSON
|
||||
setflag FLAG_GOT_TM_THUNDERBOLT_FROM_WATTSON
|
||||
msgbox MauvilleCity_Text_WattsonYoungTakeCharge, MSGBOX_DEFAULT
|
||||
release
|
||||
end
|
||||
|
||||
@@ -2,12 +2,12 @@ MauvilleCity_GameCorner_MapScripts::
|
||||
.byte 0
|
||||
|
||||
@ Game Corner prices
|
||||
.set TM32_COINS, 1500
|
||||
.set TM29_COINS, 3500
|
||||
.set TM35_COINS, 4000
|
||||
.set TM24_COINS, 4000
|
||||
.set TM13_COINS, 4000
|
||||
.set DOLL_COINS, 1000
|
||||
.set TM_DOUBLE_TEAM_COINS, 1500
|
||||
.set TM_PSYCHIC_COINS, 3500
|
||||
.set TM_FLAMETHROWER_COINS, 4000
|
||||
.set TM_THUNDERBOLT_COINS, 4000
|
||||
.set TM_ICE_BEAM_COINS, 4000
|
||||
.set DOLL_COINS, 1000
|
||||
|
||||
.set COINS_PRICE_50, 1000
|
||||
.set COINS_PRICE_500, 10000
|
||||
@@ -236,43 +236,43 @@ MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize::
|
||||
MauvilleCity_GameCorner_EventScript_ChooseTMPrize::
|
||||
multichoice 12, 0, MULTI_GAME_CORNER_TMS, FALSE
|
||||
switch VAR_RESULT
|
||||
case 0, MauvilleCity_GameCorner_EventScript_TM32
|
||||
case 1, MauvilleCity_GameCorner_EventScript_TM29
|
||||
case 2, MauvilleCity_GameCorner_EventScript_TM35
|
||||
case 3, MauvilleCity_GameCorner_EventScript_TM24
|
||||
case 4, MauvilleCity_GameCorner_EventScript_TM13
|
||||
case 0, MauvilleCity_GameCorner_EventScript_TMDoubleTeam
|
||||
case 1, MauvilleCity_GameCorner_EventScript_TMPsychic
|
||||
case 2, MauvilleCity_GameCorner_EventScript_TMFlamethrower
|
||||
case 3, MauvilleCity_GameCorner_EventScript_TMThunderbolt
|
||||
case 4, MauvilleCity_GameCorner_EventScript_TMIceBeam
|
||||
case 5, MauvilleCity_GameCorner_EventScript_CancelTMSelect
|
||||
goto MauvilleCity_GameCorner_EventScript_CancelTMSelect
|
||||
end
|
||||
|
||||
MauvilleCity_GameCorner_EventScript_TM32::
|
||||
MauvilleCity_GameCorner_EventScript_TMDoubleTeam::
|
||||
setvar VAR_TEMP_1, 1
|
||||
bufferitemname STR_VAR_1, ITEM_TM32
|
||||
setvar VAR_0x8004, ITEM_TM32
|
||||
bufferitemname STR_VAR_1, ITEM_TM_DOUBLE_TEAM
|
||||
setvar VAR_0x8004, ITEM_TM_DOUBLE_TEAM
|
||||
goto MauvilleCity_GameCorner_EventScript_ConfirmTMPrize
|
||||
|
||||
MauvilleCity_GameCorner_EventScript_TM29::
|
||||
MauvilleCity_GameCorner_EventScript_TMPsychic::
|
||||
setvar VAR_TEMP_1, 2
|
||||
bufferitemname STR_VAR_1, ITEM_TM29
|
||||
setvar VAR_0x8004, ITEM_TM29
|
||||
bufferitemname STR_VAR_1, ITEM_TM_PSYCHIC
|
||||
setvar VAR_0x8004, ITEM_TM_PSYCHIC
|
||||
goto MauvilleCity_GameCorner_EventScript_ConfirmTMPrize
|
||||
|
||||
MauvilleCity_GameCorner_EventScript_TM35::
|
||||
MauvilleCity_GameCorner_EventScript_TMFlamethrower::
|
||||
setvar VAR_TEMP_1, 3
|
||||
bufferitemname STR_VAR_1, ITEM_TM35
|
||||
setvar VAR_0x8004, ITEM_TM35
|
||||
bufferitemname STR_VAR_1, ITEM_TM_FLAMETHROWER
|
||||
setvar VAR_0x8004, ITEM_TM_FLAMETHROWER
|
||||
goto MauvilleCity_GameCorner_EventScript_ConfirmTMPrize
|
||||
|
||||
MauvilleCity_GameCorner_EventScript_TM24::
|
||||
MauvilleCity_GameCorner_EventScript_TMThunderbolt::
|
||||
setvar VAR_TEMP_1, 4
|
||||
bufferitemname STR_VAR_1, ITEM_TM24
|
||||
setvar VAR_0x8004, ITEM_TM24
|
||||
bufferitemname STR_VAR_1, ITEM_TM_THUNDERBOLT
|
||||
setvar VAR_0x8004, ITEM_TM_THUNDERBOLT
|
||||
goto MauvilleCity_GameCorner_EventScript_ConfirmTMPrize
|
||||
|
||||
MauvilleCity_GameCorner_EventScript_TM13::
|
||||
MauvilleCity_GameCorner_EventScript_TMIceBeam::
|
||||
setvar VAR_TEMP_1, 5
|
||||
bufferitemname STR_VAR_1, ITEM_TM13
|
||||
setvar VAR_0x8004, ITEM_TM13
|
||||
bufferitemname STR_VAR_1, ITEM_TM_ICE_BEAM
|
||||
setvar VAR_0x8004, ITEM_TM_ICE_BEAM
|
||||
goto MauvilleCity_GameCorner_EventScript_ConfirmTMPrize
|
||||
|
||||
MauvilleCity_GameCorner_EventScript_ConfirmTMPrize::
|
||||
@@ -280,72 +280,72 @@ MauvilleCity_GameCorner_EventScript_ConfirmTMPrize::
|
||||
msgbox MauvilleCity_GameCorner_Text_SoYourChoiceIsTheTMX, MSGBOX_YESNO
|
||||
goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_EventScript_CancelTMSelect
|
||||
switch VAR_TEMP_1
|
||||
case 1, MauvilleCity_GameCorner_EventScript_BuyTM32
|
||||
case 2, MauvilleCity_GameCorner_EventScript_BuyTM29
|
||||
case 3, MauvilleCity_GameCorner_EventScript_BuyTM35
|
||||
case 4, MauvilleCity_GameCorner_EventScript_BuyTM24
|
||||
case 5, MauvilleCity_GameCorner_EventScript_BuyTM13
|
||||
case 1, MauvilleCity_GameCorner_EventScript_BuyTMDoubleTeam
|
||||
case 2, MauvilleCity_GameCorner_EventScript_BuyTMPsychic
|
||||
case 3, MauvilleCity_GameCorner_EventScript_BuyTMFlamethrower
|
||||
case 4, MauvilleCity_GameCorner_EventScript_BuyTMThunderbolt
|
||||
case 5, MauvilleCity_GameCorner_EventScript_BuyTMIceBeam
|
||||
end
|
||||
|
||||
MauvilleCity_GameCorner_EventScript_BuyTM32::
|
||||
MauvilleCity_GameCorner_EventScript_BuyTMDoubleTeam::
|
||||
checkcoins VAR_TEMP_2
|
||||
goto_if_lt VAR_TEMP_2, TM32_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM
|
||||
checkitemspace ITEM_TM32
|
||||
goto_if_lt VAR_TEMP_2, TM_DOUBLE_TEAM_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM
|
||||
checkitemspace ITEM_TM_DOUBLE_TEAM
|
||||
goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForTM
|
||||
removecoins TM32_COINS
|
||||
additem ITEM_TM32
|
||||
removecoins TM_DOUBLE_TEAM_COINS
|
||||
additem ITEM_TM_DOUBLE_TEAM
|
||||
updatecoinsbox 1, 1
|
||||
playse SE_SHOP
|
||||
msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT
|
||||
goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize
|
||||
end
|
||||
|
||||
MauvilleCity_GameCorner_EventScript_BuyTM29::
|
||||
MauvilleCity_GameCorner_EventScript_BuyTMPsychic::
|
||||
checkcoins VAR_TEMP_2
|
||||
goto_if_lt VAR_TEMP_2, TM29_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM
|
||||
checkitemspace ITEM_TM29
|
||||
goto_if_lt VAR_TEMP_2, TM_PSYCHIC_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM
|
||||
checkitemspace ITEM_TM_PSYCHIC
|
||||
goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForTM
|
||||
removecoins TM29_COINS
|
||||
additem ITEM_TM29
|
||||
removecoins TM_PSYCHIC_COINS
|
||||
additem ITEM_TM_PSYCHIC
|
||||
updatecoinsbox 1, 1
|
||||
playse SE_SHOP
|
||||
msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT
|
||||
goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize
|
||||
end
|
||||
|
||||
MauvilleCity_GameCorner_EventScript_BuyTM35::
|
||||
MauvilleCity_GameCorner_EventScript_BuyTMFlamethrower::
|
||||
checkcoins VAR_TEMP_2
|
||||
goto_if_lt VAR_TEMP_2, TM35_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM
|
||||
checkitemspace ITEM_TM35
|
||||
goto_if_lt VAR_TEMP_2, TM_FLAMETHROWER_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM
|
||||
checkitemspace ITEM_TM_FLAMETHROWER
|
||||
goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForTM
|
||||
removecoins TM35_COINS
|
||||
additem ITEM_TM35
|
||||
removecoins TM_FLAMETHROWER_COINS
|
||||
additem ITEM_TM_FLAMETHROWER
|
||||
updatecoinsbox 1, 1
|
||||
playse SE_SHOP
|
||||
msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT
|
||||
goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize
|
||||
end
|
||||
|
||||
MauvilleCity_GameCorner_EventScript_BuyTM24::
|
||||
MauvilleCity_GameCorner_EventScript_BuyTMThunderbolt::
|
||||
checkcoins VAR_TEMP_2
|
||||
goto_if_lt VAR_TEMP_2, TM24_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM
|
||||
checkitemspace ITEM_TM24
|
||||
goto_if_lt VAR_TEMP_2, TM_THUNDERBOLT_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM
|
||||
checkitemspace ITEM_TM_THUNDERBOLT
|
||||
goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForTM
|
||||
removecoins TM24_COINS
|
||||
additem ITEM_TM24
|
||||
removecoins TM_THUNDERBOLT_COINS
|
||||
additem ITEM_TM_THUNDERBOLT
|
||||
updatecoinsbox 1, 1
|
||||
playse SE_SHOP
|
||||
msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT
|
||||
goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize
|
||||
end
|
||||
|
||||
MauvilleCity_GameCorner_EventScript_BuyTM13::
|
||||
MauvilleCity_GameCorner_EventScript_BuyTMIceBeam::
|
||||
checkcoins VAR_TEMP_2
|
||||
goto_if_lt VAR_TEMP_2, TM13_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM
|
||||
checkitemspace ITEM_TM13
|
||||
goto_if_lt VAR_TEMP_2, TM_ICE_BEAM_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM
|
||||
checkitemspace ITEM_TM_ICE_BEAM
|
||||
goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForTM
|
||||
removecoins TM13_COINS
|
||||
additem ITEM_TM13
|
||||
removecoins TM_ICE_BEAM_COINS
|
||||
additem ITEM_TM_ICE_BEAM
|
||||
updatecoinsbox 1, 1
|
||||
playse SE_SHOP
|
||||
msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT
|
||||
|
||||
@@ -77,7 +77,7 @@ MauvilleCity_Gym_EventScript_Wattson::
|
||||
trainerbattle_single TRAINER_WATTSON_1, MauvilleCity_Gym_Text_WattsonIntro, MauvilleCity_Gym_Text_WattsonDefeat, MauvilleCity_Gym_EventScript_WattsonDefeated, NO_MUSIC
|
||||
specialvar VAR_RESULT, ShouldTryRematchBattle
|
||||
goto_if_eq VAR_RESULT, TRUE, MauvilleCity_Gym_EventScript_WattsonRematch
|
||||
goto_if_unset FLAG_RECEIVED_TM34, MauvilleCity_Gym_EventScript_GiveShockWave2
|
||||
goto_if_unset FLAG_RECEIVED_TM_SHOCK_WAVE, MauvilleCity_Gym_EventScript_GiveShockWave2
|
||||
goto_if_eq VAR_NEW_MAUVILLE_STATE, 2, MauvilleCity_Gym_EventScript_CompletedNewMauville
|
||||
msgbox MauvilleCity_Gym_Text_WattsonPostBattle, MSGBOX_DEFAULT
|
||||
release
|
||||
@@ -112,18 +112,18 @@ MauvilleCity_Gym_EventScript_WattsonDefeated::
|
||||
end
|
||||
|
||||
MauvilleCity_Gym_EventScript_GiveShockWave2::
|
||||
giveitem ITEM_TM34
|
||||
giveitem ITEM_TM_SHOCK_WAVE
|
||||
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull
|
||||
msgbox MauvilleCity_Gym_Text_ExplainShockWave, MSGBOX_DEFAULT
|
||||
setflag FLAG_RECEIVED_TM34
|
||||
setflag FLAG_RECEIVED_TM_SHOCK_WAVE
|
||||
release
|
||||
end
|
||||
|
||||
MauvilleCity_Gym_EventScript_GiveShockWave::
|
||||
giveitem ITEM_TM34
|
||||
giveitem ITEM_TM_SHOCK_WAVE
|
||||
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_BagIsFull
|
||||
msgbox MauvilleCity_Gym_Text_ExplainShockWave, MSGBOX_DEFAULT
|
||||
setflag FLAG_RECEIVED_TM34
|
||||
setflag FLAG_RECEIVED_TM_SHOCK_WAVE
|
||||
return
|
||||
|
||||
MauvilleCity_Gym_EventScript_CompletedNewMauville::
|
||||
|
||||
@@ -4,10 +4,10 @@ MauvilleCity_House1_MapScripts::
|
||||
MauvilleCity_House1_EventScript_RockSmashDude::
|
||||
lock
|
||||
faceplayer
|
||||
goto_if_set FLAG_RECEIVED_HM06, MauvilleCity_House1_EventScript_ReceivedRockSmash
|
||||
goto_if_set FLAG_RECEIVED_HM_ROCK_SMASH, MauvilleCity_House1_EventScript_ReceivedRockSmash
|
||||
msgbox MauvilleCity_House1_Text_ImRockSmashDudeTakeThis, MSGBOX_DEFAULT
|
||||
giveitem ITEM_HM06
|
||||
setflag FLAG_RECEIVED_HM06
|
||||
giveitem ITEM_HM_ROCK_SMASH
|
||||
setflag FLAG_RECEIVED_HM_ROCK_SMASH
|
||||
setflag FLAG_HIDE_ROUTE_111_ROCK_SMASH_TIP_GUY
|
||||
msgbox MauvilleCity_House1_Text_ExplainRockSmash, MSGBOX_DEFAULT
|
||||
release
|
||||
|
||||
@@ -23,9 +23,9 @@
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MeteorFalls_1F_1R_EventScript_ItemTM23",
|
||||
"flag": "FLAG_ITEM_METEOR_FALLS_1F_1R_TM23"
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_TM_IRON_TAIL",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_METEOR_FALLS_1F_1R_TM_IRON_TAIL"
|
||||
},
|
||||
{
|
||||
"graphics_id": "OBJ_EVENT_GFX_ITEM_BALL",
|
||||
@@ -36,8 +36,8 @@
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MeteorFalls_1F_1R_EventScript_ItemMoonStone",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_MOON_STONE",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_METEOR_FALLS_1F_1R_MOON_STONE"
|
||||
},
|
||||
{
|
||||
@@ -49,8 +49,8 @@
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MeteorFalls_1F_1R_EventScript_ItemFullHeal",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_FULL_HEAL",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_METEOR_FALLS_1F_1R_FULL_HEAL"
|
||||
},
|
||||
{
|
||||
@@ -62,8 +62,8 @@
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MeteorFalls_1F_1R_EventScript_ItemPPUP",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_PP_UP",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_METEOR_FALLS_1F_1R_PP_UP"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -23,9 +23,9 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MeteorFalls_B1F_2R_EventScript_ItemTM02",
|
||||
"flag": "FLAG_ITEM_METEOR_FALLS_B1F_2R_TM02"
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_TM_DRAGON_CLAW",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_METEOR_FALLS_B1F_2R_TM_DRAGON_CLAW"
|
||||
}
|
||||
],
|
||||
"warp_events": [
|
||||
|
||||
@@ -104,8 +104,8 @@
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MossdeepCity_EventScript_ItemNetBall",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_NET_BALL",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_MOSSDEEP_CITY_NET_BALL"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -20,7 +20,7 @@ MossdeepCity_OnTransition:
|
||||
MossdeepCity_EventScript_PokefanF::
|
||||
lock
|
||||
faceplayer
|
||||
goto_if_set FLAG_RECEIVED_HM08, MossdeepCity_EventScript_PokefanFMagmaGone
|
||||
goto_if_set FLAG_RECEIVED_HM_DIVE, MossdeepCity_EventScript_PokefanFMagmaGone
|
||||
msgbox MossdeepCity_Text_SpaceCenterReceivedLetter, MSGBOX_DEFAULT
|
||||
release
|
||||
end
|
||||
@@ -33,7 +33,7 @@ MossdeepCity_EventScript_PokefanFMagmaGone::
|
||||
MossdeepCity_EventScript_Sailor::
|
||||
lock
|
||||
faceplayer
|
||||
goto_if_set FLAG_RECEIVED_HM08, MossdeepCity_EventScript_SailorMagmaGone
|
||||
goto_if_set FLAG_RECEIVED_HM_DIVE, MossdeepCity_EventScript_SailorMagmaGone
|
||||
msgbox MossdeepCity_Text_MossdeepTargetedByMagma, MSGBOX_DEFAULT
|
||||
release
|
||||
end
|
||||
|
||||
@@ -57,7 +57,7 @@ MossdeepCity_Gym_EventScript_TateAndLiza::
|
||||
trainerbattle_double TRAINER_TATE_AND_LIZA_1, MossdeepCity_Gym_Text_TateAndLizaIntro, MossdeepCity_Gym_Text_TateAndLizaDefeat, MossdeepCity_Gym_Text_TateAndLizaNeedTwoMons, MossdeepCity_Gym_EventScript_TateAndLizaDefeated, NO_MUSIC
|
||||
specialvar VAR_RESULT, ShouldTryRematchBattle
|
||||
goto_if_eq VAR_RESULT, TRUE, MossdeepCity_Gym_EventScript_TateAndLizaRematch
|
||||
goto_if_unset FLAG_RECEIVED_TM04, MossdeepCity_Gym_EventScript_GiveCalmMind2
|
||||
goto_if_unset FLAG_RECEIVED_TM_CALM_MIND, MossdeepCity_Gym_EventScript_GiveCalmMind2
|
||||
msgbox MossdeepCity_Gym_Text_TateAndLizaPostBattle, MSGBOX_DEFAULT
|
||||
release
|
||||
end
|
||||
@@ -95,18 +95,18 @@ MossdeepCity_Gym_EventScript_TateAndLizaDefeated::
|
||||
end
|
||||
|
||||
MossdeepCity_Gym_EventScript_GiveCalmMind2::
|
||||
giveitem ITEM_TM04
|
||||
giveitem ITEM_TM_CALM_MIND
|
||||
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull
|
||||
msgbox MossdeepCity_Gym_Text_ExplainCalmMind, MSGBOX_DEFAULT
|
||||
setflag FLAG_RECEIVED_TM04
|
||||
setflag FLAG_RECEIVED_TM_CALM_MIND
|
||||
release
|
||||
end
|
||||
|
||||
MossdeepCity_Gym_EventScript_GiveCalmMind::
|
||||
giveitem ITEM_TM04
|
||||
giveitem ITEM_TM_CALM_MIND
|
||||
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_BagIsFull
|
||||
msgbox MossdeepCity_Gym_Text_ExplainCalmMind, MSGBOX_DEFAULT
|
||||
setflag FLAG_RECEIVED_TM04
|
||||
setflag FLAG_RECEIVED_TM_CALM_MIND
|
||||
return
|
||||
|
||||
MossdeepCity_Gym_EventScript_TateAndLizaRematch::
|
||||
|
||||
@@ -229,11 +229,11 @@ MossdeepCity_SpaceCenter_1F_EventScript_Grunt2::
|
||||
copyobjectxytoperm LOCALID_STAIR_GRUNT
|
||||
switch VAR_FACING
|
||||
case DIR_WEST, MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsWest
|
||||
#ifdef BUGFIX
|
||||
#ifdef BUGFIX
|
||||
case DIR_EAST, MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsEast
|
||||
#else
|
||||
#else
|
||||
case DIR_WEST, MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsEast
|
||||
#endif
|
||||
#endif
|
||||
applymovement LOCALID_STAIR_GRUNT, MossdeepCity_SpaceCenter_1F_Movement_MoveGruntFromStairs
|
||||
waitmovement 0
|
||||
setvar VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE, 2
|
||||
|
||||
@@ -257,14 +257,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_ChoosePartyForMultiBattle::
|
||||
goto MossdeepCity_SpaceCenter_2F_EventScript_ReadyForBattlePrompt
|
||||
|
||||
MossdeepCity_SpaceCenter_2F_EventScript_DoStevenMultiBattle::
|
||||
special ReducePlayerPartyToSelectedMons
|
||||
frontier_set FRONTIER_DATA_SELECTED_MON_ORDER
|
||||
setvar VAR_0x8004, SPECIAL_BATTLE_STEVEN
|
||||
setvar VAR_0x8005, 0
|
||||
special DoSpecialTrainerBattle
|
||||
waitstate
|
||||
frontier_saveparty
|
||||
special LoadPlayerParty
|
||||
multi_2_vs_2 TRAINER_MAXIE_MOSSDEEP, MossdeepCity_SpaceCenter_2F_Text_JustWantToExpandLand, TRAINER_TABITHA_MOSSDEEP, MossdeepCity_SpaceCenter_Text_TabithaDefeat, PARTNER_STEVEN, TRAINER_BACK_PIC_STEVEN
|
||||
switch VAR_RESULT
|
||||
case 1, MossdeepCity_SpaceCenter_2F_EventScript_DefeatedMaxieTabitha
|
||||
fadescreen FADE_TO_BLACK
|
||||
@@ -336,14 +329,6 @@ MossdeepCity_SpaceCenter_2F_EventScript_StevenFacePlayerWest::
|
||||
turnobject LOCALID_STEVEN, DIR_EAST
|
||||
return
|
||||
|
||||
MossdeepCity_SpaceCenter_2F_EventScript_MaxieTrainer::
|
||||
trainerbattle TRAINER_BATTLE_SET_TRAINER_A, TRAINER_MAXIE_MOSSDEEP, 0, MossdeepCity_SpaceCenter_2F_Text_JustWantToExpandLand, MossdeepCity_SpaceCenter_2F_Text_JustWantToExpandLand
|
||||
end
|
||||
|
||||
MossdeepCity_SpaceCenter_2F_EventScript_TabithaTrainer::
|
||||
trainerbattle TRAINER_BATTLE_SET_TRAINER_B, TRAINER_TABITHA_MOSSDEEP, 0, MossdeepCity_SpaceCenter_Text_TabithaDefeat, MossdeepCity_SpaceCenter_Text_TabithaDefeat
|
||||
end
|
||||
|
||||
MossdeepCity_SpaceCenter_2F_EventScript_RivalRayquazaCall::
|
||||
lockall
|
||||
checkplayergender
|
||||
|
||||
@@ -40,8 +40,8 @@ MossdeepCity_StevensHouse_EventScript_StevenGivesDive::
|
||||
applymovement LOCALID_STEVEN, MossdeepCity_StevensHouse_Movement_StevenApproachPlayer
|
||||
waitmovement 0
|
||||
msgbox MossdeepCity_StevensHouse_Text_YouveEarnedHMDive, MSGBOX_DEFAULT
|
||||
giveitem ITEM_HM08
|
||||
setflag FLAG_RECEIVED_HM08
|
||||
giveitem ITEM_HM_DIVE
|
||||
setflag FLAG_RECEIVED_HM_DIVE
|
||||
setflag FLAG_OMIT_DIVE_FROM_STEVEN_LETTER
|
||||
msgbox MossdeepCity_StevensHouse_Text_ExplainDive, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
@@ -85,7 +85,7 @@ MossdeepCity_StevensHouse_EventScript_LeaveBeldum::
|
||||
end
|
||||
|
||||
MossdeepCity_StevensHouse_EventScript_GiveBeldum::
|
||||
setvar VAR_TEMP_1, SPECIES_BELDUM
|
||||
setvar VAR_TEMP_TRANSFERRED_SPECIES, SPECIES_BELDUM
|
||||
givemon SPECIES_BELDUM, 5
|
||||
goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, MossdeepCity_StevensHouse_EventScript_SendBeldumParty
|
||||
goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, MossdeepCity_StevensHouse_EventScript_SendBeldumPC
|
||||
@@ -146,8 +146,8 @@ MossdeepCity_StevensHouse_EventScript_Letter::
|
||||
|
||||
@ Unused, leftover from RS
|
||||
MossdeepCity_StevensHouse_EventScript_DiveItemBall::
|
||||
finditem ITEM_HM08
|
||||
setflag FLAG_RECEIVED_HM08
|
||||
finditem ITEM_HM_DIVE
|
||||
setflag FLAG_RECEIVED_HM_DIVE
|
||||
end
|
||||
|
||||
MossdeepCity_StevensHouse_Text_YouveEarnedHMDive:
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MtPyre_2F_EventScript_ItemUltraBall",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_ULTRA_BALL",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_MT_PYRE_2F_ULTRA_BALL"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -49,8 +49,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MtPyre_3F_EventScript_ItemSuperRepel",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_SUPER_REPEL",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_MT_PYRE_3F_SUPER_REPEL"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MtPyre_4F_EventScript_ItemSeaIncense",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_SEA_INCENSE",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_MT_PYRE_4F_SEA_INCENSE"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MtPyre_5F_EventScript_ItemLaxIncense",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_LAX_INCENSE",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_MT_PYRE_5F_LAX_INCENSE"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -36,9 +36,9 @@
|
||||
"movement_range_x": 1,
|
||||
"movement_range_y": 1,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MtPyre_6F_EventScript_ItemTM30",
|
||||
"flag": "FLAG_ITEM_MT_PYRE_6F_TM30"
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_TM_SHADOW_BALL",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_MT_PYRE_6F_TM_SHADOW_BALL"
|
||||
},
|
||||
{
|
||||
"graphics_id": "OBJ_EVENT_GFX_PSYCHIC_M",
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MtPyre_Exterior_EventScript_ItemMaxPotion",
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_MAX_POTION",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_MT_PYRE_EXTERIOR_MAX_POTION"
|
||||
},
|
||||
{
|
||||
@@ -36,9 +36,9 @@
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "MtPyre_Exterior_EventScript_ItemTM48",
|
||||
"flag": "FLAG_ITEM_MT_PYRE_EXTERIOR_TM48"
|
||||
"trainer_sight_or_berry_tree_id": "ITEM_TM_SKILL_SWAP",
|
||||
"script": "Common_EventScript_FindItem",
|
||||
"flag": "FLAG_ITEM_MT_PYRE_EXTERIOR_TM_SKILL_SWAP"
|
||||
}
|
||||
],
|
||||
"warp_events": [
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user