Merge branch 'master' of https://github.com/pret/pokeemerald into entry_json

This commit is contained in:
GriffinR
2022-09-25 18:10:04 -04:00
729 changed files with 13631 additions and 20163 deletions
+1
View File
@@ -31,6 +31,7 @@ build/
*.ddump *.ddump
.idea/ .idea/
porymap.project.cfg porymap.project.cfg
prefabs.json
.vscode/ .vscode/
*.a *.a
.fuse_hidden* .fuse_hidden*
+67 -23
View File
@@ -44,15 +44,15 @@ WSL1 is the preferred terminal to build **pokeemerald**. The following instructi
3. The next step is to choose and install a Linux distribution from the Microsoft Store. The following instructions will assume Ubuntu as the Linux distribution of choice. 3. The next step is to choose and install a Linux distribution from the Microsoft Store. The following instructions will assume Ubuntu as the Linux distribution of choice.
<details> <details>
<summary><i>Note for advanced users...</i></summary> <summary><i>Note for advanced users...</i></summary>
> You can pick a preferred Linux distribution, but setup instructions may differ. Debian should work with the given instructions, but has not been tested. > You can pick a preferred Linux distribution, but setup instructions may differ. Debian should work with the given instructions, but has not been tested.
</details> </details>
4. Open the [Microsoft Store Linux Selection](https://aka.ms/wslstore), click Ubuntu, then click Get, which will install the Ubuntu distribution. 4. Open the [Microsoft Store Linux Selection](https://aka.ms/wslstore), click Ubuntu, then click Get, which will install the Ubuntu distribution.
<details> <details>
<summary><i>Notes...</i></summary> <summary><i>Notes...</i></summary>
> Note 1: If a dialog pops up asking for you to sign into a Microsoft Account, then just close the dialog. > Note 1: If a dialog pops up asking for you to sign into a Microsoft Account, then just close the dialog.
> Note 2: If the link does not work, then open the Microsoft Store manually, and search for the Ubuntu app (choose the one with no version number). > Note 2: If the link does not work, then open the Microsoft Store manually, and search for the Ubuntu app (choose the one with no version number).
</details> </details>
@@ -102,11 +102,11 @@ cd /mnt/c/Users/<user>/Desktop/decomps
<details> <details>
<summary><i>Notes...</i></summary> <summary><i>Notes...</i></summary>
> Note 1: The Windows C:\ drive is called /mnt/c/ in WSL. > Note 1: The Windows C:\ drive is called /mnt/c/ in WSL.
> Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users/<user>/Desktop/decomp folder"`. > Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users/<user>/Desktop/decomp folder"`.
> Note 3: Windows path names are case-insensitive so adhering to capitalization isn't needed > Note 3: Windows path names are case-insensitive so adhering to capitalization isn't needed
</details> </details>
If this works, then proceed to [Installation](#installation). If this works, then proceed to [Installation](#installation).
Otherwise, ask for help on Discord or IRC (see [README.md](README.md)), or continue reading below for [Windows instructions using msys2](#windows-msys2). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)), or continue reading below for [Windows instructions using msys2](#windows-msys2).
@@ -213,10 +213,10 @@ Note that the directory **must exist** in Windows. If you want to store pokeemer
<details> <details>
<summary><i>Notes...</i></summary> <summary><i>Notes...</i></summary>
> Note 1: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "c:/users/<user>/Desktop/decomp folder"`. > Note 1: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "c:/users/<user>/Desktop/decomp folder"`.
> Note 2: Windows path names are case-insensitive so adhering to capitalization isn't needed > Note 2: Windows path names are case-insensitive so adhering to capitalization isn't needed
</details> </details>
If this works, then proceed to [Installation](#installation). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)). If this works, then proceed to [Installation](#installation). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)).
## macOS ## macOS
@@ -283,8 +283,8 @@ Note that the directory **must exist** in the folder system. If you want to stor
<details> <details>
<summary><i>Note..</i>.</summary> <summary><i>Note..</i>.</summary>
> Note: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "Desktop/decomp folder"` > Note: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "Desktop/decomp folder"`
</details> </details>
If this works, then proceed to [Installation](#installation). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)). If this works, then proceed to [Installation](#installation). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)).
@@ -306,6 +306,20 @@ Then proceed to [Choosing where to store pokeemerald (Linux)](#choosing-where-to
> [install devkitARM on Debian/Ubuntu-based distributions](#installing-devkitarm-on-debianubuntu-based-distributions). > [install devkitARM on Debian/Ubuntu-based distributions](#installing-devkitarm-on-debianubuntu-based-distributions).
</details> </details>
### Arch Linux
Run this command as root to install the necessary packages:
```bash
pacman -S base-devel arm-none-eabi-binutils 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>
### Other distributions ### Other distributions
_(Specific instructions for other distributions would be greatly appreciated!)_ _(Specific instructions for other distributions would be greatly appreciated!)_
@@ -404,21 +418,16 @@ If you aren't in the pokeemerald directory already, then **change directory** to
```bash ```bash
cd pokeemerald cd pokeemerald
``` ```
To build **pokeemerald.gba** for the first time and confirm it matches the official ROM image (Note: to speed up builds, see [Parallel builds](#parallel-builds)): To build **pokeemerald.gba** (Note: to speed up builds, see [Parallel builds](#parallel-builds)):
```bash ```bash
make compare make
``` ```
If an OK is returned, then the installation went smoothly. If it has built successfully you will have the output file **pokeemerald.gba** in your project folder.
<details> <details>
<summary>Note for Windows...</summary> <summary>Note for Windows...</summary>
> If you switched terminals since the last build (e.g. from msys2 to WSL1), you must run `make clean-tools` once before any subsequent `make` commands. > If you switched terminals since the last build (e.g. from msys2 to WSL1), you must run `make clean-tools` once before any subsequent `make` commands.
</details> </details>
To build **pokeemerald.gba** with your changes:
```bash
make
```
# Building guidance # Building guidance
## Parallel builds ## Parallel builds
@@ -437,11 +446,20 @@ Replace `<output of nproc>` with the number that the `nproc` command returned.
`nproc` is not available on macOS. The alternative is `sysctl -n hw.ncpu` ([relevant Stack Overflow thread](https://stackoverflow.com/questions/1715580)). `nproc` is not available on macOS. The alternative is `sysctl -n hw.ncpu` ([relevant Stack Overflow thread](https://stackoverflow.com/questions/1715580)).
## Debug info ## Compare ROM to the original
To build **pokeemerald.elf** with enhanced debug info: For contributing, or if you'd simply like to verify that your ROM is identical to the original game, run:
```bash ```bash
make DINFO=1 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 ## devkitARM's C compiler
@@ -520,7 +538,25 @@ devkitARM is now installed.
devkitARM is now installed. devkitARM is now installed.
## Other toolchains ### 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`. To build using a toolchain other than devkitARM, override the `TOOLCHAIN` environment variable with the path to your toolchain, which must contain the subdirectory `bin`.
```bash ```bash
@@ -532,6 +568,14 @@ make TOOLCHAIN="/usr/local/arm-none-eabi"
``` ```
To compile the `modern` target with this toolchain, the subdirectories `lib`, `include`, and `arm-none-eabi` must also be present. To compile the `modern` target with this toolchain, the subdirectories `lib`, `include`, and `arm-none-eabi` must also be present.
### Building with debug info under a modern toolchain
To build **pokeemerald.elf** with debug symbols under a modern toolchain:
```bash
make modern DINFO=1
```
Note that this is not necessary for a non-modern build since those are built with debug symbols by default.
# Useful additional tools # Useful additional tools
* [porymap](https://github.com/huderlem/porymap) for viewing and editing maps * [porymap](https://github.com/huderlem/porymap) for viewing and editing maps
+3 -3
View File
@@ -107,7 +107,7 @@ LIBPATH := -L ../../tools/agbcc/lib
LIB := $(LIBPATH) -lgcc -lc -L../../libagbsyscall -lagbsyscall LIB := $(LIBPATH) -lgcc -lc -L../../libagbsyscall -lagbsyscall
else else
CC1 = $(shell $(PATH_MODERNCC) --print-prog-name=cc1) -quiet CC1 = $(shell $(PATH_MODERNCC) --print-prog-name=cc1) -quiet
override CFLAGS += -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast -g override CFLAGS += -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast
ROM := $(MODERN_ROM_NAME) ROM := $(MODERN_ROM_NAME)
OBJ_DIR := $(MODERN_OBJ_DIR_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))" 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))"
@@ -254,7 +254,7 @@ tidynonmodern:
tidymodern: tidymodern:
rm -f $(MODERN_ROM_NAME) $(MODERN_ELF_NAME) $(MODERN_MAP_NAME) rm -f $(MODERN_ROM_NAME) $(MODERN_ELF_NAME) $(MODERN_MAP_NAME)
rm -rf $(MODERN_OBJ_DIR_NAME) rm -rf $(MODERN_OBJ_DIR_NAME)
ifneq ($(MODERN),0) ifneq ($(MODERN),0)
$(C_BUILDDIR)/berry_crush.o: override CFLAGS += -Wno-address-of-packed-member $(C_BUILDDIR)/berry_crush.o: override CFLAGS += -Wno-address-of-packed-member
endif endif
@@ -410,7 +410,7 @@ LD_SCRIPT := ld_script.txt
LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld
else else
LD_SCRIPT := ld_script_modern.txt LD_SCRIPT := ld_script_modern.txt
LD_SCRIPT_DEPS := LD_SCRIPT_DEPS :=
endif endif
$(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS) $(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS)
+13 -13
View File
@@ -550,38 +550,38 @@
.2byte \param1 .2byte \param1
.4byte \param2 .4byte \param2
.endm .endm
@ useful script macros @ useful script macros
.macro get_curr_move_type .macro get_curr_move_type
get_type AI_TYPE_MOVE get_type AI_TYPE_MOVE
.endm .endm
.macro get_user_type1 .macro get_user_type1
get_type AI_TYPE1_USER get_type AI_TYPE1_USER
.endm .endm
.macro get_user_type2 .macro get_user_type2
get_type AI_TYPE2_USER get_type AI_TYPE2_USER
.endm .endm
.macro get_target_type1 .macro get_target_type1
get_type AI_TYPE1_TARGET get_type AI_TYPE1_TARGET
.endm .endm
.macro get_target_type2 .macro get_target_type2
get_type AI_TYPE2_TARGET get_type AI_TYPE2_TARGET
.endm .endm
.macro if_ability battler:req, ability:req, ptr:req .macro if_ability battler:req, ability:req, ptr:req
check_ability \battler, \ability check_ability \battler, \ability
if_equal 1, \ptr if_equal 1, \ptr
.endm .endm
.macro if_no_ability battler:req, ability:req, ptr:req .macro if_no_ability battler:req, ability:req, ptr:req
check_ability \battler, \ability check_ability \battler, \ability
if_equal 0, \ptr if_equal 0, \ptr
.endm .endm
.macro if_type battler:req, type:req, ptr:req .macro if_type battler:req, type:req, ptr:req
is_of_type \battler, \type is_of_type \battler, \type
if_equal 1, \ptr if_equal 1, \ptr
@@ -591,20 +591,20 @@
is_of_type \battler, \type is_of_type \battler, \type
if_equal 0, \ptr if_equal 0, \ptr
.endm .endm
.macro if_target_faster ptr:req .macro if_target_faster ptr:req
if_user_goes 1, \ptr if_user_goes 1, \ptr
.endm .endm
.macro if_user_faster ptr:req .macro if_user_faster ptr:req
if_user_goes 0, \ptr if_user_goes 0, \ptr
.endm .endm
.macro if_double_battle ptr:req .macro if_double_battle ptr:req
is_double_battle is_double_battle
if_equal 1, \ptr if_equal 1, \ptr
.endm .endm
.macro if_not_double_battle ptr:req .macro if_not_double_battle ptr:req
is_double_battle is_double_battle
if_equal 0, \ptr if_equal 0, \ptr
@@ -613,7 +613,7 @@
.macro if_any_move_disabled battler:req, ptr:req .macro if_any_move_disabled battler:req, ptr:req
if_any_move_disabled_or_encored \battler, 0, \ptr if_any_move_disabled_or_encored \battler, 0, \ptr
.endm .endm
.macro if_any_move_encored battler:req, ptr:req .macro if_any_move_encored battler:req, ptr:req
if_any_move_disabled_or_encored \battler, 1, \ptr if_any_move_disabled_or_encored \battler, 1, \ptr
.endm .endm
+3 -3
View File
@@ -270,16 +270,16 @@
.macro stopsound .macro stopsound
.byte 0x2f .byte 0x2f
.endm .endm
@ useful macros @ useful macros
.macro jumpreteq value:req, ptr:req .macro jumpreteq value:req, ptr:req
jumpargeq ARG_RET_ID, \value, \ptr jumpargeq ARG_RET_ID, \value, \ptr
.endm .endm
.macro jumprettrue ptr:req .macro jumprettrue ptr:req
jumpreteq TRUE, \ptr jumpreteq TRUE, \ptr
.endm .endm
.macro jumpretfalse ptr:req .macro jumpretfalse ptr:req
jumpreteq FALSE, \ptr jumpreteq FALSE, \ptr
.endm .endm
+52 -52
View File
@@ -410,33 +410,33 @@
.byte \endMode .byte \endMode
.byte \endState .byte \endState
.endm .endm
@ Help macros for 5 uses of moveend command @ Help macros for 5 uses of moveend command
@ All cases @ All cases
.macro moveendall .macro moveendall
setbyte sMOVEEND_STATE, 0 setbyte sMOVEEND_STATE, 0
moveend 0, 0 moveend 0, 0
.endm .endm
@ Chosen case @ Chosen case
.macro moveendcase case:req .macro moveendcase case:req
setbyte sMOVEEND_STATE, \case setbyte sMOVEEND_STATE, \case
moveend 1, 0 moveend 1, 0
.endm .endm
@ All cases from (inclusive) @ All cases from (inclusive)
.macro moveendfrom from:req .macro moveendfrom from:req
setbyte sMOVEEND_STATE, \from setbyte sMOVEEND_STATE, \from
moveend 0, 0 moveend 0, 0
.endm .endm
@ All cases from 0 to (not inclusive) @ All cases from 0 to (not inclusive)
.macro moveendto to:req .macro moveendto to:req
setbyte sMOVEEND_STATE, 0 setbyte sMOVEEND_STATE, 0
moveend 2, \to moveend 2, \to
.endm .endm
@ Cases from (inclusive) to (not inclusive) @ Cases from (inclusive) to (not inclusive)
.macro moveendfromto from:req, to:req .macro moveendfromto from:req, to:req
setbyte sMOVEEND_STATE, \from setbyte sMOVEEND_STATE, \from
@@ -668,7 +668,7 @@
.byte 0x77 .byte 0x77
.endm .endm
.macro faintifabilitynotdamp .macro tryexplosion
.byte 0x78 .byte 0x78
.endm .endm
@@ -1031,7 +1031,7 @@
.byte 0xc8 .byte 0xc8
.endm .endm
.macro jumpifattackandspecialattackcannotfall ptr:req .macro trymemento ptr:req
.byte 0xc9 .byte 0xc9
.4byte \ptr .4byte \ptr
.endm .endm
@@ -1252,165 +1252,165 @@
.byte 0xf8 .byte 0xf8
.byte \position .byte \position
.endm .endm
@ various command changed to more readable macros @ various command changed to more readable macros
.macro cancelmultiturnmoves battler:req .macro cancelmultiturnmoves battler:req
various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES
.endm .endm
.macro setmagiccoattarget battler:req .macro setmagiccoattarget battler:req
various \battler, VARIOUS_SET_MAGIC_COAT_TARGET various \battler, VARIOUS_SET_MAGIC_COAT_TARGET
.endm .endm
.macro getifcantrunfrombattle battler:req .macro getifcantrunfrombattle battler:req
various \battler, VARIOUS_IS_RUNNING_IMPOSSIBLE various \battler, VARIOUS_IS_RUNNING_IMPOSSIBLE
.endm .endm
.macro getmovetarget battler:req .macro getmovetarget battler:req
various \battler, VARIOUS_GET_MOVE_TARGET various \battler, VARIOUS_GET_MOVE_TARGET
.endm .endm
.macro getbattlerfainted battler:req .macro getbattlerfainted battler:req
various \battler, VARIOUS_GET_BATTLER_FAINTED various \battler, VARIOUS_GET_BATTLER_FAINTED
.endm .endm
.macro resetintimidatetracebits battler:req .macro resetintimidatetracebits battler:req
various \battler, VARIOUS_RESET_INTIMIDATE_TRACE_BITS various \battler, VARIOUS_RESET_INTIMIDATE_TRACE_BITS
.endm .endm
.macro updatechoicemoveonlvlup battler:req .macro updatechoicemoveonlvlup battler:req
various \battler, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP various \battler, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP
.endm .endm
.macro resetplayerfainted .macro resetplayerfainted
various BS_ATTACKER, VARIOUS_RESET_PLAYER_FAINTED various BS_ATTACKER, VARIOUS_RESET_PLAYER_FAINTED
.endm .endm
.macro palaceflavortext battler:req .macro palaceflavortext battler:req
various \battler, VARIOUS_PALACE_FLAVOR_TEXT various \battler, VARIOUS_PALACE_FLAVOR_TEXT
.endm .endm
.macro arenajudgmentwindow .macro arenajudgmentwindow
various BS_ATTACKER, VARIOUS_ARENA_JUDGMENT_WINDOW various BS_ATTACKER, VARIOUS_ARENA_JUDGMENT_WINDOW
.endm .endm
.macro arenaopponentmonlost .macro arenaopponentmonlost
various BS_ATTACKER, VARIOUS_ARENA_OPPONENT_MON_LOST various BS_ATTACKER, VARIOUS_ARENA_OPPONENT_MON_LOST
.endm .endm
.macro arenaplayermonlost .macro arenaplayermonlost
various BS_ATTACKER, VARIOUS_ARENA_PLAYER_MON_LOST various BS_ATTACKER, VARIOUS_ARENA_PLAYER_MON_LOST
.endm .endm
.macro arenabothmonlost .macro arenabothmonlost
various BS_ATTACKER, VARIOUS_ARENA_BOTH_MONS_LOST various BS_ATTACKER, VARIOUS_ARENA_BOTH_MONS_LOST
.endm .endm
.macro forfeityesnobox battler:req .macro forfeityesnobox battler:req
various \battler, VARIOUS_EMIT_YESNOBOX various \battler, VARIOUS_EMIT_YESNOBOX
.endm .endm
.macro arenadrawreftextbox .macro arenadrawreftextbox
various BS_ATTACKER, VARIOUS_DRAW_ARENA_REF_TEXT_BOX various BS_ATTACKER, VARIOUS_DRAW_ARENA_REF_TEXT_BOX
.endm .endm
.macro arenaerasereftextbox .macro arenaerasereftextbox
various BS_ATTACKER, VARIOUS_ERASE_ARENA_REF_TEXT_BOX various BS_ATTACKER, VARIOUS_ERASE_ARENA_REF_TEXT_BOX
.endm .endm
.macro arenajudgmentstring id:req .macro arenajudgmentstring id:req
various \id, VARIOUS_ARENA_JUDGMENT_STRING various \id, VARIOUS_ARENA_JUDGMENT_STRING
.endm .endm
.macro arenawaitmessage id:req .macro arenawaitmessage id:req
various \id, VARIOUS_ARENA_WAIT_STRING various \id, VARIOUS_ARENA_WAIT_STRING
.endm .endm
.macro waitcry battler:req .macro waitcry battler:req
various \battler, VARIOUS_WAIT_CRY various \battler, VARIOUS_WAIT_CRY
.endm .endm
.macro returnopponentmon1toball battler:req .macro returnopponentmon1toball battler:req
various \battler, VARIOUS_RETURN_OPPONENT_MON1 various \battler, VARIOUS_RETURN_OPPONENT_MON1
.endm .endm
.macro returnopponentmon2toball battler:req .macro returnopponentmon2toball battler:req
various \battler, VARIOUS_RETURN_OPPONENT_MON2 various \battler, VARIOUS_RETURN_OPPONENT_MON2
.endm .endm
.macro volumedown .macro volumedown
various BS_ATTACKER, VARIOUS_VOLUME_DOWN various BS_ATTACKER, VARIOUS_VOLUME_DOWN
.endm .endm
.macro volumeup .macro volumeup
various BS_ATTACKER, VARIOUS_VOLUME_UP various BS_ATTACKER, VARIOUS_VOLUME_UP
.endm .endm
.macro setalreadystatusedmoveattempt battler:req .macro setalreadystatusedmoveattempt battler:req
various \battler, VARIOUS_SET_ALREADY_STATUS_MOVE_ATTEMPT various \battler, VARIOUS_SET_ALREADY_STATUS_MOVE_ATTEMPT
.endm .endm
.macro palacetryescapestatus battler:req .macro palacetryescapestatus battler:req
various \battler, VARIOUS_PALACE_TRY_ESCAPE_STATUS various \battler, VARIOUS_PALACE_TRY_ESCAPE_STATUS
.endm .endm
.macro setoutcomeonteleport battler:req .macro setoutcomeonteleport battler:req
various \battler, VARIOUS_SET_TELEPORT_OUTCOME various \battler, VARIOUS_SET_TELEPORT_OUTCOME
.endm .endm
.macro playtrainerdefeatbgm battler:req .macro playtrainerdefeatbgm battler:req
various \battler, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC various \battler, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC
.endm .endm
@ helpful macros @ helpful macros
.macro setstatchanger stat:req, stages:req, down:req .macro setstatchanger stat:req, stages:req, down:req
setbyte sSTATCHANGER, \stat | \stages << 4 | \down << 7 setbyte sSTATCHANGER, \stat | \stages << 4 | \down << 7
.endm .endm
.macro setmoveeffect effect:req .macro setmoveeffect effect:req
setbyte cEFFECT_CHOOSER, \effect setbyte cEFFECT_CHOOSER, \effect
.endm .endm
.macro chosenstatus1animation battler:req, status:req .macro chosenstatus1animation battler:req, status:req
chosenstatusanimation \battler, 0x0, \status chosenstatusanimation \battler, 0x0, \status
.endm .endm
.macro chosenstatus2animation battler:req, status:req .macro chosenstatus2animation battler:req, status:req
chosenstatusanimation \battler, 0x1, \status chosenstatusanimation \battler, 0x1, \status
.endm .endm
.macro sethword dst:req, value:req .macro sethword dst:req, value:req
setbyte \dst, (\value) & 0xFF setbyte \dst, (\value) & 0xFF
setbyte \dst + 1, ((\value) >> 8) & 0xFF setbyte \dst + 1, ((\value) >> 8) & 0xFF
.endm .endm
.macro setword dst:req, value:req .macro setword dst:req, value:req
setbyte \dst, (\value) & 0xFF setbyte \dst, (\value) & 0xFF
setbyte \dst + 1, ((\value) >> 8) & 0xFF setbyte \dst + 1, ((\value) >> 8) & 0xFF
setbyte \dst + 2, ((\value) >> 16) & 0xFF setbyte \dst + 2, ((\value) >> 16) & 0xFF
setbyte \dst + 3, ((\value) >> 24) & 0xFF setbyte \dst + 3, ((\value) >> 24) & 0xFF
.endm .endm
.macro copybyte dst:req, src:req .macro copybyte dst:req, src:req
copyarray \dst, \src, 0x1 copyarray \dst, \src, 0x1
.endm .endm
.macro copyhword dst:req, src:req .macro copyhword dst:req, src:req
copyarray \dst, \src, 0x2 copyarray \dst, \src, 0x2
.endm .endm
.macro copyword dst:req, src:req .macro copyword dst:req, src:req
copyarray \dst, \src, 0x4 copyarray \dst, \src, 0x4
.endm .endm
.macro jumpifbytenotequal byte1:req, byte2:req, jumpptr:req .macro jumpifbytenotequal byte1:req, byte2:req, jumpptr:req
jumpifarraynotequal \byte1, \byte2, 0x1, \jumpptr jumpifarraynotequal \byte1, \byte2, 0x1, \jumpptr
.endm .endm
.macro jumpifbyteequal byte1:req, byte2:req, jumpptr:req .macro jumpifbyteequal byte1:req, byte2:req, jumpptr:req
jumpifarrayequal \byte1, \byte2, 0x1, \jumpptr jumpifarrayequal \byte1, \byte2, 0x1, \jumpptr
.endm .endm
.macro jumpifmove move:req, jumpptr:req .macro jumpifmove move:req, jumpptr:req
jumpifhalfword CMP_EQUAL, gCurrentMove, \move, \jumpptr jumpifhalfword CMP_EQUAL, gCurrentMove, \move, \jumpptr
.endm .endm
@@ -1418,23 +1418,23 @@
.macro jumpifnotmove move:req, jumpptr:req .macro jumpifnotmove move:req, jumpptr:req
jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, \move, \jumpptr jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, \move, \jumpptr
.endm .endm
.macro jumpifstatus3 battler:req, status:req, jumpptr:req .macro jumpifstatus3 battler:req, status:req, jumpptr:req
jumpifstatus3condition \battler, \status, FALSE, \jumpptr jumpifstatus3condition \battler, \status, FALSE, \jumpptr
.endm .endm
.macro jumpifnostatus3 battler:req, status:req, jumpptr:req .macro jumpifnostatus3 battler:req, status:req, jumpptr:req
jumpifstatus3condition \battler, \status, TRUE, \jumpptr jumpifstatus3condition \battler, \status, TRUE, \jumpptr
.endm .endm
.macro jumpifmovehadnoeffect jumpptr:req .macro jumpifmovehadnoeffect jumpptr:req
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_NO_EFFECT, \jumpptr jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_NO_EFFECT, \jumpptr
.endm .endm
.macro jumpifbattletype flags:req, jumpptr:req .macro jumpifbattletype flags:req, jumpptr:req
jumpifword CMP_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr jumpifword CMP_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr
.endm .endm
.macro jumpifnotbattletype flags:req, jumpptr:req .macro jumpifnotbattletype flags:req, jumpptr:req
jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr
.endm .endm
+6 -6
View File
@@ -276,8 +276,8 @@
.2byte SPECIAL_\function .2byte SPECIAL_\function
.endm .endm
@ Blocks script execution until a command or C code manually unblocks it. Generally used with specific @ Blocks script execution until a command or C code manually unblocks it. Generally used with specific
@ commands and specials. Calling EnableBothScriptContexts for instance will allow execution to continue. @ commands and specials. Calling ScriptContext_Enable for instance will allow execution to continue.
.macro waitstate .macro waitstate
.byte 0x27 .byte 0x27
.endm .endm
@@ -985,7 +985,7 @@
.endm .endm
@ Gives the player a Pokémon of the specified species and level, holding the specified item. The trailing 0s are unused parameters. @ Gives the player a Pokémon of the specified species and level, holding the specified item. The trailing 0s are unused parameters.
@ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome. @ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome.
.macro givemon species:req, level:req, item=ITEM_NONE .macro givemon species:req, level:req, item=ITEM_NONE
.byte 0x79 .byte 0x79
.2byte \species .2byte \species
@@ -997,7 +997,7 @@
.endm .endm
@ Gives the player an Egg of the specified species. @ Gives the player an Egg of the specified species.
@ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome. @ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome.
.macro giveegg species:req .macro giveegg species:req
.byte 0x7a .byte 0x7a
.2byte \species .2byte \species
@@ -1415,7 +1415,7 @@
.2byte \out .2byte \out
.endm .endm
@ Gives 'count' coins to the player, up to a total of MAX_COINS. @ Gives 'count' coins to the player, up to a total of MAX_COINS.
@ If the player already has MAX_COINS then VAR_RESULT is set to TRUE, otherwise it is set to FALSE. @ If the player already has MAX_COINS then VAR_RESULT is set to TRUE, otherwise it is set to FALSE.
.macro addcoins count:req .macro addcoins count:req
.byte 0xb4 .byte 0xb4
@@ -1887,7 +1887,7 @@
@ Gives 'amount' of the specified 'item' to the player and prints a message with fanfare. @ Gives 'amount' of the specified 'item' to the player and prints a message with fanfare.
@ If the player doesn't have space for all the items then as many are added as possible, the @ If the player doesn't have space for all the items then as many are added as possible, the
@ message indicates there is no room, and VAR_RESULT is set to FALSE. @ message indicates there is no room, and VAR_RESULT is set to FALSE.
@ Otherwise VAR_RESULT is set to TRUE, and the message indicates they have received the item(s). @ Otherwise VAR_RESULT is set to TRUE, and the message indicates they have received the item(s).
.macro giveitem item:req, amount=1 .macro giveitem item:req, amount=1
setorcopyvar VAR_0x8000, \item setorcopyvar VAR_0x8000, \item
+2 -2
View File
@@ -152,8 +152,8 @@
create_movement_action walk_slow_diag_northeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT create_movement_action walk_slow_diag_northeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT
create_movement_action walk_slow_diag_southwest, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT create_movement_action walk_slow_diag_southwest, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT
create_movement_action walk_slow_diag_southeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT create_movement_action walk_slow_diag_southeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT
create_movement_action store_lock_anim, MOVEMENT_ACTION_STORE_AND_LOCK_ANIM create_movement_action lock_anim, MOVEMENT_ACTION_LOCK_ANIM
create_movement_action free_unlock_anim, MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM create_movement_action unlock_anim, MOVEMENT_ACTION_UNLOCK_ANIM
create_movement_action walk_left_affine, MOVEMENT_ACTION_WALK_LEFT_AFFINE create_movement_action walk_left_affine, MOVEMENT_ACTION_WALK_LEFT_AFFINE
create_movement_action walk_right_affine, MOVEMENT_ACTION_WALK_RIGHT_AFFINE create_movement_action walk_right_affine, MOVEMENT_ACTION_WALK_RIGHT_AFFINE
create_movement_action levitate, MOVEMENT_ACTION_LEVITATE create_movement_action levitate, MOVEMENT_ACTION_LEVITATE
+4 -4
View File
@@ -100,9 +100,9 @@
special CallTrainerHillFunction special CallTrainerHillFunction
.endm .endm
@ Set the challenge mode to HILL_TAG_* (Normal, Variety, Unique, or Expert) @ Set the challenge mode to HILL_MODE_* (Normal, Variety, Unique, or Expert)
.macro trainerhill_settag tag:req .macro trainerhill_setmode mode:req
setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_TAG setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_MODE
copyvar VAR_0x8005, \tag copyvar VAR_0x8005, \mode
special CallTrainerHillFunction special CallTrainerHillFunction
.endm .endm
+506 -506
View File
File diff suppressed because it is too large Load Diff
+283 -283
View File
File diff suppressed because it is too large Load Diff
+51 -47
View File
@@ -1,6 +1,7 @@
#include "constants/global.h" #include "constants/global.h"
#include "constants/battle.h" #include "constants/battle.h"
#include "constants/pokemon.h" #include "constants/pokemon.h"
#include "constants/battle_arena.h"
#include "constants/battle_script_commands.h" #include "constants/battle_script_commands.h"
#include "constants/battle_anim.h" #include "constants/battle_anim.h"
#include "constants/battle_string_ids.h" #include "constants/battle_string_ids.h"
@@ -14,7 +15,7 @@
.include "constants/constants.inc" .include "constants/constants.inc"
.section script_data, "aw", %progbits .section script_data, "aw", %progbits
.align 2 .align 2
gBattleScriptsForMoveEffects:: gBattleScriptsForMoveEffects::
.4byte BattleScript_EffectHit @ EFFECT_HIT .4byte BattleScript_EffectHit @ EFFECT_HIT
@@ -374,7 +375,8 @@ BattleScript_EffectExplosion::
attackcanceler attackcanceler
attackstring attackstring
ppreduce ppreduce
faintifabilitynotdamp @ Below jumps to BattleScript_DampStopsExplosion if it fails (only way it can)
tryexplosion
setatkhptozero setatkhptozero
waitstate waitstate
jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_ExplosionDoAnimStartLoop jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_ExplosionDoAnimStartLoop
@@ -489,7 +491,7 @@ BattleScript_EffectStatUp::
BattleScript_EffectStatUpAfterAtkCanceler:: BattleScript_EffectStatUpAfterAtkCanceler::
attackstring attackstring
ppreduce ppreduce
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_StatUpEnd statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_StatUpEnd
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_StatUpAttackAnim jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_StatUpAttackAnim
pause B_WAIT_TIME_SHORT pause B_WAIT_TIME_SHORT
goto BattleScript_StatUpPrintString goto BattleScript_StatUpPrintString
@@ -535,7 +537,7 @@ BattleScript_EffectStatDown::
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring attackstring
ppreduce ppreduce
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_StatDownEnd statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_StatDownEnd
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_StatDownDoAnim jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_StatDownDoAnim
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_StatDownEnd jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_StatDownEnd
pause B_WAIT_TIME_SHORT pause B_WAIT_TIME_SHORT
@@ -1491,17 +1493,17 @@ BattleScript_CurseTrySpeed::
attackanimation attackanimation
waitanimation waitanimation
setstatchanger STAT_SPEED, 1, TRUE setstatchanger STAT_SPEED, 1, TRUE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CurseTryAttack statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CurseTryAttack
printfromtable gStatDownStringIds printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
BattleScript_CurseTryAttack:: BattleScript_CurseTryAttack::
setstatchanger STAT_ATK, 1, FALSE setstatchanger STAT_ATK, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CurseTryDefense statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CurseTryDefense
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
BattleScript_CurseTryDefense:: BattleScript_CurseTryDefense::
setstatchanger STAT_DEF, 1, FALSE setstatchanger STAT_DEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CurseEnd statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CurseEnd
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
BattleScript_CurseEnd:: BattleScript_CurseEnd::
@@ -1613,7 +1615,7 @@ BattleScript_EffectSwagger::
attackanimation attackanimation
waitanimation waitanimation
setstatchanger STAT_ATK, 2, FALSE setstatchanger STAT_ATK, 2, FALSE
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_SwaggerTryConfuse statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_SwaggerTryConfuse
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_SwaggerTryConfuse jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_SwaggerTryConfuse
setgraphicalstatchangevalues setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
@@ -1812,7 +1814,7 @@ BattleScript_EffectSkullBash::
setbyte sTWOTURN_STRINGID, B_MSG_TURN1_SKULL_BASH setbyte sTWOTURN_STRINGID, B_MSG_TURN1_SKULL_BASH
call BattleScriptFirstChargingTurn call BattleScriptFirstChargingTurn
setstatchanger STAT_DEF, 1, FALSE setstatchanger STAT_DEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_SkullBashEnd statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_SkullBashEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_SkullBashEnd jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_SkullBashEnd
setgraphicalstatchangevalues setgraphicalstatchangevalues
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
@@ -1926,8 +1928,8 @@ BattleScript_EffectTeleport::
ppreduce ppreduce
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_ButItFailed jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_ButItFailed
getifcantrunfrombattle BS_ATTACKER getifcantrunfrombattle BS_ATTACKER
jumpifbyte CMP_EQUAL, gBattleCommunication, 1, BattleScript_ButItFailed jumpifbyte CMP_EQUAL, gBattleCommunication, BATTLE_RUN_FORBIDDEN, BattleScript_ButItFailed
jumpifbyte CMP_EQUAL, gBattleCommunication, 2, BattleScript_PrintAbilityMadeIneffective jumpifbyte CMP_EQUAL, gBattleCommunication, BATTLE_RUN_FAILURE, BattleScript_PrintAbilityMadeIneffective
attackanimation attackanimation
waitanimation waitanimation
printstring STRINGID_PKMNFLEDFROMBATTLE printstring STRINGID_PKMNFLEDFROMBATTLE
@@ -2015,7 +2017,7 @@ BattleScript_EffectDefenseCurl::
ppreduce ppreduce
setdefensecurlbit setdefensecurlbit
setstatchanger STAT_DEF, 1, FALSE setstatchanger STAT_DEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_DefenseCurlDoStatUpAnim statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_DefenseCurlDoStatUpAnim
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_StatUpPrintString jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_StatUpPrintString
attackanimation attackanimation
waitanimation waitanimation
@@ -2156,7 +2158,7 @@ BattleScript_EffectFlatter::
attackanimation attackanimation
waitanimation waitanimation
setstatchanger STAT_SPATK, 1, FALSE setstatchanger STAT_SPATK, 1, FALSE
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_FlatterTryConfuse statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_FlatterTryConfuse
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_FlatterTryConfuse jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_FlatterTryConfuse
setgraphicalstatchangevalues setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
@@ -2201,10 +2203,10 @@ BattleScript_AlreadyBurned::
BattleScript_EffectMemento:: BattleScript_EffectMemento::
attackcanceler attackcanceler
jumpifbyte CMP_EQUAL, cMISS_TYPE, B_MSG_PROTECTED, BattleScript_MementoFailProtect jumpifbyte CMP_EQUAL, cMISS_TYPE, B_MSG_PROTECTED, BattleScript_MementoTargetProtect
attackstring attackstring
ppreduce ppreduce
jumpifattackandspecialattackcannotfall BattleScript_ButItFailed trymemento BattleScript_ButItFailed
setatkhptozero setatkhptozero
attackanimation attackanimation
waitanimation waitanimation
@@ -2213,16 +2215,16 @@ BattleScript_EffectMemento::
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO | STAT_CHANGE_MULTIPLE_STATS playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO | STAT_CHANGE_MULTIPLE_STATS
playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO
setstatchanger STAT_ATK, 2, TRUE setstatchanger STAT_ATK, 2, TRUE
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectMementoTrySpAtk statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_EffectMementoTrySpAtk
@ Greater than STAT_FELL is checking if the stat cannot decrease @ Greater than B_MSG_DEFENDER_STAT_FELL is checking if the stat cannot decrease
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_FELL, BattleScript_EffectMementoTrySpAtk jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_FELL, BattleScript_EffectMementoTrySpAtk
printfromtable gStatDownStringIds printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
BattleScript_EffectMementoTrySpAtk: BattleScript_EffectMementoTrySpAtk:
playstatchangeanimation BS_TARGET, BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO playstatchangeanimation BS_TARGET, BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO
setstatchanger STAT_SPATK, 2, TRUE setstatchanger STAT_SPATK, 2, TRUE
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectMementoTryFaint statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_EffectMementoTryFaint
@ Greater than STAT_FELL is checking if the stat cannot decrease @ Greater than B_MSG_DEFENDER_STAT_FELL is checking if the stat cannot decrease
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_FELL, BattleScript_EffectMementoTryFaint jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_FELL, BattleScript_EffectMementoTryFaint
printfromtable gStatDownStringIds printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
@@ -2233,11 +2235,12 @@ BattleScript_EffectMementoPrintNoEffect:
printstring STRINGID_BUTNOEFFECT printstring STRINGID_BUTNOEFFECT
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
goto BattleScript_EffectMementoTryFaint goto BattleScript_EffectMementoTryFaint
BattleScript_MementoFailProtect: @ If the target is protected there's no need to check the target's stats or animate, the user will just faint
BattleScript_MementoTargetProtect:
attackstring attackstring
ppreduce ppreduce
jumpifattackandspecialattackcannotfall BattleScript_MementoFailEnd trymemento BattleScript_MementoTargetProtectEnd
BattleScript_MementoFailEnd: BattleScript_MementoTargetProtectEnd:
setatkhptozero setatkhptozero
pause B_WAIT_TIME_LONG pause B_WAIT_TIME_LONG
effectivenesssound effectivenesssound
@@ -2660,14 +2663,14 @@ BattleScript_TickleDoMoveAnim::
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_DEF, STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS playstatchangeanimation BS_TARGET, BIT_ATK | BIT_DEF, STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS
playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE
setstatchanger STAT_ATK, 1, TRUE setstatchanger STAT_ATK, 1, TRUE
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_TickleTryLowerDef statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_TickleTryLowerDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_TickleTryLowerDef jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_TickleTryLowerDef
printfromtable gStatDownStringIds printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
BattleScript_TickleTryLowerDef:: BattleScript_TickleTryLowerDef::
playstatchangeanimation BS_TARGET, BIT_DEF, STAT_CHANGE_NEGATIVE playstatchangeanimation BS_TARGET, BIT_DEF, STAT_CHANGE_NEGATIVE
setstatchanger STAT_DEF, 1, TRUE setstatchanger STAT_DEF, 1, TRUE
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_TickleEnd statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_TickleEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_TickleEnd jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_TickleEnd
printfromtable gStatDownStringIds printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
@@ -2693,13 +2696,13 @@ BattleScript_CosmicPowerDoMoveAnim::
setbyte sSTAT_ANIM_PLAYED, FALSE setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, 0 playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, 0
setstatchanger STAT_DEF, 1, FALSE setstatchanger STAT_DEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CosmicPowerTrySpDef statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CosmicPowerTrySpDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CosmicPowerTrySpDef jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CosmicPowerTrySpDef
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
BattleScript_CosmicPowerTrySpDef:: BattleScript_CosmicPowerTrySpDef::
setstatchanger STAT_SPDEF, 1, FALSE setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CosmicPowerEnd statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CosmicPowerEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CosmicPowerEnd jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CosmicPowerEnd
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
@@ -2722,13 +2725,13 @@ BattleScript_BulkUpDoMoveAnim::
setbyte sSTAT_ANIM_PLAYED, FALSE setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF, 0 playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF, 0
setstatchanger STAT_ATK, 1, FALSE setstatchanger STAT_ATK, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_BulkUpTryDef statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_BulkUpTryDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_BulkUpTryDef jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_BulkUpTryDef
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
BattleScript_BulkUpTryDef:: BattleScript_BulkUpTryDef::
setstatchanger STAT_DEF, 1, FALSE setstatchanger STAT_DEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_BulkUpEnd statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_BulkUpEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_BulkUpEnd jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_BulkUpEnd
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
@@ -2747,13 +2750,13 @@ BattleScript_CalmMindDoMoveAnim::
setbyte sSTAT_ANIM_PLAYED, FALSE setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF, 0 playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF, 0
setstatchanger STAT_SPATK, 1, FALSE setstatchanger STAT_SPATK, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CalmMindTrySpDef statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CalmMindTrySpDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CalmMindTrySpDef jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CalmMindTrySpDef
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
BattleScript_CalmMindTrySpDef:: BattleScript_CalmMindTrySpDef::
setstatchanger STAT_SPDEF, 1, FALSE setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CalmMindEnd statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_CalmMindEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CalmMindEnd jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_CalmMindEnd
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
@@ -2779,13 +2782,13 @@ BattleScript_DragonDanceDoMoveAnim::
setbyte sSTAT_ANIM_PLAYED, FALSE setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPEED, 0 playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPEED, 0
setstatchanger STAT_ATK, 1, FALSE setstatchanger STAT_ATK, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_DragonDanceTrySpeed statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_DragonDanceTrySpeed
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_DragonDanceTrySpeed jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_DragonDanceTrySpeed
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
BattleScript_DragonDanceTrySpeed:: BattleScript_DragonDanceTrySpeed::
setstatchanger STAT_SPEED, 1, FALSE setstatchanger STAT_SPEED, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_DragonDanceEnd statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_DragonDanceEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_DragonDanceEnd jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_DragonDanceEnd
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
@@ -2823,7 +2826,7 @@ BattleScript_GiveExp::
setbyte sGIVEEXP_STATE, 0 setbyte sGIVEEXP_STATE, 0
getexp BS_TARGET getexp BS_TARGET
end2 end2
BattleScript_HandleFaintedMon:: BattleScript_HandleFaintedMon::
checkteamslost BattleScript_LinkHandleFaintedMonMultiple checkteamslost BattleScript_LinkHandleFaintedMonMultiple
jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_FaintedMonEnd jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_FaintedMonEnd
@@ -3456,27 +3459,27 @@ BattleScript_AllStatsUpAtk::
setbyte sSTAT_ANIM_PLAYED, FALSE setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF, 0 playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF, 0
setstatchanger STAT_ATK, 1, FALSE setstatchanger STAT_ATK, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpDef statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpDef
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
BattleScript_AllStatsUpDef:: BattleScript_AllStatsUpDef::
setstatchanger STAT_DEF, 1, FALSE setstatchanger STAT_DEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpSpeed statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpSpeed
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
BattleScript_AllStatsUpSpeed:: BattleScript_AllStatsUpSpeed::
setstatchanger STAT_SPEED, 1, FALSE setstatchanger STAT_SPEED, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpSpAtk statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpSpAtk
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
BattleScript_AllStatsUpSpAtk:: BattleScript_AllStatsUpSpAtk::
setstatchanger STAT_SPATK, 1, FALSE setstatchanger STAT_SPATK, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpSpDef statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpSpDef
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
BattleScript_AllStatsUpSpDef:: BattleScript_AllStatsUpSpDef::
setstatchanger STAT_SPDEF, 1, FALSE setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpRet statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_AllStatsUpRet
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
BattleScript_AllStatsUpRet:: BattleScript_AllStatsUpRet::
@@ -3623,14 +3626,14 @@ BattleScript_AtkDefDown::
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_ATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_ATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS
playstatchangeanimation BS_ATTACKER, BIT_ATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE playstatchangeanimation BS_ATTACKER, BIT_ATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE
setstatchanger STAT_ATK, 1, TRUE setstatchanger STAT_ATK, 1, TRUE
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_AtkDefDown_TryDef statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_AtkDefDown_TryDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_AtkDefDown_TryDef jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_AtkDefDown_TryDef
printfromtable gStatDownStringIds printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
BattleScript_AtkDefDown_TryDef:: BattleScript_AtkDefDown_TryDef::
playstatchangeanimation BS_ATTACKER, BIT_DEF, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE playstatchangeanimation BS_ATTACKER, BIT_DEF, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE
setstatchanger STAT_DEF, 1, TRUE setstatchanger STAT_DEF, 1, TRUE
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_AtkDefDown_End statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_AtkDefDown_End
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_AtkDefDown_End jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_AtkDefDown_End
printfromtable gStatDownStringIds printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
@@ -3696,7 +3699,7 @@ BattleScript_SAtkDown2::
setbyte sSTAT_ANIM_PLAYED, FALSE setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_SPATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO playstatchangeanimation BS_ATTACKER, BIT_SPATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO
setstatchanger STAT_SPATK, 2, TRUE setstatchanger STAT_SPATK, 2, TRUE
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_SAtkDown2End statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_SAtkDown2End
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_SAtkDown2End jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_SAtkDown2End
printfromtable gStatDownStringIds printfromtable gStatDownStringIds
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
@@ -4027,7 +4030,7 @@ BattleScript_IntimidateActivatesLoop:
jumpifability BS_TARGET, ABILITY_CLEAR_BODY, BattleScript_IntimidatePrevented jumpifability BS_TARGET, ABILITY_CLEAR_BODY, BattleScript_IntimidatePrevented
jumpifability BS_TARGET, ABILITY_HYPER_CUTTER, BattleScript_IntimidatePrevented jumpifability BS_TARGET, ABILITY_HYPER_CUTTER, BattleScript_IntimidatePrevented
jumpifability BS_TARGET, ABILITY_WHITE_SMOKE, BattleScript_IntimidatePrevented jumpifability BS_TARGET, ABILITY_WHITE_SMOKE, BattleScript_IntimidatePrevented
statbuffchange STAT_BUFF_NOT_PROTECT_AFFECTED | STAT_BUFF_ALLOW_PTR, BattleScript_IntimidateActivatesLoopIncrement statbuffchange STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_ALLOW_PTR, BattleScript_IntimidateActivatesLoopIncrement
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 1, BattleScript_IntimidateActivatesLoopIncrement jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 1, BattleScript_IntimidateActivatesLoopIncrement
setgraphicalstatchangevalues setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
@@ -4043,7 +4046,7 @@ BattleScript_IntimidatePrevented:
printstring STRINGID_PREVENTEDFROMWORKING printstring STRINGID_PREVENTEDFROMWORKING
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
goto BattleScript_IntimidateActivatesLoopIncrement goto BattleScript_IntimidateActivatesLoopIncrement
BattleScript_DroughtActivates:: BattleScript_DroughtActivates::
pause B_WAIT_TIME_SHORT pause B_WAIT_TIME_SHORT
printstring STRINGID_PKMNSXINTENSIFIEDSUN printstring STRINGID_PKMNSXINTENSIFIEDSUN
@@ -4406,7 +4409,7 @@ BattleScript_BerryConfuseHealEnd2::
BattleScript_BerryStatRaiseEnd2:: BattleScript_BerryStatRaiseEnd2::
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_BerryStatRaiseDoStatUp statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_BerryStatRaiseDoStatUp
BattleScript_BerryStatRaiseDoStatUp:: BattleScript_BerryStatRaiseDoStatUp::
setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_ITEM setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_ITEM
call BattleScript_StatUp call BattleScript_StatUp
@@ -4480,7 +4483,7 @@ BattleScript_ArenaDoJudgment::
arenajudgmentstring B_MSG_REF_THATS_IT arenajudgmentstring B_MSG_REF_THATS_IT
arenawaitmessage B_MSG_REF_THATS_IT arenawaitmessage B_MSG_REF_THATS_IT
pause B_WAIT_TIME_LONG pause B_WAIT_TIME_LONG
setbyte gBattleCommunication, 0 setbyte gBattleCommunication, 0 @ Reset state for arenajudgmentwindow
arenajudgmentwindow arenajudgmentwindow
pause B_WAIT_TIME_LONG pause B_WAIT_TIME_LONG
arenajudgmentwindow arenajudgmentwindow
@@ -4493,8 +4496,9 @@ BattleScript_ArenaDoJudgment::
arenajudgmentstring B_MSG_REF_JUDGE_BODY arenajudgmentstring B_MSG_REF_JUDGE_BODY
arenawaitmessage B_MSG_REF_JUDGE_BODY arenawaitmessage B_MSG_REF_JUDGE_BODY
arenajudgmentwindow arenajudgmentwindow
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 3, BattleScript_ArenaJudgmentPlayerLoses jumpifbyte CMP_EQUAL, gBattleCommunication + 1, ARENA_RESULT_PLAYER_LOST, BattleScript_ArenaJudgmentPlayerLoses
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 4, BattleScript_ArenaJudgmentDraw jumpifbyte CMP_EQUAL, gBattleCommunication + 1, ARENA_RESULT_TIE, BattleScript_ArenaJudgmentDraw
@ ARENA_RESULT_PLAYER_WON
arenajudgmentstring B_MSG_REF_PLAYER_WON arenajudgmentstring B_MSG_REF_PLAYER_WON
arenawaitmessage B_MSG_REF_PLAYER_WON arenawaitmessage B_MSG_REF_PLAYER_WON
arenajudgmentwindow arenajudgmentwindow
+18 -2
View File
@@ -435,11 +435,15 @@ AI_CGM_BetterWhenAudienceExcited:
AI_CGM_BetterWhenAudienceExcited_1stUp: AI_CGM_BetterWhenAudienceExcited_1stUp:
@ BUG: Should be if_appeal_num_eq 0 @ BUG: Should be if_appeal_num_eq 0
@ 1st up on 1st appeal excitement will always be 0 @ 1st up on 1st appeal excitement will always be 0
if_appeal_num_not_eq 0, AI_CGM_BetterWhenAudienceExcited_Not1stAppeal .ifdef BUGFIX
if_appeal_num_eq 0, AI_CGM_BetterWhenAudienceExcited_1stAppeal
.else
if_appeal_num_not_eq 0, AI_CGM_BetterWhenAudienceExcited_1stAppeal
.endif
if_excitement_eq 4, AI_CGM_BetterWhenAudienceExcited_1AwayFromMax if_excitement_eq 4, AI_CGM_BetterWhenAudienceExcited_1AwayFromMax
if_excitement_eq 3, AI_CGM_BetterWhenAudienceExcited_2AwayFromMax if_excitement_eq 3, AI_CGM_BetterWhenAudienceExcited_2AwayFromMax
end end
AI_CGM_BetterWhenAudienceExcited_Not1stAppeal: AI_CGM_BetterWhenAudienceExcited_1stAppeal:
if_random_less_than 125, AI_CGM_End if_random_less_than 125, AI_CGM_End
score -15 score -15
end end
@@ -542,7 +546,11 @@ AI_CGM_TargetMonWithJudgesAttention:
end end
AI_CGM_TargetMonWithJudgesAttention_CheckMon1: AI_CGM_TargetMonWithJudgesAttention_CheckMon1:
if_cannot_participate MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 if_cannot_participate MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
.ifdef BUGFIX
if_not_used_combo_starter MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
.else
if_used_combo_starter MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 if_used_combo_starter MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
.endif
if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
score +2 score +2
if_not_completed_combo MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 if_not_completed_combo MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
@@ -551,7 +559,11 @@ AI_CGM_TargetMonWithJudgesAttention_CheckMon1:
AI_CGM_TargetMonWithJudgesAttention_CheckMon2: AI_CGM_TargetMonWithJudgesAttention_CheckMon2:
if_user_order_eq MON_2, AI_CGM_End if_user_order_eq MON_2, AI_CGM_End
if_cannot_participate MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 if_cannot_participate MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
.ifdef BUGFIX
if_not_used_combo_starter MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
.else
if_used_combo_starter MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 if_used_combo_starter MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
.endif
if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
score +2 score +2
if_not_completed_combo MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 if_not_completed_combo MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
@@ -560,7 +572,11 @@ AI_CGM_TargetMonWithJudgesAttention_CheckMon2:
AI_CGM_TargetMonWithJudgesAttention_CheckMon3: AI_CGM_TargetMonWithJudgesAttention_CheckMon3:
if_user_order_eq MON_3, AI_CGM_End if_user_order_eq MON_3, AI_CGM_End
if_cannot_participate MON_3, AI_CGM_End if_cannot_participate MON_3, AI_CGM_End
.ifdef BUGFIX
if_not_used_combo_starter MON_3, AI_CGM_End
.else
if_used_combo_starter MON_3, AI_CGM_End if_used_combo_starter MON_3, AI_CGM_End
.endif
if_random_less_than 125, AI_CGM_End if_random_less_than 125, AI_CGM_End
score +2 score +2
if_not_completed_combo MON_3, AI_CGM_End if_not_completed_combo MON_3, AI_CGM_End
@@ -51,7 +51,7 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "AbandonedShip_HiddenFloorRooms_EventScript_ItemTM18", "script": "AbandonedShip_HiddenFloorRooms_EventScript_ItemTM18",
"flag": "FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_1_TM_18" "flag": "FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_1_TM18"
}, },
{ {
"graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL",
+1 -1
View File
@@ -25,7 +25,7 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "AbandonedShip_Room_B1F_EventScript_ItemTM13", "script": "AbandonedShip_Room_B1F_EventScript_ItemTM13",
"flag": "FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_TM_13" "flag": "FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_TM13"
} }
], ],
"warp_events": [ "warp_events": [
@@ -5,6 +5,10 @@
.set LOCALID_PLAYER, 13 .set LOCALID_PLAYER, 13
.set LOCALID_OPPONENT, 15 .set LOCALID_OPPONENT, 15
.set NO_DRAW, 0
.set DRAW_TRAINER, 1
.set DRAW_TUCKER, 2
BattleFrontier_BattleDomeBattleRoom_MapScripts:: BattleFrontier_BattleDomeBattleRoom_MapScripts::
map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleDomeBattleRoom_OnTransition map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleDomeBattleRoom_OnTransition
map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeBattleRoom_OnFrame map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeBattleRoom_OnFrame
@@ -12,10 +16,6 @@ BattleFrontier_BattleDomeBattleRoom_MapScripts::
map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleDomeBattleRoom_OnResume map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleDomeBattleRoom_OnResume
.byte 0 .byte 0
.set NO_DRAW, 0
.set DRAW_TRAINER, 1
.set DRAW_TUCKER, 2
BattleFrontier_BattleDomeBattleRoom_OnTransition: BattleFrontier_BattleDomeBattleRoom_OnTransition:
dome_setopponentgfx dome_setopponentgfx
frontier_get FRONTIER_DATA_BATTLE_NUM frontier_get FRONTIER_DATA_BATTLE_NUM
@@ -472,8 +472,8 @@ BattleFrontier_BattlePalaceLobby_Text_FeatWillBeRecorded:
@ Unused @ Unused
BattleFrontier_BattlePalaceLobby_Text_BattlePointsFor7WinStreak: BattleFrontier_BattlePalaceLobby_Text_BattlePointsFor7WinStreak:
.string "For the feat of your 7-win streak,\n" .string "For the feat of your 7-win streak,\n"
.string "we present you with Battle Point(s).$" .string "we present you with Battle Point(s).$"
BattleFrontier_BattlePalaceLobby_Text_NoSpaceForPrize: BattleFrontier_BattlePalaceLobby_Text_NoSpaceForPrize:
.string "You seem to have no space for\n" .string "You seem to have no space for\n"
@@ -364,7 +364,8 @@ BattleFrontier_BattlePikeLobby_Text_AwardYouTheseBattlePoints2:
@ Unused @ Unused
BattleFrontier_BattlePikeLobby_Text_ReachedBattlePointLimit: BattleFrontier_BattlePikeLobby_Text_ReachedBattlePointLimit:
.string "You appear to have reached the limit\n" .string "You appear to have reached the limit\n"
.string "for Battle Points…\pPlease exchange some Battle Points\n" .string "for Battle Points…\p"
.string "Please exchange some Battle Points\n"
.string "for prizes, then return…$" .string "for prizes, then return…$"
BattleFrontier_BattlePikeLobby_Text_FailedToSaveBeforeQuitting: BattleFrontier_BattlePikeLobby_Text_FailedToSaveBeforeQuitting:
+14 -12
View File
@@ -22,18 +22,20 @@ BattleFrontier_Lounge2_EventScript_AlreadyMetManiac::
end end
BattleFrontier_Lounge2_EventScript_GiveAdvice:: BattleFrontier_Lounge2_EventScript_GiveAdvice::
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 0, BattleFrontier_Lounge2_EventScript_BufferSingle call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_TOWER_SINGLES, BattleFrontier_Lounge2_EventScript_BufferSingle
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 1, BattleFrontier_Lounge2_EventScript_BufferDouble call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_TOWER_DOUBLES, BattleFrontier_Lounge2_EventScript_BufferDouble
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 2, BattleFrontier_Lounge2_EventScript_BufferMulti call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_TOWER_MULTIS, BattleFrontier_Lounge2_EventScript_BufferMulti
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 3, BattleFrontier_Lounge2_EventScript_BufferMultiLink call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_TOWER_LINK, BattleFrontier_Lounge2_EventScript_BufferMultiLink
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 4, BattleFrontier_Lounge2_EventScript_BufferBattleDome call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_DOME, BattleFrontier_Lounge2_EventScript_BufferBattleDome
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 5, BattleFrontier_Lounge2_EventScript_BufferBattleFactory call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_FACTORY, BattleFrontier_Lounge2_EventScript_BufferBattleFactory
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 6, BattleFrontier_Lounge2_EventScript_BufferBattlePalace call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_PALACE, BattleFrontier_Lounge2_EventScript_BufferBattlePalace
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 7, BattleFrontier_Lounge2_EventScript_BufferBattleArena call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_ARENA, BattleFrontier_Lounge2_EventScript_BufferBattleArena
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 8, BattleFrontier_Lounge2_EventScript_BufferBattlePike call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_PIKE, BattleFrontier_Lounge2_EventScript_BufferBattlePike
call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 9, BattleFrontier_Lounge2_EventScript_BufferBattlePyramid call_if_eq VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_PYRAMID, BattleFrontier_Lounge2_EventScript_BufferBattlePyramid
call_if_le VAR_FRONTIER_MANIAC_FACILITY, 3, BattleFrontier_Lounge2_EventScript_BattleTowerNews @ <= FRONTIER_MANIAC_TOWER_LINK is any Battle Tower mode
call_if_ge VAR_FRONTIER_MANIAC_FACILITY, 4, BattleFrontier_Lounge2_EventScript_FacilityNews call_if_le VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_TOWER_LINK, BattleFrontier_Lounge2_EventScript_BattleTowerNews
@ >= FRONTIER_MANIAC_DOME is any facility other than Battle Tower
call_if_ge VAR_FRONTIER_MANIAC_FACILITY, FRONTIER_MANIAC_DOME, BattleFrontier_Lounge2_EventScript_FacilityNews
special ShowFrontierManiacMessage special ShowFrontierManiacMessage
waitmessage waitmessage
waitbuttonpress waitbuttonpress
@@ -33,8 +33,8 @@ EverGrandeCity_ChampionsRoom_EventScript_EnterRoom::
waitmovement 0 waitmovement 0
setvar VAR_TEMP_1, 1 setvar VAR_TEMP_1, 1
goto EverGrandeCity_ChampionsRoom_EventScript_Wallace goto EverGrandeCity_ChampionsRoom_EventScript_Wallace
releaseall releaseall
end end
EverGrandeCity_ChampionsRoom_Movement_PlayerApproachWallace: EverGrandeCity_ChampionsRoom_Movement_PlayerApproachWallace:
walk_up walk_up
@@ -19,7 +19,7 @@ FortreeCity_DecorationShop_EventScript_ClerkDesks::
release release
end end
.align 2 .align 2
FortreeCity_DecorationShop_PokemartDecor_Desks: FortreeCity_DecorationShop_PokemartDecor_Desks:
.2byte DECOR_SMALL_DESK .2byte DECOR_SMALL_DESK
.2byte DECOR_POKEMON_DESK .2byte DECOR_POKEMON_DESK
+1 -1
View File
@@ -25,7 +25,7 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "MeteorFalls_1F_1R_EventScript_ItemTM23", "script": "MeteorFalls_1F_1R_EventScript_ItemTM23",
"flag": "FLAG_ITEM_METEOR_FALLS_1F_1R_TM_23" "flag": "FLAG_ITEM_METEOR_FALLS_1F_1R_TM23"
}, },
{ {
"graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL",
+1 -1
View File
@@ -25,7 +25,7 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "MeteorFalls_B1F_2R_EventScript_ItemTM02", "script": "MeteorFalls_B1F_2R_EventScript_ItemTM02",
"flag": "FLAG_ITEM_METEOR_FALLS_B1F_2R_TM_02" "flag": "FLAG_ITEM_METEOR_FALLS_B1F_2R_TM02"
} }
], ],
"warp_events": [ "warp_events": [
+1 -1
View File
@@ -38,7 +38,7 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "MtPyre_6F_EventScript_ItemTM30", "script": "MtPyre_6F_EventScript_ItemTM30",
"flag": "FLAG_ITEM_MT_PYRE_6F_TM_30" "flag": "FLAG_ITEM_MT_PYRE_6F_TM30"
}, },
{ {
"graphics_id": "OBJ_EVENT_GFX_PSYCHIC_M", "graphics_id": "OBJ_EVENT_GFX_PSYCHIC_M",
+1 -1
View File
@@ -38,7 +38,7 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "MtPyre_Exterior_EventScript_ItemTM48", "script": "MtPyre_Exterior_EventScript_ItemTM48",
"flag": "FLAG_ITEM_MT_PYRE_EXTERIOR_TM_48" "flag": "FLAG_ITEM_MT_PYRE_EXTERIOR_TM48"
} }
], ],
"warp_events": [ "warp_events": [
+1 -1
View File
@@ -158,7 +158,7 @@
"y": 9, "y": 9,
"elevation": 0, "elevation": 0,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "OldaleTown_EventScript_CitySign" "script": "OldaleTown_EventScript_TownSign"
}, },
{ {
"type": "sign", "type": "sign",
+3 -3
View File
@@ -29,8 +29,8 @@ OldaleTown_EventScript_MoveMartEmployee::
setobjectmovementtype LOCALID_MART_EMPLOYEE, MOVEMENT_TYPE_FACE_DOWN setobjectmovementtype LOCALID_MART_EMPLOYEE, MOVEMENT_TYPE_FACE_DOWN
return return
OldaleTown_EventScript_CitySign:: OldaleTown_EventScript_TownSign::
msgbox OldaleTown_Text_CitySign, MSGBOX_SIGN msgbox OldaleTown_Text_TownSign, MSGBOX_SIGN
end end
OldaleTown_EventScript_Girl:: OldaleTown_EventScript_Girl::
@@ -395,7 +395,7 @@ OldaleTown_Text_BrendanLetsGoBack:
.string "LAB now.\l" .string "LAB now.\l"
.string "{PLAYER}, you should hustle back, too.$" .string "{PLAYER}, you should hustle back, too.$"
OldaleTown_Text_CitySign: OldaleTown_Text_TownSign:
.string "OLDALE TOWN\n" .string "OLDALE TOWN\n"
.string "“Where things start off scarce.”$" .string "“Where things start off scarce.”$"
+2 -2
View File
@@ -11,9 +11,9 @@ PacifidlogTown_House2_EventScript_FanClubYoungerBrother::
call_if_unset FLAG_MET_FANCLUB_YOUNGER_BROTHER, PacifidlogTown_House2_EventScript_FirstMonAssessment call_if_unset FLAG_MET_FANCLUB_YOUNGER_BROTHER, PacifidlogTown_House2_EventScript_FirstMonAssessment
setflag FLAG_MET_FANCLUB_YOUNGER_BROTHER setflag FLAG_MET_FANCLUB_YOUNGER_BROTHER
specialvar VAR_RESULT, GetLeadMonFriendshipScore specialvar VAR_RESULT, GetLeadMonFriendshipScore
goto_if_ge VAR_RESULT, 4, PacifidlogTown_House2_EventScript_GiveReturn goto_if_ge VAR_RESULT, FRIENDSHIP_150_TO_199, PacifidlogTown_House2_EventScript_GiveReturn
specialvar VAR_RESULT, GetLeadMonFriendshipScore specialvar VAR_RESULT, GetLeadMonFriendshipScore
goto_if_ge VAR_RESULT, 2, PacifidlogTown_House2_EventScript_PutInEffort goto_if_ge VAR_RESULT, FRIENDSHIP_50_TO_99, PacifidlogTown_House2_EventScript_PutInEffort
goto PacifidlogTown_House2_EventScript_GiveFrustration goto PacifidlogTown_House2_EventScript_GiveFrustration
end end
+1 -1
View File
@@ -262,7 +262,7 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "Route111_EventScript_ItemTM37", "script": "Route111_EventScript_ItemTM37",
"flag": "FLAG_ITEM_ROUTE_111_TM_37" "flag": "FLAG_ITEM_ROUTE_111_TM37"
}, },
{ {
"graphics_id": "OBJ_EVENT_GFX_BERRY_TREE", "graphics_id": "OBJ_EVENT_GFX_BERRY_TREE",
+1 -1
View File
@@ -144,7 +144,7 @@ Route111_EventScript_RootFossilDisappeared::
@ Unused @ Unused
Route111_Movement_PlayerFall:: Route111_Movement_PlayerFall::
store_lock_anim lock_anim
walk_fast_down walk_fast_down
walk_fast_down walk_fast_down
walk_fast_down walk_fast_down
+1 -1
View File
@@ -451,7 +451,7 @@
"y": 5, "y": 5,
"elevation": 3, "elevation": 3,
"item": "ITEM_TM32", "item": "ITEM_TM32",
"flag": "FLAG_HIDDEN_ITEM_ROUTE_113_TM_32" "flag": "FLAG_HIDDEN_ITEM_ROUTE_113_TM32"
}, },
{ {
"type": "hidden_item", "type": "hidden_item",
+1 -1
View File
@@ -166,7 +166,7 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "Route115_EventScript_ItemTM01", "script": "Route115_EventScript_ItemTM01",
"flag": "FLAG_ITEM_ROUTE_115_TM_01" "flag": "FLAG_ITEM_ROUTE_115_TM01"
}, },
{ {
"graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL",
+1 -1
View File
@@ -49,7 +49,7 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "SafariZone_Northwest_EventScript_ItemTM22", "script": "SafariZone_Northwest_EventScript_ItemTM22",
"flag": "FLAG_ITEM_SAFARI_ZONE_NORTH_WEST_TM_22" "flag": "FLAG_ITEM_SAFARI_ZONE_NORTH_WEST_TM22"
} }
], ],
"warp_events": [], "warp_events": [],
+1 -1
View File
@@ -25,7 +25,7 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "ScorchedSlab_EventScript_ItemTM11", "script": "ScorchedSlab_EventScript_ItemTM11",
"flag": "FLAG_ITEM_SCORCHED_SLAB_TM_11" "flag": "FLAG_ITEM_SCORCHED_SLAB_TM11"
} }
], ],
"warp_events": [ "warp_events": [
+1 -1
View File
@@ -90,7 +90,7 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "SeafloorCavern_Room9_EventScript_ItemTM26", "script": "SeafloorCavern_Room9_EventScript_ItemTM26",
"flag": "FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_TM_26" "flag": "FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_TM26"
}, },
{ {
"graphics_id": "OBJ_EVENT_GFX_KYOGRE_ASLEEP", "graphics_id": "OBJ_EVENT_GFX_KYOGRE_ASLEEP",
+1 -1
View File
@@ -25,7 +25,7 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "ShoalCave_LowTideIceRoom_EventScript_ItemTM07", "script": "ShoalCave_LowTideIceRoom_EventScript_ItemTM07",
"flag": "FLAG_ITEM_SHOAL_CAVE_ICE_ROOM_TM_07" "flag": "FLAG_ITEM_SHOAL_CAVE_ICE_ROOM_TM07"
}, },
{ {
"graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL",
+1 -1
View File
@@ -56,7 +56,7 @@
"x": 14, "x": 14,
"y": 9, "y": 9,
"elevation": 3, "elevation": 3,
"var": "VAR_SKY_PILLAR_RAQUAZA_CRY_DONE", "var": "VAR_SKY_PILLAR_RAYQUAZA_CRY_DONE",
"var_value": "0", "var_value": "0",
"script": "SkyPillar_Top_EventScript_AwakenRayquaza" "script": "SkyPillar_Top_EventScript_AwakenRayquaza"
} }
+1 -1
View File
@@ -128,7 +128,7 @@ SkyPillar_Top_EventScript_AwakenRayquaza::
special RemoveCameraObject special RemoveCameraObject
setvar VAR_SOOTOPOLIS_CITY_STATE, 5 setvar VAR_SOOTOPOLIS_CITY_STATE, 5
setvar VAR_SKY_PILLAR_STATE, 1 setvar VAR_SKY_PILLAR_STATE, 1
setvar VAR_SKY_PILLAR_RAQUAZA_CRY_DONE, 1 setvar VAR_SKY_PILLAR_RAYQUAZA_CRY_DONE, 1
releaseall releaseall
end end
@@ -192,7 +192,7 @@ SlateportCity_PokemonFanClub_EventScript_SootheBellWoman::
goto_if_set FLAG_RECEIVED_SOOTHE_BELL, SlateportCity_PokemonFanClub_EventScript_ReceivedSootheBell goto_if_set FLAG_RECEIVED_SOOTHE_BELL, SlateportCity_PokemonFanClub_EventScript_ReceivedSootheBell
msgbox SlateportCity_PokemonFanClub_Text_ShowMePokemonThatLoveYou, MSGBOX_DEFAULT msgbox SlateportCity_PokemonFanClub_Text_ShowMePokemonThatLoveYou, MSGBOX_DEFAULT
specialvar VAR_RESULT, GetLeadMonFriendshipScore specialvar VAR_RESULT, GetLeadMonFriendshipScore
goto_if_ge VAR_RESULT, 4, SlateportCity_PokemonFanClub_EventScript_GiveSootheBell goto_if_ge VAR_RESULT, FRIENDSHIP_150_TO_199, SlateportCity_PokemonFanClub_EventScript_GiveSootheBell
release release
end end
+1 -1
View File
@@ -157,7 +157,7 @@ TrainerHill_Entrance_EventScript_ChooseChallenge::
switch VAR_RESULT switch VAR_RESULT
case 4, TrainerHill_Entrance_EventScript_CancelEntry case 4, TrainerHill_Entrance_EventScript_CancelEntry
case MULTI_B_PRESSED, TrainerHill_Entrance_EventScript_CancelEntry case MULTI_B_PRESSED, TrainerHill_Entrance_EventScript_CancelEntry
trainerhill_settag VAR_RESULT trainerhill_setmode VAR_RESULT
setvar VAR_TRAINER_HILL_IS_ACTIVE, 1 setvar VAR_TRAINER_HILL_IS_ACTIVE, 1
setvar VAR_TEMP_5, 0 setvar VAR_TEMP_5, 0
special HealPlayerParty special HealPlayerParty
@@ -7,13 +7,13 @@ VerdanturfTown_FriendshipRatersHouse_EventScript_FriendshipRater::
msgbox VerdanturfTown_FriendshipRatersHouse_Text_SeeHowMuchPokemonLikesYou, MSGBOX_DEFAULT msgbox VerdanturfTown_FriendshipRatersHouse_Text_SeeHowMuchPokemonLikesYou, MSGBOX_DEFAULT
specialvar VAR_RESULT, GetLeadMonFriendshipScore specialvar VAR_RESULT, GetLeadMonFriendshipScore
switch VAR_RESULT switch VAR_RESULT
case 0, VerdanturfTown_FriendshipRatersHouse_EventScript_DetestsYou case FRIENDSHIP_NONE, VerdanturfTown_FriendshipRatersHouse_EventScript_DetestsYou
case 1, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryWary case FRIENDSHIP_1_TO_49, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryWary
case 2, VerdanturfTown_FriendshipRatersHouse_EventScript_NotUsedToYou case FRIENDSHIP_50_TO_99, VerdanturfTown_FriendshipRatersHouse_EventScript_NotUsedToYou
case 3, VerdanturfTown_FriendshipRatersHouse_EventScript_GettingUsedToYou case FRIENDSHIP_100_TO_149, VerdanturfTown_FriendshipRatersHouse_EventScript_GettingUsedToYou
case 4, VerdanturfTown_FriendshipRatersHouse_EventScript_LikesYouQuiteALot case FRIENDSHIP_150_TO_199, VerdanturfTown_FriendshipRatersHouse_EventScript_LikesYouQuiteALot
case 5, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryHappy case FRIENDSHIP_200_TO_254, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryHappy
case 6, VerdanturfTown_FriendshipRatersHouse_EventScript_AdoresYou case FRIENDSHIP_MAX, VerdanturfTown_FriendshipRatersHouse_EventScript_AdoresYou
release release
end end
+1 -1
View File
@@ -246,7 +246,7 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "VictoryRoad_B1F_EventScript_ItemTM29", "script": "VictoryRoad_B1F_EventScript_ItemTM29",
"flag": "FLAG_ITEM_VICTORY_ROAD_B1F_TM_29" "flag": "FLAG_ITEM_VICTORY_ROAD_B1F_TM29"
}, },
{ {
"graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL",
+1 -1
View File
@@ -12,7 +12,7 @@ MysteryGiftScript_AlteringCave_:
release release
end end
sText_MysteryGiftAlteringCave:: sText_MysteryGiftAlteringCave:
.string "Thank you for using the MYSTERY\n" .string "Thank you for using the MYSTERY\n"
.string "GIFT System.\p" .string "GIFT System.\p"
.string "There appears to be a rumor about\n" .string "There appears to be a rumor about\n"
+1 -1
View File
@@ -315,7 +315,7 @@ MauvilleCity_PokemonCenter_1F_Text_TrendsStartedStory::
.string "the HOENN region!$" .string "the HOENN region!$"
MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedTitle:: MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedTitle::
.string "The BERRY-Planting TRAINER$" .string "The BERRY-Planting TRAINER$"
MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedAction:: MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedAction::
.string "Planted BERRIES$" .string "Planted BERRIES$"
+1 -1
View File
@@ -38,7 +38,7 @@ EventScript_ResetAllBerries::
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_3, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES setberrytree BERRY_TREE_ROUTE_117_WEPEAR_3, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_2, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES setberrytree BERRY_TREE_ROUTE_117_WEPEAR_2, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_1, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES setberrytree BERRY_TREE_ROUTE_117_WEPEAR_1, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
@ Route 112 @ Route 112
setberrytree BERRY_TREE_ROUTE_112_RAWST_2, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES setberrytree BERRY_TREE_ROUTE_112_RAWST_2, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES
setberrytree BERRY_TREE_ROUTE_112_PECHA_2, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES setberrytree BERRY_TREE_ROUTE_112_PECHA_2, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
+1 -1
View File
@@ -22,7 +22,7 @@ Roulette_EventScript_Play::
special PlayRoulette special PlayRoulette
waitstate waitstate
end end
Roulette_Text_PlayMinimumWagerIsX:: Roulette_Text_PlayMinimumWagerIsX::
.string "The minimum wager at this table\n" .string "The minimum wager at this table\n"
.string "is {STR_VAR_1}. Do you want to play?$" .string "is {STR_VAR_1}. Do you want to play?$"
+94 -47
View File
@@ -4,145 +4,192 @@ gText_HighlyAppealingMove::
.string "A highly appealing move.$" .string "A highly appealing move.$"
gText_UserMoreEasilyStartled:: gText_UserMoreEasilyStartled::
.string "After this move, the user is\nmore easily startled.$" .string "After this move, the user is\n"
.string "more easily startled.$"
gText_GreatAppealButNoMoreToEnd:: gText_GreatAppealButNoMoreToEnd::
.string "Makes a great appeal, but\nallows no more to the end.$" .string "Makes a great appeal, but\n"
.string "allows no more to the end.$"
gText_UsedRepeatedlyWithoutBoringJudge:: gText_UsedRepeatedlyWithoutBoringJudge::
.string "Can be repeatedly used\nwithout boring the JUDGE.$" .string "Can be repeatedly used\n"
.string "without boring the JUDGE.$"
gText_AvoidStartledByOthersOnce:: gText_AvoidStartledByOthersOnce::
.string "Can avoid being startled\nby others once.$" .string "Can avoid being startled\n"
.string "by others once.$"
gText_AvoidStartledByOthers:: gText_AvoidStartledByOthers::
.string "Can avoid being startled\nby others.$" .string "Can avoid being startled\n"
.string "by others.$"
gText_AvoidStartledByOthersLittle:: gText_AvoidStartledByOthersLittle::
.string "Can avoid being startled\nby others a little.$" .string "Can avoid being startled\n"
.string "by others a little.$"
gText_UserLessLikelyStartled:: gText_UserLessLikelyStartled::
.string "After this move, the user is\nless likely to be startled.$" .string "After this move, the user is\n"
.string "less likely to be startled.$"
gText_SlightlyStartleFrontMon:: gText_SlightlyStartleFrontMon::
.string "Slightly startles the\nPOKéMON in front.$" .string "Slightly startles the\n"
.string "POKéMON in front.$"
gText_SlightlyStartleAppealed:: gText_SlightlyStartleAppealed::
.string "Slightly startles those\nthat have made appeals.$" .string "Slightly startles those\n"
.string "that have made appeals.$"
gText_StartleAppealedBeforeUser:: gText_StartleAppealedBeforeUser::
.string "Startles the POKéMON that\nappealed before the user.$" .string "Startles the POKéMON that\n"
.string "appealed before the user.$"
gText_StartleAllAppealed:: gText_StartleAllAppealed::
.string "Startles all POKéMON that\nhave done their appeals.$" .string "Startles all POKéMON that\n"
.string "have done their appeals.$"
gText_BadlyStartleFrontMon:: gText_BadlyStartleFrontMon::
.string "Badly startles the\nPOKéMON in front.$" .string "Badly startles the\n"
.string "POKéMON in front.$"
gText_BadlyStartleAppealed:: gText_BadlyStartleAppealed::
.string "Badly startles those that\nhave made appeals.$" .string "Badly startles those that\n"
.string "have made appeals.$"
gText_StartleAppealedBeforeUser2:: gText_StartleAppealedBeforeUser2::
.string "Startles the POKéMON that\nappealed before the user.$" .string "Startles the POKéMON that\n"
.string "appealed before the user.$"
gText_StartleAllAppealed2:: gText_StartleAllAppealed2::
.string "Startles all POKéMON that\nhave done their appeals.$" .string "Startles all POKéMON that\n"
.string "have done their appeals.$"
gText_ShiftJudgesAttentionFromOthers:: gText_ShiftJudgesAttentionFromOthers::
.string "Shifts the JUDGE's\nattention from others.$" .string "Shifts the JUDGE's\n"
.string "attention from others.$"
gText_StartleMonHasJudgesAttention:: gText_StartleMonHasJudgesAttention::
.string "Startles the POKéMON that\nhas the JUDGE's attention.$" .string "Startles the POKéMON that\n"
.string "has the JUDGE's attention.$"
gText_JamOthersMissesTurn:: gText_JamOthersMissesTurn::
.string "Jams the others, and misses\none turn of appeals.$" .string "Jams the others, and misses\n"
.string "one turn of appeals.$"
gText_StartleMonsMadeSameTypeAppeal:: gText_StartleMonsMadeSameTypeAppeal::
.string "Startles POKéMON that\nmade a same-type appeal.$" .string "Startles POKéMON that\n"
.string "made a same-type appeal.$"
gText_BadlyStartleCoolAppeals:: gText_BadlyStartleCoolAppeals::
.string "Badly startles POKéMON\nthat made COOL appeals.$" .string "Badly startles POKéMON\n"
.string "that made COOL appeals.$"
gText_BadlyStartleBeautyAppeals:: gText_BadlyStartleBeautyAppeals::
.string "Badly startles POKéMON\nthat made BEAUTY appeals.$" .string "Badly startles POKéMON\n"
.string "that made BEAUTY appeals.$"
gText_BadlyStartleCuteAppeals:: gText_BadlyStartleCuteAppeals::
.string "Badly startles POKéMON\nthat made CUTE appeals.$" .string "Badly startles POKéMON\n"
.string "that made CUTE appeals.$"
gText_BadlyStartleSmartAppeals:: gText_BadlyStartleSmartAppeals::
.string "Badly startles POKéMON\nthat made SMART appeals.$" .string "Badly startles POKéMON\n"
.string "that made SMART appeals.$"
gText_BadlyStartleToughAppeals:: gText_BadlyStartleToughAppeals::
.string "Badly startles POKéMON\nthat made TOUGH appeals.$" .string "Badly startles POKéMON\n"
.string "that made TOUGH appeals.$"
gText_MakeMonAfterUserNervous:: gText_MakeMonAfterUserNervous::
.string "Makes one POKéMON after\nthe user nervous.$" .string "Makes one POKéMON after\n"
.string "the user nervous.$"
gText_MakeAllMonsAfterUserNervous:: gText_MakeAllMonsAfterUserNervous::
.string "Makes all POKéMON after\nthe user nervous.$" .string "Makes all POKéMON after\n"
.string "the user nervous.$"
gText_WorsenConditionOfThoseMadeAppeals:: gText_WorsenConditionOfThoseMadeAppeals::
.string "Worsens the condition of\nthose that made appeals.$" .string "Worsens the condition of\n"
.string "those that made appeals.$"
gText_BadlyStartleMonsGoodCondition:: gText_BadlyStartleMonsGoodCondition::
.string "Badly startles POKéMON in\ngood condition.$" .string "Badly startles POKéMON in\n"
.string "good condition.$"
gText_AppealGreatIfPerformedFirst:: gText_AppealGreatIfPerformedFirst::
.string "The appeal works great if\nperformed first.$" .string "The appeal works great if\n"
.string "performed first.$"
gText_AppealGreatIfPerformedLast:: gText_AppealGreatIfPerformedLast::
.string "The appeal works great if\nperformed last.$" .string "The appeal works great if\n"
.string "performed last.$"
gText_AppealAsGoodAsThoseBeforeIt:: gText_AppealAsGoodAsThoseBeforeIt::
.string "Makes the appeal as good\nas those before it.$" .string "Makes the appeal as good\n"
.string "as those before it.$"
gText_AppealAsGoodAsOneBeforeIt:: gText_AppealAsGoodAsOneBeforeIt::
.string "Makes the appeal as good\nas the one before it.$" .string "Makes the appeal as good\n"
.string "as the one before it.$"
gText_AppealBetterLaterItsPerformed:: gText_AppealBetterLaterItsPerformed::
.string "The appeal works better\nthe later it is performed.$" .string "The appeal works better\n"
.string "the later it is performed.$"
gText_AppealVariesDependingOnTiming:: gText_AppealVariesDependingOnTiming::
.string "The appeal's quality varies\ndepending on its timing.$" .string "The appeal's quality varies\n"
.string "depending on its timing.$"
gText_WorksWellIfSameTypeAsBefore:: gText_WorksWellIfSameTypeAsBefore::
.string "Works well if it's the same\ntype as the one before.$" .string "Works well if it's the same\n"
.string "type as the one before.$"
gText_WorksWellIfDifferentTypeAsBefore:: gText_WorksWellIfDifferentTypeAsBefore::
.string "Works well if different in\ntype than the one before.$" .string "Works well if different in\n"
.string "type than the one before.$"
gText_AffectedByAppealInFront:: gText_AffectedByAppealInFront::
.string "Affected by how well the\nappeal in front goes.$" .string "Affected by how well the\n"
.string "appeal in front goes.$"
gText_UpsConditionHelpsPreventNervousness:: gText_UpsConditionHelpsPreventNervousness::
.string "Ups the user's condition.\nHelps prevent nervousness.$" .string "Ups the user's condition.\n"
.string "Helps prevent nervousness.$"
gText_AppealWorksWellIfConditionGood:: gText_AppealWorksWellIfConditionGood::
.string "The appeal works well if the\nuser's condition is good.$" .string "The appeal works well if the\n"
.string "user's condition is good.$"
gText_NextAppealMadeEarlier:: gText_NextAppealMadeEarlier::
.string "The next appeal can be\nmade earlier next turn.$" .string "The next appeal can be\n"
.string "made earlier next turn.$"
gText_NextAppealMadeLater:: gText_NextAppealMadeLater::
.string "The next appeal can be\nmade later next turn.$" .string "The next appeal can be\n"
.string "made later next turn.$"
gText_TurnOrderMoreEasilyScrambled:: gText_TurnOrderMoreEasilyScrambled::
.string "Makes the next turn's order\nmore easily scrambled.$" .string "Makes the next turn's order\n"
.string "more easily scrambled.$"
gText_ScrambleOrderOfNextAppeals:: gText_ScrambleOrderOfNextAppeals::
.string "Scrambles the order of\nappeals on the next turn.$" .string "Scrambles the order of\n"
.string "appeals on the next turn.$"
gText_AppealExcitesAudienceInAnyContest:: gText_AppealExcitesAudienceInAnyContest::
.string "An appeal that excites the\naudience in any CONTEST.$" .string "An appeal that excites the\n"
.string "audience in any CONTEST.$"
gText_BadlyStartlesMonsGoodAppeals:: gText_BadlyStartlesMonsGoodAppeals::
.string "Badly startles all POKéMON\nthat made good appeals.$" .string "Badly startles all POKéMON\n"
.string "that made good appeals.$"
gText_AppealBestMoreCrowdExcited:: gText_AppealBestMoreCrowdExcited::
.string "The appeal works best the\nmore the crowd is excited.$" .string "The appeal works best the\n"
.string "more the crowd is excited.$"
gText_TemporarilyStopCrowdExcited:: gText_TemporarilyStopCrowdExcited::
.string "Temporarily stops the\ncrowd from growing excited.$" .string "Temporarily stops the\n"
.string "crowd from growing excited.$"
@ Unused move names @ Unused move names
+52 -52
View File
@@ -1,71 +1,71 @@
EventTicket_Text_OldSeaMapTooFar: EventTicket_Text_OldSeaMapTooFar:
.string "What's up, youngster?\p" .string "What's up, youngster?\p"
.string "What, it's you who's supposed to have\n" .string "What, it's you who's supposed to have\n"
.string "a tattered old map?\p" .string "a tattered old map?\p"
.string "Let's have a look.\n" .string "Let's have a look.\n"
.string "… … … … … …\p" .string "… … … … … …\p"
.string "Boy, this is quite a ways away.\n" .string "Boy, this is quite a ways away.\n"
.string "I'm afraid I can't help you…$" .string "I'm afraid I can't help you…$"
EventTicket_Text_BrineyHoldOnASecond: EventTicket_Text_BrineyHoldOnASecond:
.string "BRINEY: Hold on a second!\p" .string "BRINEY: Hold on a second!\p"
.string "What's the idea of turning down\n" .string "What's the idea of turning down\n"
.string "someone that I owe so much to?$" .string "someone that I owe so much to?$"
EventTicket_Text_BrineyLetsSail: EventTicket_Text_BrineyLetsSail:
.string "{PLAYER}{KUN}, I'm terribly sorry.\p" .string "{PLAYER}{KUN}, I'm terribly sorry.\p"
.string "You came to me seeking my help,\n" .string "You came to me seeking my help,\n"
.string "and we almost turned you away.\p" .string "and we almost turned you away.\p"
.string "Well, let me make things right.\p" .string "Well, let me make things right.\p"
.string "We'll sail right away, of course!\p" .string "We'll sail right away, of course!\p"
.string "Let's find this island on\n" .string "Let's find this island on\n"
.string "this OLD SEA MAP!$" .string "this OLD SEA MAP!$"
EventTicket_Text_OddTicketGetOnBoard: EventTicket_Text_OddTicketGetOnBoard:
.string "Is it you who brought that odd\n" .string "Is it you who brought that odd\n"
.string "ticket?\p" .string "ticket?\p"
.string "Where you're trying to go is an island\n" .string "Where you're trying to go is an island\n"
.string "that's far, far away.\p" .string "that's far, far away.\p"
.string "No one knows what awaits there…\p" .string "No one knows what awaits there…\p"
.string "The very thought excites my blood\n" .string "The very thought excites my blood\n"
.string "as a sailing man!\p" .string "as a sailing man!\p"
.string "Get on board, youngster!$" .string "Get on board, youngster!$"
FarawayIsland_Entrance_Text_SailorReturn: FarawayIsland_Entrance_Text_SailorReturn:
.string "CAPT. BRINEY can be so maddeningly\n" .string "CAPT. BRINEY can be so maddeningly\n"
.string "fickle…\p" .string "fickle…\p"
.string "Do you want to return to LILYCOVE?$" .string "Do you want to return to LILYCOVE?$"
BirthIsland_Harbor_Text_SailorReturn: BirthIsland_Harbor_Text_SailorReturn:
.string "What an oddly shaped island, eh?\n" .string "What an oddly shaped island, eh?\n"
.string "Do you want to return to LILYCOVE?$" .string "Do you want to return to LILYCOVE?$"
EventTicket_Text_OddTicketsWhereTo: EventTicket_Text_OddTicketsWhereTo:
.string "Is it you who brought those\n" .string "Is it you who brought those\n"
.string "odd tickets?\p" .string "odd tickets?\p"
.string "… … …Hm.\p" .string "… … …Hm.\p"
.string "These tickets will get you to islands\n" .string "These tickets will get you to islands\n"
.string "that are far, far away.\p" .string "that are far, far away.\p"
.string "No one knows what awaits there,\n" .string "No one knows what awaits there,\n"
.string "or what may happen there.\p" .string "or what may happen there.\p"
.string "The very thought excites my blood\n" .string "The very thought excites my blood\n"
.string "as a sailing man!\p" .string "as a sailing man!\p"
.string "Get on board, youngster!\n" .string "Get on board, youngster!\n"
.string "Where shall we sail first?$" .string "Where shall we sail first?$"
NavelRock_Harbor_Text_SailorReturn: NavelRock_Harbor_Text_SailorReturn:
.string "Did… Did you hear that?\n" .string "Did… Did you hear that?\n"
.string "That low growling from deep in there.\p" .string "That low growling from deep in there.\p"
.string "Are you sure it's safe?\n" .string "Are you sure it's safe?\n"
.string "Do you think we should leave?$" .string "Do you think we should leave?$"
FarawayIsland_Entrance_Text_Sign: FarawayIsland_Entrance_Text_Sign:
.string "The writing is fading as if it was\n" .string "The writing is fading as if it was\n"
.string "written a long time ago…\p" .string "written a long time ago…\p"
.string "“…ber, 6th day\n" .string "“…ber, 6th day\n"
.string "If any human…sets foot here…\l" .string "If any human…sets foot here…\l"
.string "again…et it be a kindhearted pers…\l" .string "again…et it be a kindhearted pers…\l"
.string "…ith that hope, I depar…”$" .string "…ith that hope, I depar…”$"
FarawayIsland_Interior_Text_Mew: FarawayIsland_Interior_Text_Mew:
.string "Myuu…$" .string "Myuu…$"
+2 -1
View File
@@ -5,7 +5,8 @@ gText_PkmnTransferredSomeonesPC::
.string "BOX “{STR_VAR_1}.”$" .string "BOX “{STR_VAR_1}.”$"
gText_PkmnTransferredLanettesPC:: gText_PkmnTransferredLanettesPC::
.string "{STR_VAR_2} was transferred to\nLANETTE'S PC.\p" .string "{STR_VAR_2} was transferred to\n"
.string "LANETTE'S PC.\p"
.string "It was placed in \n" .string "It was placed in \n"
.string "BOX “{STR_VAR_1}.”$" .string "BOX “{STR_VAR_1}.”$"
+32 -32
View File
@@ -1,51 +1,51 @@
gText_WouldYouLikeToRestYourPkmn:: gText_WouldYouLikeToRestYourPkmn::
.string "Hello, and welcome to\n" .string "Hello, and welcome to\n"
.string "the POKéMON CENTER.\p" .string "the POKéMON CENTER.\p"
.string "We restore your tired POKéMON\n" .string "We restore your tired POKéMON\n"
.string "to full health.\p" .string "to full health.\p"
.string "Would you like to rest your POKéMON?$" .string "Would you like to rest your POKéMON?$"
gText_IllTakeYourPkmn:: gText_IllTakeYourPkmn::
.string "Okay, I'll take your POKéMON\n" .string "Okay, I'll take your POKéMON\n"
.string "for a few seconds.$" .string "for a few seconds.$"
gText_RestoredPkmnToFullHealth:: gText_RestoredPkmnToFullHealth::
.string "Thank you for waiting.\p" .string "Thank you for waiting.\p"
.string "We've restored your POKéMON\n" .string "We've restored your POKéMON\n"
.string "to full health.$" .string "to full health.$"
gText_WeHopeToSeeYouAgain:: gText_WeHopeToSeeYouAgain::
.string "We hope to see you again!$" .string "We hope to see you again!$"
gText_WelcomeCutShort:: gText_WelcomeCutShort::
.string "Hello, and welcome to\n" .string "Hello, and welcome to\n"
.string "the POKéMON CENTER.\p" .string "the POKéMON CENTER.\p"
.string "We restore your tired POKéMON\n" .string "We restore your tired POKéMON\n"
.string "to full health.\p" .string "to full health.\p"
.string "Would you like to…$" .string "Would you like to…$"
gText_NoticesGoldCard:: gText_NoticesGoldCard::
.string "Th-that card…\n" .string "Th-that card…\n"
.string "Could it be… The GOLD CARD?!\p" .string "Could it be… The GOLD CARD?!\p"
.string "Oh, the gold color is brilliant!\n" .string "Oh, the gold color is brilliant!\n"
.string "The four stars seem to sparkle!\p" .string "The four stars seem to sparkle!\p"
.string "I've seen several TRAINERS with\n" .string "I've seen several TRAINERS with\n"
.string "a SILVER CARD before, but, {PLAYER},\l" .string "a SILVER CARD before, but, {PLAYER},\l"
.string "you're the first TRAINER I've ever\l" .string "you're the first TRAINER I've ever\l"
.string "seen with a GOLD CARD!\p" .string "seen with a GOLD CARD!\p"
.string "Okay, {PLAYER}, please allow me\n" .string "Okay, {PLAYER}, please allow me\n"
.string "the honor of resting your POKéMON!$" .string "the honor of resting your POKéMON!$"
gText_YouWantTheUsual:: gText_YouWantTheUsual::
.string "I'm delighted to see you, {PLAYER}!\n" .string "I'm delighted to see you, {PLAYER}!\n"
.string "You want the usual, am I right?$" .string "You want the usual, am I right?$"
gText_IllTakeYourPkmn2:: gText_IllTakeYourPkmn2::
.string "Okay, I'll take your POKéMON\n" .string "Okay, I'll take your POKéMON\n"
.string "for a few seconds.$" .string "for a few seconds.$"
gText_ThankYouForWaiting:: gText_ThankYouForWaiting::
.string "Thank you for waiting.$" .string "Thank you for waiting.$"
gText_WeHopeToSeeYouAgain2:: gText_WeHopeToSeeYouAgain2::
.string "We hope to see you again!$" .string "We hope to see you again!$"
+1 -1
View File
@@ -3,7 +3,7 @@ gBirchDexRatingText_AreYouCurious::
.string "Are you curious about how your\n" .string "Are you curious about how your\n"
.string "POKéDEX is coming along?$" .string "POKéDEX is coming along?$"
gBirchDexRatingText_Cancel: gBirchDexRatingText_Cancel::
.string "Hm? Oh, you haven't caught enough\n" .string "Hm? Oh, you haven't caught enough\n"
.string "POKéMON to make it worthwhile.$" .string "POKéMON to make it worthwhile.$"
+167 -167
View File
@@ -1,286 +1,286 @@
SecretBase_Text_Trainer0Intro: SecretBase_Text_Trainer0Intro:
.string "Have you made a SECRET BASE already?\p" .string "Have you made a SECRET BASE already?\p"
.string "I went here, there, everywhere before\n" .string "I went here, there, everywhere before\n"
.string "choosing this place.\p" .string "choosing this place.\p"
.string "Since you're already here, how would\n" .string "Since you're already here, how would\n"
.string "you like to battle?$" .string "you like to battle?$"
SecretBase_Text_Trainer0AcceptBattle: SecretBase_Text_Trainer0AcceptBattle:
.string "Okay!\n" .string "Okay!\n"
.string "Here we come!$" .string "Here we come!$"
SecretBase_Text_Trainer0DeclineBattle: SecretBase_Text_Trainer0DeclineBattle:
.string "Hunh?\n" .string "Hunh?\n"
.string "Oh, you can't now…$" .string "Oh, you can't now…$"
SecretBase_Text_Trainer0Defeated:: SecretBase_Text_Trainer0Defeated::
.string "Waaargh! You're too strong!\n" .string "Waaargh! You're too strong!\n"
.string "About me losing… Please keep it secret!$" .string "About me losing… Please keep it secret!$"
SecretBase_Text_Trainer0PostBattle: SecretBase_Text_Trainer0PostBattle:
.string "What do you think of my SECRET BASE?\n" .string "What do you think of my SECRET BASE?\n"
.string "Come visit me again tomorrow.$" .string "Come visit me again tomorrow.$"
SecretBase_Text_Trainer0PreChampion: SecretBase_Text_Trainer0PreChampion:
.string "Have you made a SECRET BASE already?\p" .string "Have you made a SECRET BASE already?\p"
.string "I went here, there, everywhere before\n" .string "I went here, there, everywhere before\n"
.string "choosing this place.\p" .string "choosing this place.\p"
.string "Feel free to hang out!$" .string "Feel free to hang out!$"
SecretBase_Text_Trainer5Intro: SecretBase_Text_Trainer5Intro:
.string "There're a lot of places where\n" .string "There're a lot of places where\n"
.string "you can make a SECRET BASE.\p" .string "you can make a SECRET BASE.\p"
.string "But I like this spot best.\n" .string "But I like this spot best.\n"
.string "Don't you think it's nice?\p" .string "Don't you think it's nice?\p"
.string "Oh, would you like to have a battle?$" .string "Oh, would you like to have a battle?$"
SecretBase_Text_Trainer5AcceptBattle: SecretBase_Text_Trainer5AcceptBattle:
.string "Okay, here goes!$" .string "Okay, here goes!$"
SecretBase_Text_Trainer5DeclineBattle: SecretBase_Text_Trainer5DeclineBattle:
.string "Oh…\n" .string "Oh…\n"
.string "You can't now, okay.$" .string "You can't now, okay.$"
SecretBase_Text_Trainer5Defeated:: SecretBase_Text_Trainer5Defeated::
.string "Hmmm… It's our loss…\n" .string "Hmmm… It's our loss…\n"
.string "But don't tell anyone!\l" .string "But don't tell anyone!\l"
.string "It's a confidential secret!$" .string "It's a confidential secret!$"
SecretBase_Text_Trainer5PostBattle: SecretBase_Text_Trainer5PostBattle:
.string "If you're in this area again,\n" .string "If you're in this area again,\n"
.string "I hope you'll visit me.$" .string "I hope you'll visit me.$"
SecretBase_Text_Trainer5PreChampion: SecretBase_Text_Trainer5PreChampion:
.string "There're a lot of places where you can\n" .string "There're a lot of places where you can\n"
.string "make a SECRET BASE.\p" .string "make a SECRET BASE.\p"
.string "But I like this spot best.\n" .string "But I like this spot best.\n"
.string "Don't you think it's nice?$" .string "Don't you think it's nice?$"
SecretBase_Text_Trainer1Intro: SecretBase_Text_Trainer1Intro:
.string "This is a popular spot.\n" .string "This is a popular spot.\n"
.string "It's always taken.\p" .string "It's always taken.\p"
.string "Oh! Were you thinking about\n" .string "Oh! Were you thinking about\n"
.string "taking this spot, too?\p" .string "taking this spot, too?\p"
.string "I'll tell you what, you can have this\n" .string "I'll tell you what, you can have this\n"
.string "spot if you can beat me.$" .string "spot if you can beat me.$"
SecretBase_Text_Trainer1AcceptBattle: SecretBase_Text_Trainer1AcceptBattle:
.string "Okay!\n" .string "Okay!\n"
.string "I'm going to defend my SECRET BASE!$" .string "I'm going to defend my SECRET BASE!$"
SecretBase_Text_Trainer1DeclineBattle: SecretBase_Text_Trainer1DeclineBattle:
.string "Hunh? Is that right?\n" .string "Hunh? Is that right?\n"
.string "You're not interested in this spot?$" .string "You're not interested in this spot?$"
SecretBase_Text_Trainer1Defeated:: SecretBase_Text_Trainer1Defeated::
.string "I can't keep going!\n" .string "I can't keep going!\n"
.string "I surrender!$" .string "I surrender!$"
SecretBase_Text_Trainer1PostBattle: SecretBase_Text_Trainer1PostBattle:
.string "Okay, when I move one day,\n" .string "Okay, when I move one day,\n"
.string "this place will be yours!$" .string "this place will be yours!$"
SecretBase_Text_Trainer1PreChampion: SecretBase_Text_Trainer1PreChampion:
.string "This is a popular spot.\n" .string "This is a popular spot.\n"
.string "It's always taken.\p" .string "It's always taken.\p"
.string "I waited a long time for it to open.\n" .string "I waited a long time for it to open.\n"
.string "I finally got to use it!$" .string "I finally got to use it!$"
SecretBase_Text_Trainer6Intro: SecretBase_Text_Trainer6Intro:
.string "Welcome to my POKéMON LAB.\p" .string "Welcome to my POKéMON LAB.\p"
.string "I carry out research on battling in\n" .string "I carry out research on battling in\n"
.string "secrecy.\p" .string "secrecy.\p"
.string "Would you like to see how strong I am?$" .string "Would you like to see how strong I am?$"
SecretBase_Text_Trainer6AcceptBattle: SecretBase_Text_Trainer6AcceptBattle:
.string "I'm going to go all out!$" .string "I'm going to go all out!$"
SecretBase_Text_Trainer6DeclineBattle: SecretBase_Text_Trainer6DeclineBattle:
.string "Oh.\n" .string "Oh.\n"
.string "Some other time, then!$" .string "Some other time, then!$"
SecretBase_Text_Trainer6Defeated:: SecretBase_Text_Trainer6Defeated::
.string "Hmm… I've still got lots to learn.\n" .string "Hmm… I've still got lots to learn.\n"
.string "I have to study some more.$" .string "I have to study some more.$"
SecretBase_Text_Trainer6PostBattle: SecretBase_Text_Trainer6PostBattle:
.string "Thanks for battling with me.\n" .string "Thanks for battling with me.\n"
.string "Please come back again tomorrow.$" .string "Please come back again tomorrow.$"
SecretBase_Text_Trainer6PreChampion: SecretBase_Text_Trainer6PreChampion:
.string "Welcome to my POKéMON LAB.\p" .string "Welcome to my POKéMON LAB.\p"
.string "I carry out research on battling in\n" .string "I carry out research on battling in\n"
.string "secrecy.$" .string "secrecy.$"
SecretBase_Text_Trainer2Intro: SecretBase_Text_Trainer2Intro:
.string "A big mansion is nice, but I like this\n" .string "A big mansion is nice, but I like this\n"
.string "sort of place more.\p" .string "sort of place more.\p"
.string "I like it because all kinds of people\n" .string "I like it because all kinds of people\n"
.string "come visit me.\p" .string "come visit me.\p"
.string "So, how would you like a battle?$" .string "So, how would you like a battle?$"
SecretBase_Text_Trainer2AcceptBattle: SecretBase_Text_Trainer2AcceptBattle:
.string "That's the way!$" .string "That's the way!$"
SecretBase_Text_Trainer2DeclineBattle: SecretBase_Text_Trainer2DeclineBattle:
.string "When you're ready, give me a shout!$" .string "When you're ready, give me a shout!$"
SecretBase_Text_Trainer2Defeated:: SecretBase_Text_Trainer2Defeated::
.string "Aww! Done in!\n" .string "Aww! Done in!\n"
.string "But it's still fun to battle!$" .string "But it's still fun to battle!$"
SecretBase_Text_Trainer2PostBattle: SecretBase_Text_Trainer2PostBattle:
.string "Well, anyway, I should go buy some\n" .string "Well, anyway, I should go buy some\n"
.string "decorations and furniture.\p" .string "decorations and furniture.\p"
.string "I want my SECRET BASE to be a place\n" .string "I want my SECRET BASE to be a place\n"
.string "other people can enjoy.$" .string "other people can enjoy.$"
SecretBase_Text_Trainer2PreChampion: SecretBase_Text_Trainer2PreChampion:
.string "A big mansion is nice, but I like this\n" .string "A big mansion is nice, but I like this\n"
.string "sort of place more.\p" .string "sort of place more.\p"
.string "I like it because all kinds of people\n" .string "I like it because all kinds of people\n"
.string "come visit me.$" .string "come visit me.$"
SecretBase_Text_Trainer7Intro: SecretBase_Text_Trainer7Intro:
.string "I simply adore shopping for decorations\n" .string "I simply adore shopping for decorations\n"
.string "and furniture.\p" .string "and furniture.\p"
.string "I also love raising POKéMON just\n" .string "I also love raising POKéMON just\n"
.string "as much.\p" .string "as much.\p"
.string "If you would be so kind, will you battle\n" .string "If you would be so kind, will you battle\n"
.string "with my POKéMON?$" .string "with my POKéMON?$"
SecretBase_Text_Trainer7AcceptBattle: SecretBase_Text_Trainer7AcceptBattle:
.string "Thank you.\n" .string "Thank you.\n"
.string "Shall we begin?$" .string "Shall we begin?$"
SecretBase_Text_Trainer7DeclineBattle: SecretBase_Text_Trainer7DeclineBattle:
.string "Oh.\n" .string "Oh.\n"
.string "How disappointing…$" .string "How disappointing…$"
SecretBase_Text_Trainer7Defeated:: SecretBase_Text_Trainer7Defeated::
.string "I concede…$" .string "I concede…$"
SecretBase_Text_Trainer7PostBattle: SecretBase_Text_Trainer7PostBattle:
.string "That was all in good fun!\n" .string "That was all in good fun!\n"
.string "I should go enjoy shopping now.$" .string "I should go enjoy shopping now.$"
SecretBase_Text_Trainer7PreChampion: SecretBase_Text_Trainer7PreChampion:
.string "I simply adore shopping for decorations\n" .string "I simply adore shopping for decorations\n"
.string "and furniture.\p" .string "and furniture.\p"
.string "I also love raising POKéMON just\n" .string "I also love raising POKéMON just\n"
.string "as much.$" .string "as much.$"
SecretBase_Text_Trainer3Intro: SecretBase_Text_Trainer3Intro:
.string "Some people make their SECRET BASES in\n" .string "Some people make their SECRET BASES in\n"
.string "hard-to-find places.\l" .string "hard-to-find places.\l"
.string "Do they want to just lie low?\p" .string "Do they want to just lie low?\p"
.string "But since you found me, how about we\n" .string "But since you found me, how about we\n"
.string "have a battle?$" .string "have a battle?$"
SecretBase_Text_Trainer3AcceptBattle: SecretBase_Text_Trainer3AcceptBattle:
.string "I'm not going down easily!$" .string "I'm not going down easily!$"
SecretBase_Text_Trainer3DeclineBattle: SecretBase_Text_Trainer3DeclineBattle:
.string "Oh… Are you maybe tired from searching\n" .string "Oh… Are you maybe tired from searching\n"
.string "for this place?$" .string "for this place?$"
SecretBase_Text_Trainer3Defeated:: SecretBase_Text_Trainer3Defeated::
.string "I went down…$" .string "I went down…$"
SecretBase_Text_Trainer3PostBattle: SecretBase_Text_Trainer3PostBattle:
.string "Where's your SECRET BASE?\n" .string "Where's your SECRET BASE?\n"
.string "I should go visit you there.$" .string "I should go visit you there.$"
SecretBase_Text_Trainer3PreChampion: SecretBase_Text_Trainer3PreChampion:
.string "Some people make their SECRET BASES in\n" .string "Some people make their SECRET BASES in\n"
.string "hard-to-find places.\l" .string "hard-to-find places.\l"
.string "Do they want to just lie low?$" .string "Do they want to just lie low?$"
SecretBase_Text_Trainer8Intro: SecretBase_Text_Trainer8Intro:
.string "People have told me that you can get\n" .string "People have told me that you can get\n"
.string "decorations in several ways.\p" .string "decorations in several ways.\p"
.string "We should have a race to see who can\n" .string "We should have a race to see who can\n"
.string "get nicer decorations and furniture!\p" .string "get nicer decorations and furniture!\p"
.string "In the meantime, want to battle?$" .string "In the meantime, want to battle?$"
SecretBase_Text_Trainer8AcceptBattle: SecretBase_Text_Trainer8AcceptBattle:
.string "This is my SECRET BASE.\n" .string "This is my SECRET BASE.\n"
.string "I can't lose!$" .string "I can't lose!$"
SecretBase_Text_Trainer8DeclineBattle: SecretBase_Text_Trainer8DeclineBattle:
.string "I'll battle with you anytime.$" .string "I'll battle with you anytime.$"
SecretBase_Text_Trainer8Defeated:: SecretBase_Text_Trainer8Defeated::
.string "Huh?\n" .string "Huh?\n"
.string "Did I just lose?$" .string "Did I just lose?$"
SecretBase_Text_Trainer8PostBattle: SecretBase_Text_Trainer8PostBattle:
.string "I won't lose at collecting decorations.\n" .string "I won't lose at collecting decorations.\n"
.string "Come visit again!$" .string "Come visit again!$"
SecretBase_Text_Trainer8PreChampion: SecretBase_Text_Trainer8PreChampion:
.string "People have told me that you can get\n" .string "People have told me that you can get\n"
.string "decorations in several ways.\p" .string "decorations in several ways.\p"
.string "We should have a race to see who can\n" .string "We should have a race to see who can\n"
.string "get nicer decorations and furniture!$" .string "get nicer decorations and furniture!$"
SecretBase_Text_Trainer4Intro: SecretBase_Text_Trainer4Intro:
.string "I found a spot I liked, and I did it up\n" .string "I found a spot I liked, and I did it up\n"
.string "with my favorite decorations.\p" .string "with my favorite decorations.\p"
.string "I raise my favorite POKéMON and grow\n" .string "I raise my favorite POKéMON and grow\n"
.string "stronger with it.\p" .string "stronger with it.\p"
.string "That's what I do.\n" .string "That's what I do.\n"
.string "Want to battle with me?$" .string "Want to battle with me?$"
SecretBase_Text_Trainer4AcceptBattle: SecretBase_Text_Trainer4AcceptBattle:
.string "Show me what you're made of!$" .string "Show me what you're made of!$"
SecretBase_Text_Trainer4DeclineBattle: SecretBase_Text_Trainer4DeclineBattle:
.string "I guess there are times when you're not\n" .string "I guess there are times when you're not\n"
.string "into it.$" .string "into it.$"
SecretBase_Text_Trainer4Defeated:: SecretBase_Text_Trainer4Defeated::
.string "I know exactly what you're made of now.$" .string "I know exactly what you're made of now.$"
SecretBase_Text_Trainer4PostBattle: SecretBase_Text_Trainer4PostBattle:
.string "We can both become stronger.\n" .string "We can both become stronger.\n"
.string "Let's keep at it!$" .string "Let's keep at it!$"
SecretBase_Text_Trainer4PreChampion: SecretBase_Text_Trainer4PreChampion:
.string "I found a spot I liked, and I did it up\n" .string "I found a spot I liked, and I did it up\n"
.string "with my favorite decorations.\p" .string "with my favorite decorations.\p"
.string "I raise my favorite POKéMON and grow\n" .string "I raise my favorite POKéMON and grow\n"
.string "stronger with it.\p" .string "stronger with it.\p"
.string "Every day is a great day.$" .string "Every day is a great day.$"
SecretBase_Text_Trainer9Intro: SecretBase_Text_Trainer9Intro:
.string "You can learn a lot about the taste\n" .string "You can learn a lot about the taste\n"
.string "and sense of people by the kinds of\l" .string "and sense of people by the kinds of\l"
.string "decorations they have, and how they\l" .string "decorations they have, and how they\l"
.string "display them.\p" .string "display them.\p"
.string "What do you think of my taste?\n" .string "What do you think of my taste?\n"
.string "Are you speechless?\p" .string "Are you speechless?\p"
.string "Want to see my taste in battling?$" .string "Want to see my taste in battling?$"
SecretBase_Text_Trainer9AcceptBattle: SecretBase_Text_Trainer9AcceptBattle:
.string "There's no holding back!$" .string "There's no holding back!$"
SecretBase_Text_Trainer9DeclineBattle: SecretBase_Text_Trainer9DeclineBattle:
.string "I'll be happy to demonstrate my style\n" .string "I'll be happy to demonstrate my style\n"
.string "anytime.$" .string "anytime.$"
SecretBase_Text_Trainer9Defeated:: SecretBase_Text_Trainer9Defeated::
.string "You're supremely talented!\n" .string "You're supremely talented!\n"
.string "Your power seems to be limitless…$" .string "Your power seems to be limitless…$"
SecretBase_Text_Trainer9PostBattle: SecretBase_Text_Trainer9PostBattle:
.string "What did you think of my style?\n" .string "What did you think of my style?\n"
.string "I'll keep on polishing it!$" .string "I'll keep on polishing it!$"
SecretBase_Text_Trainer9PreChampion: SecretBase_Text_Trainer9PreChampion:
.string "You can learn a lot about the taste\n" .string "You can learn a lot about the taste\n"
.string "and sense of people by the kinds of\l" .string "and sense of people by the kinds of\l"
.string "decorations they have, and how they\l" .string "decorations they have, and how they\l"
.string "display them.\p" .string "display them.\p"
.string "What do you think of my taste?\n" .string "What do you think of my taste?\n"
.string "Are you speechless?$" .string "Are you speechless?$"
+2 -1
View File
@@ -1,5 +1,6 @@
gText_WantToUseSurf:: gText_WantToUseSurf::
.string "The water is dyed a deep blue…\nWould you like to SURF?$" .string "The water is dyed a deep blue…\n"
.string "Would you like to SURF?$"
gText_PlayerUsedSurf:: gText_PlayerUsedSurf::
.string "{STR_VAR_1} used SURF!$" .string "{STR_VAR_1} used SURF!$"
+15 -15
View File
@@ -166,7 +166,7 @@ BattleFrontier_BattleTowerLobby_Text_LookingForwardToNextBattle::
.string "I'll be looking forward to your\n" .string "I'll be looking forward to your\n"
.string "next battle!$" .string "next battle!$"
gTVBravoTrainerBattleTowerText00:: BravoTrainerBattleTower_Text_Intro::
.string "Yeah!\n" .string "Yeah!\n"
.string "It's BRAVO TRAINER time!\p" .string "It's BRAVO TRAINER time!\p"
.string "Today, we're going to profile {STR_VAR_1},\n" .string "Today, we're going to profile {STR_VAR_1},\n"
@@ -174,12 +174,12 @@ gTVBravoTrainerBattleTowerText00::
.string "For the challenge, {STR_VAR_1} entered\n" .string "For the challenge, {STR_VAR_1} entered\n"
.string "one wicked {STR_VAR_2}.$" .string "one wicked {STR_VAR_2}.$"
gTVBravoTrainerBattleTowerText01:: BravoTrainerBattleTower_Text_NewRecord::
.string "The pair set a new record of {STR_VAR_2} wins\n" .string "The pair set a new record of {STR_VAR_2} wins\n"
.string "in a row in {STR_VAR_1} competition!\l" .string "in a row in {STR_VAR_1} competition!\l"
.string "Bravo, TRAINER!$" .string "Bravo, TRAINER!$"
gTVBravoTrainerBattleTowerText02:: BravoTrainerBattleTower_Text_Lost::
.string "The twosome finally succumbed to\n" .string "The twosome finally succumbed to\n"
.string "{STR_VAR_1} in match number {STR_VAR_2}.\l" .string "{STR_VAR_1} in match number {STR_VAR_2}.\l"
.string "Nice try, TRAINER!\p" .string "Nice try, TRAINER!\p"
@@ -188,7 +188,7 @@ gTVBravoTrainerBattleTowerText02::
.string "We asked the TRAINER for impressions\n" .string "We asked the TRAINER for impressions\n"
.string "on the match with {STR_VAR_1}.$" .string "on the match with {STR_VAR_1}.$"
gTVBravoTrainerBattleTowerText03:: BravoTrainerBattleTower_Text_Won::
.string "The twosome won it all by defeating\n" .string "The twosome won it all by defeating\n"
.string "{STR_VAR_1}'s {STR_VAR_2} thoroughly.\l" .string "{STR_VAR_1}'s {STR_VAR_2} thoroughly.\l"
.string "Bravo, TRAINER!\p" .string "Bravo, TRAINER!\p"
@@ -197,7 +197,7 @@ gTVBravoTrainerBattleTowerText03::
.string "We asked the TRAINER for impressions\n" .string "We asked the TRAINER for impressions\n"
.string "on the moment of glory.$" .string "on the moment of glory.$"
gTVBravoTrainerBattleTowerText04:: BravoTrainerBattleTower_Text_LostFinal::
.string "After a string of wins, the pair finally\n" .string "After a string of wins, the pair finally\n"
.string "succumbed to {STR_VAR_1}'s {STR_VAR_2},\l" .string "succumbed to {STR_VAR_1}'s {STR_VAR_2},\l"
.string "their final hurdle.\p" .string "their final hurdle.\p"
@@ -208,7 +208,7 @@ gTVBravoTrainerBattleTowerText04::
.string "We asked the TRAINER for impressions\n" .string "We asked the TRAINER for impressions\n"
.string "on battling the celebrity pair.$" .string "on battling the celebrity pair.$"
gTVBravoTrainerBattleTowerText05:: BravoTrainerBattleTower_Text_Satisfied::
.string "This is what the TRAINER had to say:\n" .string "This is what the TRAINER had to say:\n"
.string "“I'm satisfied!”\p" .string "“I'm satisfied!”\p"
.string "Now isn't that a refreshing reply?\n" .string "Now isn't that a refreshing reply?\n"
@@ -218,7 +218,7 @@ gTVBravoTrainerBattleTowerText05::
.string "I found out exactly how satisfied\n" .string "I found out exactly how satisfied\n"
.string "when I heard the TRAINER say this:$" .string "when I heard the TRAINER say this:$"
gTVBravoTrainerBattleTowerText06:: BravoTrainerBattleTower_Text_Unsatisfied::
.string "This is what the TRAINER had to say:\n" .string "This is what the TRAINER had to say:\n"
.string "“I'm not satisfied…”\p" .string "“I'm not satisfied…”\p"
.string "Our TRAINER was obviously a little down\n" .string "Our TRAINER was obviously a little down\n"
@@ -228,22 +228,22 @@ gTVBravoTrainerBattleTowerText06::
.string "Anyway, I found out how dissatisfied\n" .string "Anyway, I found out how dissatisfied\n"
.string "our TRAINER was when I heard this:$" .string "our TRAINER was when I heard this:$"
gTVBravoTrainerBattleTowerText07:: BravoTrainerBattleTower_Text_None1::
.string "None$" .string "None$"
gTVBravoTrainerBattleTowerText08:: BravoTrainerBattleTower_Text_None2::
.string "None$" .string "None$"
gTVBravoTrainerBattleTowerText09:: BravoTrainerBattleTower_Text_None3::
.string "None$" .string "None$"
gTVBravoTrainerBattleTowerText10:: BravoTrainerBattleTower_Text_None4::
.string "None$" .string "None$"
gTVBravoTrainerBattleTowerText11:: BravoTrainerBattleTower_Text_Response::
.string "{STR_VAR_1}.”$" .string "{STR_VAR_1}.”$"
gTVBravoTrainerBattleTowerText12:: BravoTrainerBattleTower_Text_ResponseSatisfied::
.string "{STR_VAR_1}.”\n" .string "{STR_VAR_1}.”\n"
.string "Now isn't that great?\p" .string "Now isn't that great?\p"
.string "It really expresses {STR_VAR_2}'s joy,\n" .string "It really expresses {STR_VAR_2}'s joy,\n"
@@ -252,7 +252,7 @@ gTVBravoTrainerBattleTowerText12::
.string "end… It really was what you'd call\l" .string "end… It really was what you'd call\l"
.string "{STR_VAR_1}”!$" .string "{STR_VAR_1}”!$"
gTVBravoTrainerBattleTowerText13:: BravoTrainerBattleTower_Text_ResponseUnsatisfied::
.string "{STR_VAR_1}.”\n" .string "{STR_VAR_1}.”\n"
.string "Now isn't that fitting?\p" .string "Now isn't that fitting?\p"
.string "That battle with {STR_VAR_3} at the\n" .string "That battle with {STR_VAR_3} at the\n"
@@ -261,7 +261,7 @@ gTVBravoTrainerBattleTowerText13::
.string "{STR_VAR_2}'s disappointment comes across\n" .string "{STR_VAR_2}'s disappointment comes across\n"
.string "loud and clear, I'd say!$" .string "loud and clear, I'd say!$"
gTVBravoTrainerBattleTowerText14:: BravoTrainerBattleTower_Text_Outro::
.string "Bravo, {STR_VAR_1}!\n" .string "Bravo, {STR_VAR_1}!\n"
.string "Bravo, {STR_VAR_2}!\p" .string "Bravo, {STR_VAR_2}!\p"
.string "I hope we can count on seeing\n" .string "I hope we can count on seeing\n"
-51
View File
@@ -1,51 +0,0 @@
# Bugs and Glitches
These are known bugs and glitches in the original Pokémon Emerald game: code that clearly does not work as intended, or that only works in limited circumstances but has the possibility to fail or crash. Defining the `BUGFIX` and `UBFIX` preprocessor variables will fix some of these automatically. `UBFIX` will already be defined for MODERN builds.
Fixes are written in the `diff` format. If you've used Git before, this should look familiar:
```diff
this is some code
-delete red - lines
+add green + lines
```
## Contents
- [Scrolling through items in the bag causes the image to flicker](#scrolling-through-items-in-the-bag-causes-the-image-to-flicker)
## Scrolling through items in the bag causes the image to flicker
**Fix:** Add the following function to [src/item_menu_icons.c](https://github.com/pret/pokeemerald/blob/master/src/item_menu_icons.c):
```diff
+void HideBagItemIconSprite(u8 id)
+{
+ u8 *spriteId = &gBagMenu->spriteId[10];
+ if (spriteId[id] != 0xFF)
+ {
+ gSprites[spriteId[id]].invisible = TRUE;
+ }
+}
```
and its corresponding declaration in [include/item_menu_icons.h](https://github.com/pret/pokeemerald/blob/master/include/item_menu_icons.h):
```diff
+void HideBagItemIconSprite(u8 id);
```
Then edit `BagMenu_MoveCursorCallback` in [src/item_menu.c](https://github.com/pret/pokeemerald/blob/master/src/item_menu.c):
```diff
...
{
- RemoveBagItemIconSprite(1 ^ gBagMenu->itemIconSlot);
+ HideBagItemIconSprite(gBagMenu->itemIconSlot ^ 1);
+ RemoveBagItemIconSprite(gBagMenu->itemIconSlot);
if (itemIndex != LIST_CANCEL)
...
```
+2 -2
View File
@@ -17,8 +17,8 @@
cd /mnt/c/Users/<user>/Downloads cd /mnt/c/Users/<user>/Downloads
``` ```
> Note 1: The Windows C:\ drive is called /mnt/c/ in WSL. > Note 1: The Windows C:\ drive is called /mnt/c/ in WSL.
> Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users/<user>/Downloads folder"`. > Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users/<user>/Downloads folder"`.
> Note 3: Windows path names are case-insensitive so adhering to capitalization isn't needed > Note 3: Windows path names are case-insensitive so adhering to capitalization isn't needed
4. Once the directory has been changed to the folder containing the devkitPro pacman package, run the following commands to install devkitARM. 4. Once the directory has been changed to the folder containing the devkitPro pacman package, run the following commands to install devkitARM.
+15 -15
View File
@@ -33,7 +33,7 @@ struct BgConfig2
u32 basePalette:4; u32 basePalette:4;
u32 unk_3:18; u32 unk_3:18;
void* tilemap; void *tilemap;
s32 bg_x; s32 bg_x;
s32 bg_y; s32 bg_y;
}; };
@@ -183,14 +183,14 @@ u8 LoadBgVram(u8 bg, const void *src, u16 size, u16 destOffset, u8 mode)
case 0x1: case 0x1:
offset = sGpuBgConfigs.configs[bg].charBaseIndex * BG_CHAR_SIZE; offset = sGpuBgConfigs.configs[bg].charBaseIndex * BG_CHAR_SIZE;
offset = destOffset + offset; offset = destOffset + offset;
cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, 0); cursor = RequestDma3Copy(src, (void *)(offset + BG_VRAM), size, 0);
if (cursor == -1) if (cursor == -1)
return -1; return -1;
break; break;
case 0x2: case 0x2:
offset = sGpuBgConfigs.configs[bg].mapBaseIndex * BG_SCREEN_SIZE; offset = sGpuBgConfigs.configs[bg].mapBaseIndex * BG_SCREEN_SIZE;
offset = destOffset + offset; offset = destOffset + offset;
cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, 0); cursor = RequestDma3Copy(src, (void *)(offset + BG_VRAM), size, 0);
if (cursor == -1) if (cursor == -1)
return -1; return -1;
break; break;
@@ -372,7 +372,7 @@ void SetBgMode(u8 bgMode)
SetBgModeInternal(bgMode); SetBgModeInternal(bgMode);
} }
u16 LoadBgTiles(u8 bg, const void* src, u16 size, u16 destOffset) u16 LoadBgTiles(u8 bg, const void *src, u16 size, u16 destOffset)
{ {
u16 tileOffset; u16 tileOffset;
u8 cursor; u8 cursor;
@@ -422,7 +422,7 @@ u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset)
if (!IsInvalidBg32(bg)) if (!IsInvalidBg32(bg))
{ {
u16 paletteOffset = (sGpuBgConfigs2[bg].basePalette * 0x20) + (destOffset * 2); u16 paletteOffset = (sGpuBgConfigs2[bg].basePalette * 0x20) + (destOffset * 2);
cursor = RequestDma3Copy(src, (void*)(paletteOffset + BG_PLTT), size, 0); cursor = RequestDma3Copy(src, (void *)(paletteOffset + BG_PLTT), size, 0);
if (cursor == -1) if (cursor == -1)
{ {
@@ -863,7 +863,7 @@ void UnsetBgTilemapBuffer(u8 bg)
} }
} }
void* GetBgTilemapBuffer(u8 bg) void *GetBgTilemapBuffer(u8 bg)
{ {
if (IsInvalidBg32(bg)) if (IsInvalidBg32(bg))
return NULL; return NULL;
@@ -906,7 +906,7 @@ void CopyBgTilemapBufferToVram(u8 bg)
} }
} }
void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height) void CopyToBgTilemapBufferRect(u8 bg, const void *src, u8 destX, u8 destY, u8 width, u8 height)
{ {
u16 destX16; u16 destX16;
u16 destY16; u16 destY16;
@@ -923,7 +923,7 @@ void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 wi
{ {
for (destX16 = destX; destX16 < (destX + width); destX16++) for (destX16 = destX; destX16 < (destX + width); destX16++)
{ {
((u16*)sGpuBgConfigs2[bg].tilemap)[((destY16 * 0x20) + destX16)] = *srcCopy++; ((u16 *)sGpuBgConfigs2[bg].tilemap)[((destY16 * 0x20) + destX16)] = *srcCopy++;
} }
} }
break; break;
@@ -936,7 +936,7 @@ void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 wi
{ {
for (destX16 = destX; destX16 < (destX + width); destX16++) for (destX16 = destX; destX16 < (destX + width); destX16++)
{ {
((u8*)sGpuBgConfigs2[bg].tilemap)[((destY16 * mode) + destX16)] = *srcCopy++; ((u8 *)sGpuBgConfigs2[bg].tilemap)[((destY16 * mode) + destX16)] = *srcCopy++;
} }
} }
break; break;
@@ -984,7 +984,7 @@ void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8
{ {
for (j = destX; j < (destX + rectWidth); j++) for (j = destX; j < (destX + rectWidth); j++)
{ {
*(u8*)(sGpuBgConfigs2[bg].tilemap + ((var * i) + j)) = *(u8*)(srcPtr) + tileOffset; *(u8 *)(sGpuBgConfigs2[bg].tilemap + ((var * i) + j)) = *(u8 *)(srcPtr) + tileOffset;
srcPtr++; srcPtr++;
} }
srcPtr += (srcWidth - rectWidth); srcPtr += (srcWidth - rectWidth);
@@ -1009,7 +1009,7 @@ void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width,
{ {
for (x16 = x; x16 < (x + width); x16++) for (x16 = x; x16 < (x + width); x16++)
{ {
((u16*)sGpuBgConfigs2[bg].tilemap)[((y16 * 0x20) + x16)] = tileNum; ((u16 *)sGpuBgConfigs2[bg].tilemap)[((y16 * 0x20) + x16)] = tileNum;
} }
} }
break; break;
@@ -1019,7 +1019,7 @@ void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width,
{ {
for (x16 = x; x16 < (x + width); x16++) for (x16 = x; x16 < (x + width); x16++)
{ {
((u8*)sGpuBgConfigs2[bg].tilemap)[((y16 * mode) + x16)] = tileNum; ((u8 *)sGpuBgConfigs2[bg].tilemap)[((y16 * mode) + x16)] = tileNum;
} }
} }
break; break;
@@ -1052,7 +1052,7 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt
{ {
for (x16 = x; x16 < (x + width); x16++) for (x16 = x; x16 < (x + width); x16++)
{ {
CopyTileMapEntry(&firstTileNum, &((u16*)sGpuBgConfigs2[bg].tilemap)[(u16)GetTileMapIndexFromCoords(x16, y16, attribute, mode, mode2)], paletteSlot, 0, 0); CopyTileMapEntry(&firstTileNum, &((u16 *)sGpuBgConfigs2[bg].tilemap)[(u16)GetTileMapIndexFromCoords(x16, y16, attribute, mode, mode2)], paletteSlot, 0, 0);
firstTileNum = (firstTileNum & (MAPGRID_COLLISION_MASK | MAPGRID_ELEVATION_MASK)) + ((firstTileNum + tileNumDelta) & MAPGRID_METATILE_ID_MASK); firstTileNum = (firstTileNum & (MAPGRID_COLLISION_MASK | MAPGRID_ELEVATION_MASK)) + ((firstTileNum + tileNumDelta) & MAPGRID_METATILE_ID_MASK);
} }
} }
@@ -1063,7 +1063,7 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt
{ {
for (x16 = x; x16 < (x + width); x16++) for (x16 = x; x16 < (x + width); x16++)
{ {
((u8*)sGpuBgConfigs2[bg].tilemap)[(y16 * mode3) + x16] = firstTileNum; ((u8 *)sGpuBgConfigs2[bg].tilemap)[(y16 * mode3) + x16] = firstTileNum;
firstTileNum = (firstTileNum & (MAPGRID_COLLISION_MASK | MAPGRID_ELEVATION_MASK)) + ((firstTileNum + tileNumDelta) & MAPGRID_METATILE_ID_MASK); firstTileNum = (firstTileNum & (MAPGRID_COLLISION_MASK | MAPGRID_ELEVATION_MASK)) + ((firstTileNum + tileNumDelta) & MAPGRID_METATILE_ID_MASK);
} }
} }
@@ -1240,7 +1240,7 @@ bool32 IsInvalidBg32(u8 bg)
bool32 IsTileMapOutsideWram(u8 bg) bool32 IsTileMapOutsideWram(u8 bg)
{ {
if (sGpuBgConfigs2[bg].tilemap > (void*)IWRAM_END) if (sGpuBgConfigs2[bg].tilemap > (void *)IWRAM_END)
return TRUE; return TRUE;
else if (sGpuBgConfigs2[bg].tilemap == NULL) else if (sGpuBgConfigs2[bg].tilemap == NULL)
return TRUE; return TRUE;
+20 -20
View File
@@ -3,29 +3,29 @@
enum enum
{ {
BG_ATTR_CHARBASEINDEX = 1, BG_ATTR_CHARBASEINDEX = 1,
BG_ATTR_MAPBASEINDEX, BG_ATTR_MAPBASEINDEX,
BG_ATTR_SCREENSIZE, BG_ATTR_SCREENSIZE,
BG_ATTR_PALETTEMODE, BG_ATTR_PALETTEMODE,
BG_ATTR_MOSAIC, BG_ATTR_MOSAIC,
BG_ATTR_WRAPAROUND, BG_ATTR_WRAPAROUND,
BG_ATTR_PRIORITY, BG_ATTR_PRIORITY,
BG_ATTR_METRIC, BG_ATTR_METRIC,
BG_ATTR_TYPE, BG_ATTR_TYPE,
BG_ATTR_BASETILE, BG_ATTR_BASETILE,
}; };
enum { enum {
BG_TYPE_NORMAL, BG_TYPE_NORMAL,
BG_TYPE_AFFINE, BG_TYPE_AFFINE,
BG_TYPE_NONE = 0xFFFF BG_TYPE_NONE = 0xFFFF
}; };
// Modes for ChangeBgX / ChangeBgY // Modes for ChangeBgX / ChangeBgY
enum { enum {
BG_COORD_SET, BG_COORD_SET,
BG_COORD_ADD, BG_COORD_ADD,
BG_COORD_SUB, BG_COORD_SUB,
}; };
// Modes for Unused_AdjustBgMosaic // Modes for Unused_AdjustBgMosaic
@@ -62,7 +62,7 @@ void ResetBgsAndClearDma3BusyFlags(u32 leftoverFireRedLeafGreenVariable);
void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numTemplates); void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numTemplates);
void InitBgFromTemplate(const struct BgTemplate *template); void InitBgFromTemplate(const struct BgTemplate *template);
void SetBgMode(u8 bgMode); void SetBgMode(u8 bgMode);
u16 LoadBgTiles(u8 bg, const void* src, u16 size, u16 destOffset); u16 LoadBgTiles(u8 bg, const void *src, u16 size, u16 destOffset);
u16 LoadBgTilemap(u8 bg, const void *src, u16 size, u16 destOffset); u16 LoadBgTilemap(u8 bg, const void *src, u16 size, u16 destOffset);
u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset); u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset);
bool8 IsDma3ManagerBusyWithBgCopy(void); bool8 IsDma3ManagerBusyWithBgCopy(void);
@@ -76,13 +76,13 @@ s32 ChangeBgY(u8 bg, s32 value, u8 op);
s32 ChangeBgY_ScreenOff(u8 bg, s32 value, u8 op); s32 ChangeBgY_ScreenOff(u8 bg, s32 value, u8 op);
s32 GetBgY(u8 bg); s32 GetBgY(u8 bg);
void SetBgAffine(u8 bg, s32 srcCenterX, s32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle); void SetBgAffine(u8 bg, s32 srcCenterX, s32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle);
u8 Unused_AdjustBgMosaic(u8 a1, u8 a2); u8 Unused_AdjustBgMosaic(u8 val, u8 mode);
void SetBgTilemapBuffer(u8 bg, void *tilemap); void SetBgTilemapBuffer(u8 bg, void *tilemap);
void UnsetBgTilemapBuffer(u8 bg); void UnsetBgTilemapBuffer(u8 bg);
void* GetBgTilemapBuffer(u8 bg); void *GetBgTilemapBuffer(u8 bg);
void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset); void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset);
void CopyBgTilemapBufferToVram(u8 bg); void CopyBgTilemapBufferToVram(u8 bg);
void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height); void CopyToBgTilemapBufferRect(u8 bg, const void *src, u8 destX, u8 destY, u8 width, u8 height);
void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette); void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, s16 tileOffset, s16 palette2); void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, s16 tileOffset, s16 palette2);
void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height); void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
+1 -4
View File
@@ -2,13 +2,10 @@
#define GUARD_ALLOC_H #define GUARD_ALLOC_H
#define HEAP_SIZE 0x1C000 #define HEAP_SIZE 0x1C000
#define malloc Alloc
#define calloc(ct, sz) AllocZeroed((ct) * (sz))
#define free Free
#define FREE_AND_SET_NULL(ptr) \ #define FREE_AND_SET_NULL(ptr) \
{ \ { \
free(ptr); \ Free(ptr); \
ptr = NULL; \ ptr = NULL; \
} }
+6 -9
View File
@@ -94,7 +94,7 @@ static void ApplyAffineAnimFrame(u8 matrixNum, struct AffineAnimFrameCmd *frameC
static u8 IndexOfSpriteTileTag(u16 tag); static u8 IndexOfSpriteTileTag(u16 tag);
static void AllocSpriteTileRange(u16 tag, u16 start, u16 count); static void AllocSpriteTileRange(u16 tag, u16 start, u16 count);
static void DoLoadSpritePalette(const u16 *src, u16 paletteOffset); static void DoLoadSpritePalette(const u16 *src, u16 paletteOffset);
static void UpdateSpriteMatrixAnchorPos(struct Sprite* sprite, s32 a1, s32 a2); static void UpdateSpriteMatrixAnchorPos(struct Sprite *, s32, s32);
typedef void (*AnimFunc)(struct Sprite *); typedef void (*AnimFunc)(struct Sprite *);
typedef void (*AnimCmdFunc)(struct Sprite *); typedef void (*AnimCmdFunc)(struct Sprite *);
@@ -103,9 +103,9 @@ typedef void (*AffineAnimCmdFunc)(u8 matrixNum, struct Sprite *);
#define DUMMY_OAM_DATA \ #define DUMMY_OAM_DATA \
{ \ { \
.y = DISPLAY_HEIGHT, \ .y = DISPLAY_HEIGHT, \
.affineMode = 0, \ .affineMode = ST_OAM_AFFINE_OFF, \
.objMode = 0, \ .objMode = 0, \
.mosaic = 0, \ .mosaic = FALSE, \
.bpp = 0, \ .bpp = 0, \
.shape = SPRITE_SHAPE(8x8), \ .shape = SPRITE_SHAPE(8x8), \
.x = DISPLAY_WIDTH + 64, \ .x = DISPLAY_WIDTH + 64, \
@@ -632,14 +632,11 @@ void DestroySprite(struct Sprite *sprite)
} }
} }
void ResetOamRange(u8 a, u8 b) void ResetOamRange(u8 start, u8 end)
{ {
u8 i; u8 i;
for (i = start; i < end; i++)
for (i = a; i < b; i++)
{
gMain.oamBuffer[i] = *(struct OamData *)&gDummyOamData; gMain.oamBuffer[i] = *(struct OamData *)&gDummyOamData;
}
} }
void LoadOam(void) void LoadOam(void)
@@ -1204,7 +1201,7 @@ u8 GetSpriteMatrixNum(struct Sprite *sprite)
// Used to shift a sprite's position as it scales. // Used to shift a sprite's position as it scales.
// Only used by the minigame countdown, so that for instance the numbers don't slide up as they squish down before jumping. // Only used by the minigame countdown, so that for instance the numbers don't slide up as they squish down before jumping.
void SetSpriteMatrixAnchor(struct Sprite* sprite, s16 x, s16 y) void SetSpriteMatrixAnchor(struct Sprite *sprite, s16 x, s16 y)
{ {
sprite->sAnchorX = x; sprite->sAnchorX = x;
sprite->sAnchorY = y; sprite->sAnchorY = y;
+2 -2
View File
@@ -270,7 +270,7 @@ u8 CreateSpriteAtEnd(const struct SpriteTemplate *template, s16 x, s16 y, u8 sub
u8 CreateInvisibleSprite(void (*callback)(struct Sprite *)); u8 CreateInvisibleSprite(void (*callback)(struct Sprite *));
u8 CreateSpriteAndAnimate(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); u8 CreateSpriteAndAnimate(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
void DestroySprite(struct Sprite *sprite); void DestroySprite(struct Sprite *sprite);
void ResetOamRange(u8 a, u8 b); void ResetOamRange(u8 start, u8 end);
void LoadOam(void); void LoadOam(void);
void SetOamMatrix(u8 matrixNum, u16 a, u16 b, u16 c, u16 d); void SetOamMatrix(u8 matrixNum, u16 a, u16 b, u16 c, u16 d);
void CalcCenterToCornerVec(struct Sprite *sprite, u8 shape, u8 size, u8 affineMode); void CalcCenterToCornerVec(struct Sprite *sprite, u8 shape, u8 size, u8 affineMode);
@@ -282,7 +282,7 @@ void FreeSpritePalette(struct Sprite *sprite);
void FreeSpriteOamMatrix(struct Sprite *sprite); void FreeSpriteOamMatrix(struct Sprite *sprite);
void DestroySpriteAndFreeResources(struct Sprite *sprite); void DestroySpriteAndFreeResources(struct Sprite *sprite);
void AnimateSprite(struct Sprite *sprite); void AnimateSprite(struct Sprite *sprite);
void SetSpriteMatrixAnchor(struct Sprite* sprite, s16 x, s16 y); void SetSpriteMatrixAnchor(struct Sprite *sprite, s16 x, s16 y);
void StartSpriteAnim(struct Sprite *sprite, u8 animNum); void StartSpriteAnim(struct Sprite *sprite, u8 animNum);
void StartSpriteAnimIfDifferent(struct Sprite *sprite, u8 animNum); void StartSpriteAnimIfDifferent(struct Sprite *sprite, u8 animNum);
void SeekSpriteAnim(struct Sprite *sprite, u8 animCmdIndex); void SeekSpriteAnim(struct Sprite *sprite, u8 animCmdIndex);
+1 -1
View File
@@ -387,7 +387,7 @@ u8 *StringBraille(u8 *dest, const u8 *src)
const u8 setBrailleFont[] = { const u8 setBrailleFont[] = {
EXT_CTRL_CODE_BEGIN, EXT_CTRL_CODE_BEGIN,
EXT_CTRL_CODE_FONT, EXT_CTRL_CODE_FONT,
6, FONT_BRAILLE,
EOS EOS
}; };
const u8 gotoLine2[] = { const u8 gotoLine2[] = {
+13 -13
View File
@@ -73,7 +73,7 @@ static const u8 sDarkDownArrowTiles[] = INCBIN_U8("graphics/fonts/down_arrow_alt
static const u8 sUnusedFRLGBlankedDownArrow[] = INCBIN_U8("graphics/fonts/unused_frlg_blanked_down_arrow.4bpp"); static const u8 sUnusedFRLGBlankedDownArrow[] = INCBIN_U8("graphics/fonts/unused_frlg_blanked_down_arrow.4bpp");
static const u8 sUnusedFRLGDownArrow[] = INCBIN_U8("graphics/fonts/unused_frlg_down_arrow.4bpp"); static const u8 sUnusedFRLGDownArrow[] = INCBIN_U8("graphics/fonts/unused_frlg_down_arrow.4bpp");
static const u8 sDownArrowYCoords[] = { 0, 1, 2, 1 }; static const u8 sDownArrowYCoords[] = { 0, 1, 2, 1 };
static const u8 sWindowVerticalScrollSpeeds[] = { static const u8 sWindowVerticalScrollSpeeds[] = {
[OPTIONS_TEXT_SPEED_SLOW] = 1, [OPTIONS_TEXT_SPEED_SLOW] = 1,
[OPTIONS_TEXT_SPEED_MID] = 2, [OPTIONS_TEXT_SPEED_MID] = 2,
[OPTIONS_TEXT_SPEED_FAST] = 4, [OPTIONS_TEXT_SPEED_FAST] = 4,
@@ -299,7 +299,7 @@ bool16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u8 speed, voi
else else
{ {
sTempTextPrinter.textSpeed = 0; sTempTextPrinter.textSpeed = 0;
// Render all text (up to limit) at once // Render all text (up to limit) at once
for (j = 0; j < 0x400; ++j) for (j = 0; j < 0x400; ++j)
{ {
@@ -326,14 +326,14 @@ void RunTextPrinters(void)
{ {
if (sTextPrinters[i].active) if (sTextPrinters[i].active)
{ {
u16 temp = RenderFont(&sTextPrinters[i]); u16 renderCmd = RenderFont(&sTextPrinters[i]);
switch (temp) switch (renderCmd)
{ {
case RENDER_PRINT: case RENDER_PRINT:
CopyWindowToVram(sTextPrinters[i].printerTemplate.windowId, COPYWIN_GFX); CopyWindowToVram(sTextPrinters[i].printerTemplate.windowId, COPYWIN_GFX);
case RENDER_UPDATE: case RENDER_UPDATE:
if (sTextPrinters[i].callback != 0) if (sTextPrinters[i].callback != NULL)
sTextPrinters[i].callback(&sTextPrinters[i].printerTemplate, temp); sTextPrinters[i].callback(&sTextPrinters[i].printerTemplate, renderCmd);
break; break;
case RENDER_FINISH: case RENDER_FINISH:
sTextPrinters[i].active = FALSE; sTextPrinters[i].active = FALSE;
@@ -652,7 +652,7 @@ void ClearTextSpan(struct TextPrinter *textPrinter, u32 width)
struct Window *window; struct Window *window;
struct Bitmap pixels_data; struct Bitmap pixels_data;
struct TextGlyph *glyph; struct TextGlyph *glyph;
u8* glyphHeight; u8 *glyphHeight;
if (sLastTextBgColor != TEXT_COLOR_TRANSPARENT) if (sLastTextBgColor != TEXT_COLOR_TRANSPARENT)
{ {
@@ -1684,7 +1684,7 @@ u8 GetMenuCursorDimensionByFont(u8 fontId, u8 whichDimension)
static void DecompressGlyph_Small(u16 glyphId, bool32 isJapanese) static void DecompressGlyph_Small(u16 glyphId, bool32 isJapanese)
{ {
const u16* glyphs; const u16 *glyphs;
if (isJapanese == 1) if (isJapanese == 1)
{ {
@@ -1726,7 +1726,7 @@ static u32 GetGlyphWidth_Small(u16 glyphId, bool32 isJapanese)
static void DecompressGlyph_Narrow(u16 glyphId, bool32 isJapanese) static void DecompressGlyph_Narrow(u16 glyphId, bool32 isJapanese)
{ {
const u16* glyphs; const u16 *glyphs;
if (isJapanese == TRUE) if (isJapanese == TRUE)
{ {
@@ -1768,7 +1768,7 @@ static u32 GetGlyphWidth_Narrow(u16 glyphId, bool32 isJapanese)
static void DecompressGlyph_SmallNarrow(u16 glyphId, bool32 isJapanese) static void DecompressGlyph_SmallNarrow(u16 glyphId, bool32 isJapanese)
{ {
const u16* glyphs; const u16 *glyphs;
if (isJapanese == TRUE) if (isJapanese == TRUE)
{ {
@@ -1810,7 +1810,7 @@ static u32 GetGlyphWidth_SmallNarrow(u16 glyphId, bool32 isJapanese)
static void DecompressGlyph_Short(u16 glyphId, bool32 isJapanese) static void DecompressGlyph_Short(u16 glyphId, bool32 isJapanese)
{ {
const u16* glyphs; const u16 *glyphs;
if (isJapanese == TRUE) if (isJapanese == TRUE)
{ {
@@ -1854,7 +1854,7 @@ static u32 GetGlyphWidth_Short(u16 glyphId, bool32 isJapanese)
static void DecompressGlyph_Normal(u16 glyphId, bool32 isJapanese) static void DecompressGlyph_Normal(u16 glyphId, bool32 isJapanese)
{ {
const u16* glyphs; const u16 *glyphs;
if (isJapanese == TRUE) if (isJapanese == TRUE)
{ {
@@ -1896,7 +1896,7 @@ static u32 GetGlyphWidth_Normal(u16 glyphId, bool32 isJapanese)
static void DecompressGlyph_Bold(u16 glyphId) static void DecompressGlyph_Bold(u16 glyphId)
{ {
const u16* glyphs; const u16 *glyphs;
glyphs = sFontBoldJapaneseGlyphs + (0x100 * (glyphId >> 4)) + (0x8 * (glyphId & 0xF)); glyphs = sFontBoldJapaneseGlyphs + (0x100 * (glyphId >> 4)) + (0x8 * (glyphId & 0xF));
DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop);
+1 -2
View File
@@ -65,7 +65,7 @@ struct TextPrinterSubStruct
struct TextPrinterTemplate struct TextPrinterTemplate
{ {
const u8* currentChar; const u8 *currentChar;
u8 windowId; u8 windowId;
u8 fontId; u8 fontId;
u8 x; u8 x;
@@ -148,7 +148,6 @@ void RestoreTextColors(u8 *fgColor, u8 *bgColor, u8 *shadowColor);
void DecompressGlyphTile(const void *src_, void *dest_); void DecompressGlyphTile(const void *src_, void *dest_);
void CopyGlyphToWindow(struct TextPrinter *x); void CopyGlyphToWindow(struct TextPrinter *x);
void ClearTextSpan(struct TextPrinter *textPrinter, u32 width); void ClearTextSpan(struct TextPrinter *textPrinter, u32 width);
u8 GetMenuCursorDimensionByFont(u8, u8);
void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter); void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter);
void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter); void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter);
+10 -10
View File
@@ -35,7 +35,7 @@ bool16 InitWindows(const struct WindowTemplate *templates)
int j; int j;
u8 bgLayer; u8 bgLayer;
u16 attrib; u16 attrib;
u8* allocatedTilemapBuffer; u8 *allocatedTilemapBuffer;
int allocatedBaseBlock; int allocatedBaseBlock;
for (i = 0; i < NUM_BACKGROUNDS; ++i) for (i = 0; i < NUM_BACKGROUNDS; ++i)
@@ -405,7 +405,7 @@ void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u
struct Bitmap sourceRect; struct Bitmap sourceRect;
struct Bitmap destRect; struct Bitmap destRect;
sourceRect.pixels = (u8*)pixels; sourceRect.pixels = (u8 *)pixels;
sourceRect.width = srcWidth; sourceRect.width = srcWidth;
sourceRect.height = srcHeight; sourceRect.height = srcHeight;
@@ -421,7 +421,7 @@ static void BlitBitmapRectToWindowWithColorKey(u8 windowId, const u8 *pixels, u1
struct Bitmap sourceRect; struct Bitmap sourceRect;
struct Bitmap destRect; struct Bitmap destRect;
sourceRect.pixels = (u8*)pixels; sourceRect.pixels = (u8 *)pixels;
sourceRect.width = srcWidth; sourceRect.width = srcWidth;
sourceRect.height = srcHeight; sourceRect.height = srcHeight;
@@ -463,9 +463,9 @@ void FillWindowPixelBuffer(u8 windowId, u8 fillValue)
destOffset = i + (a); \ destOffset = i + (a); \
srcOffset = i + (((width * (distanceLoop & ~7)) | (distanceLoop & 7)) * 4); \ srcOffset = i + (((width * (distanceLoop & ~7)) | (distanceLoop & 7)) * 4); \
if (srcOffset < size) \ if (srcOffset < size) \
*(u32*)(tileData + destOffset) = *(u32*)(tileData + srcOffset); \ *(u32 *)(tileData + destOffset) = *(u32 *)(tileData + srcOffset); \
else \ else \
*(u32*)(tileData + destOffset) = fillValue32; \ *(u32 *)(tileData + destOffset) = fillValue32; \
distanceLoop++; \ distanceLoop++; \
} }
@@ -474,9 +474,9 @@ void FillWindowPixelBuffer(u8 windowId, u8 fillValue)
destOffset = i + (a); \ destOffset = i + (a); \
srcOffset = i + (((width * (distanceLoop & ~7)) | (distanceLoop & 7)) * 4); \ srcOffset = i + (((width * (distanceLoop & ~7)) | (distanceLoop & 7)) * 4); \
if (srcOffset < size) \ if (srcOffset < size) \
*(u32*)(tileData - destOffset) = *(u32*)(tileData - srcOffset); \ *(u32 *)(tileData - destOffset) = *(u32 *)(tileData - srcOffset); \
else \ else \
*(u32*)(tileData - destOffset) = fillValue32; \ *(u32 *)(tileData - destOffset) = fillValue32; \
distanceLoop++; \ distanceLoop++; \
} }
@@ -550,7 +550,7 @@ bool8 SetWindowAttribute(u8 windowId, u8 attributeId, u32 value)
gWindows[windowId].window.baseBlock = value; gWindows[windowId].window.baseBlock = value;
return FALSE; return FALSE;
case WINDOW_TILE_DATA: case WINDOW_TILE_DATA:
gWindows[windowId].tileData = (u8*)(value); gWindows[windowId].tileData = (u8 *)(value);
return TRUE; return TRUE;
case WINDOW_BG: case WINDOW_BG:
case WINDOW_WIDTH: case WINDOW_WIDTH:
@@ -605,7 +605,7 @@ static void DummyWindowBgTilemap8Bit(void)
u16 AddWindow8Bit(const struct WindowTemplate *template) u16 AddWindow8Bit(const struct WindowTemplate *template)
{ {
u16 windowId; u16 windowId;
u8* memAddress; u8 *memAddress;
u8 bgLayer; u8 bgLayer;
for (windowId = 0; windowId < WINDOWS_MAX; windowId++) for (windowId = 0; windowId < WINDOWS_MAX; windowId++)
@@ -675,7 +675,7 @@ void BlitBitmapRectToWindow4BitTo8Bit(u8 windowId, const u8 *pixels, u16 srcX, u
struct Bitmap sourceRect; struct Bitmap sourceRect;
struct Bitmap destRect; struct Bitmap destRect;
sourceRect.pixels = (u8*) pixels; sourceRect.pixels = (u8 *) pixels;
sourceRect.width = srcWidth; sourceRect.width = srcWidth;
sourceRect.height = srcHeight; sourceRect.height = srcHeight;
+1 -1
View File
@@ -73,7 +73,7 @@ void BlitBitmapRectToWindow4BitTo8Bit(u8 windowId, const u8 *pixels, u16 srcX, u
void CopyWindowToVram8Bit(u8 windowId, u8 mode); void CopyWindowToVram8Bit(u8 windowId, u8 mode);
extern struct Window gWindows[]; extern struct Window gWindows[];
extern void* gWindowBgTilemapBuffers[]; extern void *gWindowBgTilemapBuffers[];
extern u32 gUnusedWindowVar1; extern u32 gUnusedWindowVar1;
extern u32 gUnusedWindowVar2; extern u32 gUnusedWindowVar2;
extern u32 gUnusedWindowVar3; extern u32 gUnusedWindowVar3;

Before

Width:  |  Height:  |  Size: 277 B

After

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 B

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 420 B

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 419 B

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 509 B

After

Width:  |  Height:  |  Size: 394 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 B

After

Width:  |  Height:  |  Size: 293 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 394 B

After

Width:  |  Height:  |  Size: 279 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 B

After

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 486 B

After

Width:  |  Height:  |  Size: 374 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 366 B

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 421 B

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 390 B

After

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 432 B

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

After

Width:  |  Height:  |  Size: 429 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 504 B

After

Width:  |  Height:  |  Size: 389 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 467 B

After

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 398 B

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 554 B

After

Width:  |  Height:  |  Size: 413 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 458 B

After

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 402 B

After

Width:  |  Height:  |  Size: 287 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 368 B

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 452 B

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 441 B

After

Width:  |  Height:  |  Size: 328 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 432 B

After

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 425 B

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 404 B

After

Width:  |  Height:  |  Size: 289 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 B

After

Width:  |  Height:  |  Size: 311 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 430 B

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 401 B

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 432 B

After

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 509 B

After

Width:  |  Height:  |  Size: 394 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 452 B

After

Width:  |  Height:  |  Size: 337 B

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