mirror of
https://github.com/pret/pokeyellow.git
synced 2026-03-21 17:34:31 -05:00
Merge branch 'master' of https://github.com/pret/pokered
This commit is contained in:
commit
bc2354dd66
8
.github/checkdiff.sh
vendored
Executable file
8
.github/checkdiff.sh
vendored
Executable file
|
|
@ -0,0 +1,8 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
if ! git diff-index --quiet HEAD --; then
|
||||
echo 'Uncommitted changes detected:'
|
||||
git diff-index HEAD --
|
||||
return 1
|
||||
fi
|
||||
71
.github/workflows/main.yml
vendored
71
.github/workflows/main.yml
vendored
|
|
@ -5,25 +5,29 @@ on:
|
|||
branches: [ master ]
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
rgbds_version: v1.0.1
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@master
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Checkout rgbds
|
||||
uses: actions/checkout@master
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: rgbds
|
||||
ref: v1.0.0
|
||||
ref: ${{ env.rgbds_version }}
|
||||
repository: gbdev/rgbds
|
||||
|
||||
- name: Install rgbds
|
||||
working-directory: rgbds
|
||||
run: |
|
||||
sudo apt-get install -yq libpng-dev
|
||||
sudo make install
|
||||
sudo apt-get update
|
||||
sudo apt-get install -yq bison libpng-dev pkg-config
|
||||
sudo make -j$(nproc) install
|
||||
|
||||
- name: Remove rgbds
|
||||
run: |
|
||||
|
|
@ -33,21 +37,13 @@ jobs:
|
|||
if: ${{ github.repository_owner == 'pret' }}
|
||||
run: |
|
||||
make DEBUG=1 -j$(nproc) compare
|
||||
if ! git diff-index --quiet HEAD --; then
|
||||
echo 'Uncommitted changes detected:'
|
||||
git diff-index HEAD --
|
||||
return 1
|
||||
fi
|
||||
.github/checkdiff.sh
|
||||
|
||||
- name: Make
|
||||
if: ${{ github.repository_owner != 'pret' }}
|
||||
run: |
|
||||
make -j$(nproc)
|
||||
if ! git diff-index --quiet HEAD --; then
|
||||
echo 'Uncommitted changes detected:'
|
||||
git diff-index HEAD --
|
||||
return 1
|
||||
fi
|
||||
.github/checkdiff.sh
|
||||
|
||||
- name: Discord webhook
|
||||
if: ${{ github.event_name == 'push' && github.repository_owner == 'pret' }}
|
||||
|
|
@ -57,22 +53,57 @@ jobs:
|
|||
.github/webhook.sh
|
||||
|
||||
- name: Checkout symbols
|
||||
if: ${{ github.event_name == 'push' && github.repository_owner == 'pret' }}
|
||||
if: ${{ github.repository_owner == 'pret' && github.event_name == 'push' }}
|
||||
uses: actions/checkout@master
|
||||
with:
|
||||
path: symbols
|
||||
ref: symbols
|
||||
|
||||
- name: Move symbols
|
||||
if: ${{ github.event_name == 'push' && github.repository_owner == 'pret' }}
|
||||
if: ${{ github.repository_owner == 'pret' && github.event_name == 'push' }}
|
||||
run: |
|
||||
cp -v *.sym symbols/
|
||||
cp -v *.map symbols/
|
||||
cp -v *.sym *.map symbols/
|
||||
|
||||
- name: Update symbols
|
||||
if: ${{ github.event_name == 'push' && github.repository_owner == 'pret' }}
|
||||
if: ${{ github.repository_owner == 'pret' && github.event_name == 'push' }}
|
||||
uses: EndBug/add-and-commit@v9
|
||||
with:
|
||||
cwd: "./symbols"
|
||||
add: "*.sym *.map"
|
||||
message: ${{ github.event.commits[0].message }}
|
||||
|
||||
build-macos:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Checkout rgbds
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
path: rgbds
|
||||
ref: ${{ env.rgbds_version }}
|
||||
repository: gbdev/rgbds
|
||||
|
||||
- name: Install rgbds
|
||||
working-directory: rgbds
|
||||
run: |
|
||||
brew install bison libpng pkg-config
|
||||
export PATH="$(brew --prefix bison)/bin:$PATH"
|
||||
sudo make -j$(sysctl -n hw.ncpu) install
|
||||
|
||||
- name: Remove rgbds
|
||||
run: |
|
||||
rm -rf rgbds
|
||||
|
||||
- name: Compare
|
||||
if: ${{ github.repository_owner == 'pret' }}
|
||||
run: |
|
||||
make DEBUG=1 -j$(sysctl -n hw.ncpu) compare
|
||||
.github/checkdiff.sh
|
||||
|
||||
- name: Make
|
||||
if: ${{ github.repository_owner != 'pret' }}
|
||||
run: |
|
||||
make -j$(sysctl -n hw.ncpu)
|
||||
.github/checkdiff.sh
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
1.0.0
|
||||
1.0.1
|
||||
|
|
|
|||
20
INSTALL.md
20
INSTALL.md
|
|
@ -42,9 +42,9 @@ Run setup and leave the default settings. At the "**Select Packages**" step, cho
|
|||
|
||||
Double click on the text that says "**Skip**" next to each package to select the most recent version to install.
|
||||
|
||||
Then follow the [**rgbds** install instructions](https://rgbds.gbdev.io/install#pre-built) for Windows with Cygwin to install **rgbds 1.0.0**.
|
||||
Then follow the [**rgbds** install instructions](https://rgbds.gbdev.io/install#pre-built) for Windows with Cygwin to install **rgbds 1.0.1**.
|
||||
|
||||
**Note:** If you already have an installed rgbds older than 1.0.0, you will need to update to 1.0.0. Ignore this if you have never installed rgbds before. If a version newer than 1.0.0 does not work, try downloading 1.0.0.
|
||||
**Note:** If you already have an installed rgbds older than 1.0.0, you will need to update to 1.0.1. Ignore this if you have never installed rgbds before. If a version newer than 1.0.1 does not work, try downloading 1.0.1.
|
||||
|
||||
Now open the **Cygwin terminal** and enter the following commands.
|
||||
|
||||
|
|
@ -67,7 +67,7 @@ Install [**Homebrew**](https://brew.sh/). Follow the official instructions.
|
|||
|
||||
Open **Terminal** and prepare to enter commands.
|
||||
|
||||
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#pre-built) for macOS to install **rgbds 1.0.0**.
|
||||
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#pre-built) for macOS to install **rgbds 1.0.1**.
|
||||
|
||||
Now you're ready to [build **pokeyellow**](#build-pokeyellow).
|
||||
|
||||
|
|
@ -84,7 +84,7 @@ To install the software required for **pokeyellow**:
|
|||
sudo apt-get install make gcc git
|
||||
```
|
||||
|
||||
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 1.0.0** from source.
|
||||
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 1.0.1** from source.
|
||||
|
||||
### OpenSUSE
|
||||
|
||||
|
|
@ -94,7 +94,7 @@ To install the software required for **pokeyellow**:
|
|||
sudo zypper install make gcc git
|
||||
```
|
||||
|
||||
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 1.0.0** from source.
|
||||
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 1.0.1** from source.
|
||||
|
||||
### Arch Linux
|
||||
|
||||
|
|
@ -104,7 +104,7 @@ To install the software required for **pokeyellow**:
|
|||
sudo pacman -S make gcc git rgbds
|
||||
```
|
||||
|
||||
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 1.0.0** from source.
|
||||
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 1.0.1** from source.
|
||||
|
||||
### Termux
|
||||
|
||||
|
|
@ -120,7 +120,7 @@ To install **rgbds**:
|
|||
pkg install rgbds
|
||||
```
|
||||
|
||||
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 1.0.0** from source.
|
||||
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 1.0.1** from source.
|
||||
|
||||
### Other distros
|
||||
|
||||
|
|
@ -131,7 +131,7 @@ If your distro is not listed here, try to find the required software in its repo
|
|||
- `git`
|
||||
- `rgbds`
|
||||
|
||||
If `rgbds` is not available, you'll need to follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 1.0.0** from source.
|
||||
If `rgbds` is not available, you'll need to follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 1.0.1** from source.
|
||||
|
||||
Now you're ready to [build **pokeyellow**](#build-pokeyellow).
|
||||
|
||||
|
|
@ -153,8 +153,8 @@ make
|
|||
|
||||
### Build with a local rgbds version
|
||||
|
||||
If you have different projects that require different versions of `rgbds`, it might not be convenient to install rgbds 1.0.0 globally. Instead, you can put its files in a directory within pokeyellow, such as `pokeyellow/rgbds-1.0.0/`. Then specify it when you run `make`:
|
||||
If you have different projects that require different versions of `rgbds`, it might not be convenient to install rgbds 1.0.1 globally. Instead, you can put its files in a directory within pokeyellow, such as `pokeyellow/rgbds-1.0.1/`. Then specify it when you run `make`:
|
||||
|
||||
```bash
|
||||
make RGBDS=rgbds-1.0.0/
|
||||
make RGBDS=rgbds-1.0.1/
|
||||
```
|
||||
|
|
|
|||
10
Makefile
10
Makefile
|
|
@ -48,7 +48,15 @@ RGBGFXFLAGS ?= -Weverything
|
|||
.SECONDEXPANSION:
|
||||
.PRECIOUS:
|
||||
.SECONDARY:
|
||||
.PHONY: all yellow yellow_debug clean tidy compare tools
|
||||
.PHONY: \
|
||||
all \
|
||||
yellow \
|
||||
yellow_debug \
|
||||
yellow_vc \
|
||||
clean \
|
||||
tidy \
|
||||
compare \
|
||||
tools
|
||||
|
||||
all: $(roms)
|
||||
yellow: pokeyellow.gbc
|
||||
|
|
|
|||
|
|
@ -610,7 +610,7 @@
|
|||
const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_3
|
||||
const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_4
|
||||
const_skip
|
||||
const EVENT_677 ; ???
|
||||
const EVENT_ENTERED_ROCKET_HIDEOUT
|
||||
const_skip 7
|
||||
const EVENT_67F ; ???
|
||||
const_skip
|
||||
|
|
|
|||
|
|
@ -7,7 +7,11 @@ DEF SCREEN_BLOCK_HEIGHT EQU 5 ; blocks
|
|||
DEF SURROUNDING_WIDTH EQU SCREEN_BLOCK_WIDTH * BLOCK_WIDTH ; tiles
|
||||
DEF SURROUNDING_HEIGHT EQU SCREEN_BLOCK_HEIGHT * BLOCK_HEIGHT ; tiles
|
||||
|
||||
DEF SPRITEBUFFERSIZE EQU 7 * 7 * TILE_1BPP_SIZE
|
||||
DEF PIC_WIDTH EQU 7 ; tiles
|
||||
DEF PIC_HEIGHT EQU PIC_WIDTH ; tiles
|
||||
DEF PIC_SIZE EQU PIC_WIDTH * PIC_HEIGHT ; tiles
|
||||
|
||||
DEF SPRITEBUFFERSIZE EQU PIC_WIDTH * PIC_HEIGHT * TILE_1BPP_SIZE
|
||||
|
||||
; DMGPalToCGBPal
|
||||
DEF CONVERT_BGP EQU 0
|
||||
|
|
|
|||
|
|
@ -1,248 +0,0 @@
|
|||
DEF HIDE EQU $11
|
||||
DEF SHOW EQU $15
|
||||
|
||||
; MissableObjects indexes (see data/maps/hide_show_data.asm)
|
||||
; this is a list of the sprites that can be enabled/disabled during the game
|
||||
; TODO: mark sprite constants with an X that are never used
|
||||
|
||||
const_def
|
||||
const HS_PALLET_TOWN_OAK ; 00
|
||||
const HS_LYING_OLD_MAN ; 01
|
||||
const HS_OLD_MAN_1 ; 02
|
||||
const HS_OLD_MAN_2 ; 03
|
||||
const HS_MUSEUM_GUY ; 04
|
||||
const HS_GYM_GUY ; 05
|
||||
const HS_CERULEAN_RIVAL ; 06
|
||||
const HS_CERULEAN_ROCKET ; 07
|
||||
const HS_CERULEAN_GUARD_1 ; 08
|
||||
const HS_CERULEAN_CAVE_GUY ; 09
|
||||
const HS_CERULEAN_GUARD_2 ; 0A
|
||||
const HS_SAFFRON_CITY_1 ; 0B
|
||||
const HS_SAFFRON_CITY_2 ; 0C
|
||||
const HS_SAFFRON_CITY_3 ; 0D
|
||||
const HS_SAFFRON_CITY_4 ; 0E
|
||||
const HS_SAFFRON_CITY_5 ; 0F
|
||||
const HS_SAFFRON_CITY_6 ; 10
|
||||
const HS_SAFFRON_CITY_7 ; 11
|
||||
const HS_SAFFRON_CITY_8 ; 12
|
||||
const HS_SAFFRON_CITY_9 ; 13
|
||||
const HS_SAFFRON_CITY_A ; 14
|
||||
const HS_SAFFRON_CITY_B ; 15
|
||||
const HS_SAFFRON_CITY_C ; 16
|
||||
const HS_SAFFRON_CITY_D ; 17
|
||||
const HS_SAFFRON_CITY_E ; 18
|
||||
const HS_SAFFRON_CITY_F ; 19
|
||||
const HS_ROUTE_2_ITEM_1 ; 1A
|
||||
const HS_ROUTE_2_ITEM_2 ; 1B
|
||||
const HS_ROUTE_4_ITEM ; 1C
|
||||
const HS_ROUTE_9_ITEM ; 1D
|
||||
const HS_ROUTE_12_SNORLAX ; 1E
|
||||
const HS_ROUTE_12_ITEM_1 ; 1F
|
||||
const HS_ROUTE_12_ITEM_2 ; 20
|
||||
const HS_ROUTE_15_ITEM ; 21
|
||||
const HS_ROUTE_16_SNORLAX ; 22
|
||||
const HS_ROUTE_22_RIVAL_1 ; 23
|
||||
const HS_ROUTE_22_RIVAL_2 ; 24
|
||||
const HS_NUGGET_BRIDGE_GUY ; 25
|
||||
const HS_ROUTE_24_ITEM ; 26
|
||||
const HS_ROUTE_25_ITEM ; 27
|
||||
const HS_DAISY_SITTING ; 28
|
||||
const HS_DAISY_WALKING ; 29
|
||||
const HS_TOWN_MAP ; 2A
|
||||
const HS_OAKS_LAB_RIVAL ; 2B
|
||||
const HS_STARTER_BALL_1 ; 2C
|
||||
const HS_OAKS_LAB_OAK_1 ; 2D
|
||||
const HS_POKEDEX_1 ; 2E
|
||||
const HS_POKEDEX_2 ; 2F
|
||||
const HS_OAKS_LAB_OAK_2 ; 30
|
||||
const HS_VIRIDIAN_GYM_GIOVANNI ; 31
|
||||
const HS_VIRIDIAN_GYM_ITEM ; 32
|
||||
const HS_OLD_AMBER ; 33
|
||||
const HS_CERULEAN_BULBASAUR ; 34
|
||||
const HS_CERULEAN_CAVE_1F_ITEM_1 ; 35
|
||||
const HS_CERULEAN_CAVE_1F_ITEM_2 ; 36
|
||||
const HS_CERULEAN_CAVE_1F_ITEM_3 ; 37
|
||||
const HS_CERULEAN_CAVE_1F_ITEM_4 ; 38
|
||||
const HS_POKEMON_TOWER_2F_RIVAL ; 39
|
||||
const HS_POKEMON_TOWER_3F_ITEM ; 3A
|
||||
const HS_POKEMON_TOWER_4F_ITEM_1 ; 3B
|
||||
const HS_POKEMON_TOWER_4F_ITEM_2 ; 3C
|
||||
const HS_POKEMON_TOWER_4F_ITEM_3 ; 3D
|
||||
const HS_POKEMON_TOWER_5F_ITEM ; 3E
|
||||
const HS_POKEMON_TOWER_6F_ITEM_1 ; 3F
|
||||
const HS_POKEMON_TOWER_6F_ITEM_2 ; 40
|
||||
const HS_POKEMON_TOWER_7F_JESSIE ; 41
|
||||
const HS_POKEMON_TOWER_7F_JAMES ; 42
|
||||
const HS_POKEMON_TOWER_7F_MR_FUJI ; 43
|
||||
const HS_MR_FUJIS_HOUSE_MR_FUJI ; 44
|
||||
const HS_CELADON_MANSION_EEVEE_GIFT ; 45
|
||||
const HS_GAME_CORNER_ROCKET ; 46
|
||||
const HS_WARDENS_HOUSE_ITEM ; 47
|
||||
const HS_POKEMON_MANSION_1F_ITEM_1 ; 48
|
||||
const HS_POKEMON_MANSION_1F_ITEM_2 ; 49
|
||||
const HS_FIGHTING_DOJO_GIFT_1 ; 4A
|
||||
const HS_FIGHTING_DOJO_GIFT_2 ; 4B
|
||||
const HS_SILPH_CO_1F_RECEPTIONIST ; 4C
|
||||
const HS_VOLTORB_1 ; 4D
|
||||
const HS_VOLTORB_2 ; 4E
|
||||
const HS_VOLTORB_3 ; 4F
|
||||
const HS_ELECTRODE_1 ; 50
|
||||
const HS_VOLTORB_4 ; 51
|
||||
const HS_VOLTORB_5 ; 52
|
||||
const HS_ELECTRODE_2 ; 53
|
||||
const HS_VOLTORB_6 ; 54
|
||||
const HS_ZAPDOS ; 55
|
||||
const HS_POWER_PLANT_ITEM_1 ; 56
|
||||
const HS_POWER_PLANT_ITEM_2 ; 57
|
||||
const HS_POWER_PLANT_ITEM_3 ; 58
|
||||
const HS_POWER_PLANT_ITEM_4 ; 59
|
||||
const HS_POWER_PLANT_ITEM_5 ; 5A
|
||||
const HS_MOLTRES ; 5B
|
||||
const HS_VICTORY_ROAD_2F_ITEM_1 ; 5C
|
||||
const HS_VICTORY_ROAD_2F_ITEM_2 ; 5D
|
||||
const HS_VICTORY_ROAD_2F_ITEM_3 ; 5E
|
||||
const HS_VICTORY_ROAD_2F_ITEM_4 ; 5F
|
||||
const HS_VICTORY_ROAD_2F_BOULDER ; 60
|
||||
const HS_BILL_POKEMON ; 61
|
||||
const HS_BILL_1 ; 62
|
||||
const HS_BILL_2 ; 63
|
||||
const HS_VIRIDIAN_FOREST_ITEM_1 ; 64
|
||||
const HS_VIRIDIAN_FOREST_ITEM_2 ; 65
|
||||
const HS_VIRIDIAN_FOREST_ITEM_3 ; 66
|
||||
const HS_MT_MOON_1F_ITEM_1 ; 67
|
||||
const HS_MT_MOON_1F_ITEM_2 ; 68
|
||||
const HS_MT_MOON_1F_ITEM_3 ; 69
|
||||
const HS_MT_MOON_1F_ITEM_4 ; 6A
|
||||
const HS_MT_MOON_1F_ITEM_5 ; 6B
|
||||
const HS_MT_MOON_1F_ITEM_6 ; 6C
|
||||
const HS_MT_MOON_B2F_JESSIE ; 6D
|
||||
const HS_MT_MOON_B2F_JAMES ; 6E
|
||||
const HS_MT_MOON_B2F_FOSSIL_1 ; 6F
|
||||
const HS_MT_MOON_B2F_FOSSIL_2 ; 70
|
||||
const HS_MT_MOON_B2F_ITEM_1 ; 71
|
||||
const HS_MT_MOON_B2F_ITEM_2 ; 72
|
||||
const HS_SS_ANNE_2F_RIVAL ; 73
|
||||
const HS_SS_ANNE_1F_ROOMS_ITEM ; 74
|
||||
const HS_SS_ANNE_2F_ROOMS_ITEM_1 ; 75
|
||||
const HS_SS_ANNE_2F_ROOMS_ITEM_2 ; 76
|
||||
const HS_SS_ANNE_B1F_ROOMS_ITEM_1 ; 77
|
||||
const HS_SS_ANNE_B1F_ROOMS_ITEM_2 ; 78
|
||||
const HS_SS_ANNE_B1F_ROOMS_ITEM_3 ; 79
|
||||
const HS_VICTORY_ROAD_3F_ITEM_1 ; 7A
|
||||
const HS_VICTORY_ROAD_3F_ITEM_2 ; 7B
|
||||
const HS_VICTORY_ROAD_3F_BOULDER ; 7C
|
||||
const HS_ROCKET_HIDEOUT_B1F_ITEM_1 ; 7D
|
||||
const HS_ROCKET_HIDEOUT_B1F_ITEM_2 ; 7E
|
||||
const HS_ROCKET_HIDEOUT_B2F_ITEM_1 ; 7F
|
||||
const HS_ROCKET_HIDEOUT_B2F_ITEM_2 ; 80
|
||||
const HS_ROCKET_HIDEOUT_B2F_ITEM_3 ; 81
|
||||
const HS_ROCKET_HIDEOUT_B2F_ITEM_4 ; 82
|
||||
const HS_ROCKET_HIDEOUT_B3F_ITEM_1 ; 83
|
||||
const HS_ROCKET_HIDEOUT_B3F_ITEM_2 ; 84
|
||||
const HS_ROCKET_HIDEOUT_B4F_GIOVANNI ; 85
|
||||
const HS_ROCKET_HIDEOUT_B4F_JAMES ; 86
|
||||
const HS_ROCKET_HIDEOUT_B4F_JESSIE ; 87
|
||||
const HS_ROCKET_HIDEOUT_B4F_ITEM_1 ; 88
|
||||
const HS_ROCKET_HIDEOUT_B4F_ITEM_2 ; 89
|
||||
const HS_ROCKET_HIDEOUT_B4F_ITEM_3 ; 8A
|
||||
const HS_ROCKET_HIDEOUT_B4F_ITEM_4 ; 8B
|
||||
const HS_ROCKET_HIDEOUT_B4F_ITEM_5 ; 8C
|
||||
const HS_SILPH_CO_2F_1 ; 8D XXX never (de)activated?
|
||||
const HS_SILPH_CO_2F_2 ; 8E
|
||||
const HS_SILPH_CO_2F_3 ; 8F
|
||||
const HS_SILPH_CO_2F_4 ; 90
|
||||
const HS_SILPH_CO_2F_5 ; 91
|
||||
const HS_SILPH_CO_3F_1 ; 92
|
||||
const HS_SILPH_CO_3F_2 ; 93
|
||||
const HS_SILPH_CO_3F_ITEM ; 94
|
||||
const HS_SILPH_CO_4F_1 ; 95
|
||||
const HS_SILPH_CO_4F_2 ; 96
|
||||
const HS_SILPH_CO_4F_3 ; 97
|
||||
const HS_SILPH_CO_4F_ITEM_1 ; 98
|
||||
const HS_SILPH_CO_4F_ITEM_2 ; 99
|
||||
const HS_SILPH_CO_4F_ITEM_3 ; 9A
|
||||
const HS_SILPH_CO_5F_1 ; 9B
|
||||
const HS_SILPH_CO_5F_2 ; 9C
|
||||
const HS_SILPH_CO_5F_3 ; 9D
|
||||
const HS_SILPH_CO_5F_4 ; 9E
|
||||
const HS_SILPH_CO_5F_ITEM_1 ; 9F
|
||||
const HS_SILPH_CO_5F_ITEM_2 ; A0
|
||||
const HS_SILPH_CO_5F_ITEM_3 ; A1
|
||||
const HS_SILPH_CO_6F_1 ; A2
|
||||
const HS_SILPH_CO_6F_2 ; A3
|
||||
const HS_SILPH_CO_6F_3 ; A4
|
||||
const HS_SILPH_CO_6F_ITEM_1 ; A5
|
||||
const HS_SILPH_CO_6F_ITEM_2 ; A6
|
||||
const HS_SILPH_CO_7F_1 ; A7
|
||||
const HS_SILPH_CO_7F_2 ; A8
|
||||
const HS_SILPH_CO_7F_3 ; A9
|
||||
const HS_SILPH_CO_7F_4 ; AA
|
||||
const HS_SILPH_CO_7F_RIVAL ; AB
|
||||
const HS_SILPH_CO_7F_ITEM_1 ; AC
|
||||
const HS_SILPH_CO_7F_ITEM_2 ; AD
|
||||
const HS_SILPH_CO_7F_8 ; AE XXX sprite doesn't exist
|
||||
const HS_SILPH_CO_8F_1 ; AF
|
||||
const HS_SILPH_CO_8F_2 ; B0
|
||||
const HS_SILPH_CO_8F_3 ; B1
|
||||
const HS_SILPH_CO_9F_1 ; B2
|
||||
const HS_SILPH_CO_9F_2 ; B3
|
||||
const HS_SILPH_CO_9F_3 ; B4
|
||||
const HS_SILPH_CO_10F_1 ; B5
|
||||
const HS_SILPH_CO_10F_2 ; B6
|
||||
const HS_SILPH_CO_10F_3 ; B7 XXX never (de)activated?
|
||||
const HS_SILPH_CO_10F_ITEM_1 ; B8
|
||||
const HS_SILPH_CO_10F_ITEM_2 ; B9
|
||||
const HS_SILPH_CO_10F_ITEM_3 ; BA
|
||||
const HS_SILPH_CO_11F_1 ; BB
|
||||
const HS_SILPH_CO_11F_JAMES ; BC
|
||||
const HS_SILPH_CO_11F_2 ; BD
|
||||
const HS_SILPH_CO_11F_JESSIE ; BE
|
||||
const HS_UNUSED_MAP_F4_1 ; BF XXX sprite doesn't exist
|
||||
const HS_POKEMON_MANSION_2F_ITEM ; C0
|
||||
const HS_POKEMON_MANSION_3F_ITEM_1 ; C1
|
||||
const HS_POKEMON_MANSION_3F_ITEM_2 ; C2
|
||||
const HS_POKEMON_MANSION_B1F_ITEM_1 ; C3
|
||||
const HS_POKEMON_MANSION_B1F_ITEM_2 ; C4
|
||||
const HS_POKEMON_MANSION_B1F_ITEM_3 ; C5
|
||||
const HS_POKEMON_MANSION_B1F_ITEM_4 ; C6
|
||||
const HS_POKEMON_MANSION_B1F_ITEM_5 ; C7
|
||||
const HS_SAFARI_ZONE_EAST_ITEM_1 ; C8
|
||||
const HS_SAFARI_ZONE_EAST_ITEM_2 ; C9
|
||||
const HS_SAFARI_ZONE_EAST_ITEM_3 ; CA
|
||||
const HS_SAFARI_ZONE_EAST_ITEM_4 ; CB
|
||||
const HS_SAFARI_ZONE_NORTH_ITEM_1 ; CC
|
||||
const HS_SAFARI_ZONE_NORTH_ITEM_2 ; CD
|
||||
const HS_SAFARI_ZONE_WEST_ITEM_1 ; CE
|
||||
const HS_SAFARI_ZONE_WEST_ITEM_2 ; CF
|
||||
const HS_SAFARI_ZONE_WEST_ITEM_3 ; D0
|
||||
const HS_SAFARI_ZONE_WEST_ITEM_4 ; D1
|
||||
const HS_SAFARI_ZONE_CENTER_ITEM ; D2
|
||||
const HS_CERULEAN_CAVE_2F_ITEM_1 ; D3
|
||||
const HS_CERULEAN_CAVE_2F_ITEM_2 ; D4
|
||||
const HS_CERULEAN_CAVE_2F_ITEM_3 ; D5
|
||||
const HS_CERULEAN_CAVE_2F_ITEM_4 ; D6
|
||||
const HS_MEWTWO ; D7
|
||||
const HS_CERULEAN_CAVE_B1F_ITEM_1 ; D8
|
||||
const HS_CERULEAN_CAVE_B1F_ITEM_2 ; D9
|
||||
const HS_CERULEAN_CAVE_B1F_ITEM_3 ; DA
|
||||
const HS_CERULEAN_CAVE_B1F_ITEM_4 ; DB
|
||||
const HS_VICTORY_ROAD_1F_ITEM_1 ; DC
|
||||
const HS_VICTORY_ROAD_1F_ITEM_2 ; DD
|
||||
const HS_CHAMPIONS_ROOM_OAK ; DE
|
||||
const HS_SEAFOAM_ISLANDS_1F_BOULDER_1 ; DF
|
||||
const HS_SEAFOAM_ISLANDS_1F_BOULDER_2 ; E0
|
||||
const HS_SEAFOAM_ISLANDS_B1F_BOULDER_1 ; E1
|
||||
const HS_SEAFOAM_ISLANDS_B1F_BOULDER_2 ; E2
|
||||
const HS_SEAFOAM_ISLANDS_B2F_BOULDER_1 ; E3
|
||||
const HS_SEAFOAM_ISLANDS_B2F_BOULDER_2 ; E4
|
||||
const HS_SEAFOAM_ISLANDS_B3F_BOULDER_1 ; E5
|
||||
const HS_SEAFOAM_ISLANDS_B3F_BOULDER_2 ; E6
|
||||
const HS_SEAFOAM_ISLANDS_B3F_BOULDER_3 ; E7
|
||||
const HS_SEAFOAM_ISLANDS_B3F_BOULDER_4 ; E8
|
||||
const HS_SEAFOAM_ISLANDS_B4F_BOULDER_1 ; E9
|
||||
const HS_SEAFOAM_ISLANDS_B4F_BOULDER_2 ; EA
|
||||
const HS_ARTICUNO ; EB
|
||||
const HS_DAISY_SITTING_COPY ; EC
|
||||
const HS_DAISY_WALKING_COPY ; ED
|
||||
const HS_TOWN_MAP_COPY ; EE
|
||||
DEF NUM_HS_OBJECTS EQU const_value
|
||||
|
|
@ -4,12 +4,19 @@ MACRO map_const
|
|||
DEF \1_HEIGHT EQU \3
|
||||
ENDM
|
||||
|
||||
; "Indoor" maps are grouped sequentially (see data/maps/town_map_entries.asm)
|
||||
DEF NUM_INDOOR_MAP_GROUPS EQU 0
|
||||
MACRO end_indoor_group
|
||||
DEF INDOORGROUP_\1 EQU const_value
|
||||
REDEF NUM_INDOOR_MAP_GROUPS EQU NUM_INDOOR_MAP_GROUPS + 1
|
||||
ENDM
|
||||
|
||||
; map ids
|
||||
; indexes for:
|
||||
; - MapHeaderBanks (see data/maps/map_header_banks.asm)
|
||||
; - MapHeaderPointers (see data/maps/map_header_pointers.asm)
|
||||
; - MapSongBanks (see data/maps/songs.asm)
|
||||
; - MapHSPointers (see data/maps/hide_show_data.asm)
|
||||
; - ToggleableObjectMapPointers (see data/maps/toggleable_objects.asm)
|
||||
; - MapSpriteSets (see data/maps/sprite_sets.asm)
|
||||
; - ExternalMapEntries (see data/maps/town_map_entries.asm)
|
||||
; - WildDataPointers (see data/wild/grass_water.asm)
|
||||
|
|
@ -28,7 +35,9 @@ ENDM
|
|||
map_const INDIGO_PLATEAU, 10, 9 ; $09
|
||||
map_const SAFFRON_CITY, 20, 18 ; $0A
|
||||
DEF NUM_CITY_MAPS EQU const_value
|
||||
|
||||
map_const UNUSED_MAP_0B, 0, 0 ; $0B
|
||||
|
||||
DEF FIRST_ROUTE_MAP EQU const_value
|
||||
map_const ROUTE_1, 10, 18 ; $0C
|
||||
map_const ROUTE_2, 10, 36 ; $0D
|
||||
|
|
@ -55,22 +64,31 @@ DEF FIRST_ROUTE_MAP EQU const_value
|
|||
map_const ROUTE_23, 10, 72 ; $22
|
||||
map_const ROUTE_24, 10, 18 ; $23
|
||||
map_const ROUTE_25, 30, 9 ; $24
|
||||
|
||||
DEF FIRST_INDOOR_MAP EQU const_value
|
||||
map_const REDS_HOUSE_1F, 4, 4 ; $25
|
||||
map_const REDS_HOUSE_2F, 4, 4 ; $26
|
||||
map_const BLUES_HOUSE, 4, 4 ; $27
|
||||
map_const OAKS_LAB, 5, 6 ; $28
|
||||
end_indoor_group PALLET_TOWN
|
||||
|
||||
map_const VIRIDIAN_POKECENTER, 7, 4 ; $29
|
||||
map_const VIRIDIAN_MART, 4, 4 ; $2A
|
||||
map_const VIRIDIAN_SCHOOL_HOUSE, 4, 4 ; $2B
|
||||
map_const VIRIDIAN_NICKNAME_HOUSE, 4, 4 ; $2C
|
||||
map_const VIRIDIAN_GYM, 10, 9 ; $2D
|
||||
end_indoor_group VIRIDIAN_CITY
|
||||
|
||||
map_const DIGLETTS_CAVE_ROUTE_2, 4, 4 ; $2E
|
||||
map_const VIRIDIAN_FOREST_NORTH_GATE, 5, 4 ; $2F
|
||||
map_const ROUTE_2_TRADE_HOUSE, 4, 4 ; $30
|
||||
map_const ROUTE_2_GATE, 5, 4 ; $31
|
||||
map_const VIRIDIAN_FOREST_SOUTH_GATE, 5, 4 ; $32
|
||||
end_indoor_group ROUTE_2
|
||||
|
||||
map_const VIRIDIAN_FOREST, 17, 24 ; $33
|
||||
end_indoor_group VIRIDIAN_FOREST
|
||||
|
||||
map_const MUSEUM_1F, 10, 4 ; $34
|
||||
map_const MUSEUM_2F, 7, 4 ; $35
|
||||
map_const PEWTER_GYM, 5, 7 ; $36
|
||||
|
|
@ -78,42 +96,72 @@ DEF FIRST_INDOOR_MAP EQU const_value
|
|||
map_const PEWTER_MART, 4, 4 ; $38
|
||||
map_const PEWTER_SPEECH_HOUSE, 4, 4 ; $39
|
||||
map_const PEWTER_POKECENTER, 7, 4 ; $3A
|
||||
end_indoor_group PEWTER_CITY
|
||||
|
||||
map_const MT_MOON_1F, 20, 18 ; $3B
|
||||
map_const MT_MOON_B1F, 14, 14 ; $3C
|
||||
map_const MT_MOON_B2F, 20, 18 ; $3D
|
||||
end_indoor_group MT_MOON
|
||||
|
||||
map_const CERULEAN_TRASHED_HOUSE, 4, 4 ; $3E
|
||||
map_const CERULEAN_MELANIES_HOUSE, 4, 4 ; $3F
|
||||
map_const CERULEAN_POKECENTER, 7, 4 ; $40
|
||||
map_const CERULEAN_GYM, 5, 7 ; $41
|
||||
map_const BIKE_SHOP, 4, 4 ; $42
|
||||
map_const CERULEAN_MART, 4, 4 ; $43
|
||||
end_indoor_group CERULEAN_CITY
|
||||
|
||||
map_const MT_MOON_POKECENTER, 7, 4 ; $44
|
||||
end_indoor_group ROUTE_4
|
||||
|
||||
map_const CERULEAN_TRASHED_HOUSE_COPY, 4, 4 ; $45
|
||||
end_indoor_group CERULEAN_CITY_2
|
||||
|
||||
map_const ROUTE_5_GATE, 4, 3 ; $46
|
||||
map_const UNDERGROUND_PATH_ROUTE_5, 4, 4 ; $47
|
||||
map_const DAYCARE, 4, 4 ; $48
|
||||
end_indoor_group ROUTE_5
|
||||
|
||||
map_const ROUTE_6_GATE, 4, 3 ; $49
|
||||
map_const UNDERGROUND_PATH_ROUTE_6, 4, 4 ; $4A
|
||||
map_const UNDERGROUND_PATH_ROUTE_6_COPY, 4, 4 ; $4B
|
||||
end_indoor_group ROUTE_6
|
||||
|
||||
map_const ROUTE_7_GATE, 3, 4 ; $4C
|
||||
map_const UNDERGROUND_PATH_ROUTE_7, 4, 4 ; $4D
|
||||
map_const UNDERGROUND_PATH_ROUTE_7_COPY, 4, 4 ; $4E
|
||||
end_indoor_group ROUTE_7
|
||||
|
||||
map_const ROUTE_8_GATE, 3, 4 ; $4F
|
||||
map_const UNDERGROUND_PATH_ROUTE_8, 4, 4 ; $50
|
||||
end_indoor_group ROUTE_8
|
||||
|
||||
map_const ROCK_TUNNEL_POKECENTER, 7, 4 ; $51
|
||||
map_const ROCK_TUNNEL_1F, 20, 18 ; $52
|
||||
end_indoor_group ROCK_TUNNEL
|
||||
|
||||
map_const POWER_PLANT, 20, 18 ; $53
|
||||
end_indoor_group POWER_PLANT
|
||||
|
||||
map_const ROUTE_11_GATE_1F, 4, 5 ; $54
|
||||
map_const DIGLETTS_CAVE_ROUTE_11, 4, 4 ; $55
|
||||
map_const ROUTE_11_GATE_2F, 4, 4 ; $56
|
||||
end_indoor_group ROUTE_11
|
||||
|
||||
map_const ROUTE_12_GATE_1F, 5, 4 ; $57
|
||||
end_indoor_group ROUTE_12
|
||||
|
||||
map_const BILLS_HOUSE, 4, 4 ; $58
|
||||
end_indoor_group SEA_COTTAGE
|
||||
|
||||
map_const VERMILION_POKECENTER, 7, 4 ; $59
|
||||
map_const POKEMON_FAN_CLUB, 4, 4 ; $5A
|
||||
map_const VERMILION_MART, 4, 4 ; $5B
|
||||
map_const VERMILION_GYM, 5, 9 ; $5C
|
||||
map_const VERMILION_PIDGEY_HOUSE, 4, 4 ; $5D
|
||||
map_const VERMILION_DOCK, 14, 6 ; $5E
|
||||
end_indoor_group VERMILION_CITY
|
||||
|
||||
map_const SS_ANNE_1F, 20, 9 ; $5F
|
||||
map_const SS_ANNE_2F, 20, 9 ; $60
|
||||
map_const SS_ANNE_3F, 10, 3 ; $61
|
||||
|
|
@ -124,10 +172,14 @@ DEF FIRST_INDOOR_MAP EQU const_value
|
|||
map_const SS_ANNE_1F_ROOMS, 12, 8 ; $66
|
||||
map_const SS_ANNE_2F_ROOMS, 12, 8 ; $67
|
||||
map_const SS_ANNE_B1F_ROOMS, 12, 8 ; $68
|
||||
end_indoor_group SS_ANNE
|
||||
|
||||
map_const UNUSED_MAP_69, 0, 0 ; $69
|
||||
map_const UNUSED_MAP_6A, 0, 0 ; $6A
|
||||
map_const UNUSED_MAP_6B, 0, 0 ; $6B
|
||||
map_const VICTORY_ROAD_1F, 10, 9 ; $6C
|
||||
end_indoor_group VICTORY_ROAD
|
||||
|
||||
map_const UNUSED_MAP_6D, 0, 0 ; $6D
|
||||
map_const UNUSED_MAP_6E, 0, 0 ; $6E
|
||||
map_const UNUSED_MAP_6F, 0, 0 ; $6F
|
||||
|
|
@ -138,9 +190,17 @@ DEF FIRST_INDOOR_MAP EQU const_value
|
|||
map_const UNUSED_MAP_74, 0, 0 ; $74
|
||||
map_const UNUSED_MAP_75, 0, 0 ; $75
|
||||
map_const HALL_OF_FAME, 5, 4 ; $76
|
||||
end_indoor_group POKEMON_LEAGUE
|
||||
|
||||
map_const UNDERGROUND_PATH_NORTH_SOUTH, 4, 24 ; $77 ; UndergroundPathNorthSouth.blk is actually 4x23
|
||||
end_indoor_group UNDERGROUND_PATH
|
||||
|
||||
map_const CHAMPIONS_ROOM, 4, 4 ; $78
|
||||
end_indoor_group POKEMON_LEAGUE_2
|
||||
|
||||
map_const UNDERGROUND_PATH_WEST_EAST, 25, 4 ; $79
|
||||
end_indoor_group UNDERGROUND_PATH_2
|
||||
|
||||
map_const CELADON_MART_1F, 10, 4 ; $7A
|
||||
map_const CELADON_MART_2F, 10, 4 ; $7B
|
||||
map_const CELADON_MART_3F, 10, 4 ; $7C
|
||||
|
|
@ -160,7 +220,11 @@ DEF FIRST_INDOOR_MAP EQU const_value
|
|||
map_const CELADON_DINER, 5, 4 ; $8A
|
||||
map_const CELADON_CHIEF_HOUSE, 4, 4 ; $8B
|
||||
map_const CELADON_HOTEL, 7, 4 ; $8C
|
||||
end_indoor_group CELADON_CITY
|
||||
|
||||
map_const LAVENDER_POKECENTER, 7, 4 ; $8D
|
||||
end_indoor_group LAVENDER_TOWN
|
||||
|
||||
map_const POKEMON_TOWER_1F, 10, 9 ; $8E
|
||||
map_const POKEMON_TOWER_2F, 10, 9 ; $8F
|
||||
map_const POKEMON_TOWER_3F, 10, 9 ; $90
|
||||
|
|
@ -168,23 +232,41 @@ DEF FIRST_INDOOR_MAP EQU const_value
|
|||
map_const POKEMON_TOWER_5F, 10, 9 ; $92
|
||||
map_const POKEMON_TOWER_6F, 10, 9 ; $93
|
||||
map_const POKEMON_TOWER_7F, 10, 9 ; $94
|
||||
end_indoor_group POKEMON_TOWER
|
||||
|
||||
map_const MR_FUJIS_HOUSE, 4, 4 ; $95
|
||||
map_const LAVENDER_MART, 4, 4 ; $96
|
||||
map_const LAVENDER_CUBONE_HOUSE, 4, 4 ; $97
|
||||
end_indoor_group LAVENDER_TOWN_2
|
||||
|
||||
map_const FUCHSIA_MART, 4, 4 ; $98
|
||||
map_const FUCHSIA_BILLS_GRANDPAS_HOUSE, 4, 4 ; $99
|
||||
map_const FUCHSIA_POKECENTER, 7, 4 ; $9A
|
||||
map_const WARDENS_HOUSE, 5, 4 ; $9B
|
||||
end_indoor_group FUCHSIA_CITY
|
||||
|
||||
map_const SAFARI_ZONE_GATE, 4, 3 ; $9C
|
||||
end_indoor_group SAFARI_ZONE
|
||||
|
||||
map_const FUCHSIA_GYM, 5, 9 ; $9D
|
||||
map_const FUCHSIA_MEETING_ROOM, 7, 4 ; $9E
|
||||
end_indoor_group FUCHSIA_CITY_2
|
||||
|
||||
map_const SEAFOAM_ISLANDS_B1F, 15, 9 ; $9F
|
||||
map_const SEAFOAM_ISLANDS_B2F, 15, 9 ; $A0
|
||||
map_const SEAFOAM_ISLANDS_B3F, 15, 9 ; $A1
|
||||
map_const SEAFOAM_ISLANDS_B4F, 15, 9 ; $A2
|
||||
end_indoor_group SEAFOAM_ISLANDS
|
||||
|
||||
map_const VERMILION_OLD_ROD_HOUSE, 4, 4 ; $A3
|
||||
end_indoor_group VERMILION_CITY_2
|
||||
|
||||
map_const FUCHSIA_GOOD_ROD_HOUSE, 4, 4 ; $A4
|
||||
end_indoor_group FUCHSIA_CITY_3
|
||||
|
||||
map_const POKEMON_MANSION_1F, 15, 14 ; $A5
|
||||
end_indoor_group POKEMON_MANSION
|
||||
|
||||
map_const CINNABAR_GYM, 10, 9 ; $A6
|
||||
map_const CINNABAR_LAB, 9, 4 ; $A7
|
||||
map_const CINNABAR_LAB_TRADE_ROOM, 4, 4 ; $A8
|
||||
|
|
@ -193,7 +275,11 @@ DEF FIRST_INDOOR_MAP EQU const_value
|
|||
map_const CINNABAR_POKECENTER, 7, 4 ; $AB
|
||||
map_const CINNABAR_MART, 4, 4 ; $AC
|
||||
map_const CINNABAR_MART_COPY, 4, 4 ; $AD
|
||||
end_indoor_group CINNABAR_ISLAND
|
||||
|
||||
map_const INDIGO_PLATEAU_LOBBY, 8, 6 ; $AE
|
||||
end_indoor_group INDIGO_PLATEAU
|
||||
|
||||
map_const COPYCATS_HOUSE_1F, 4, 4 ; $AF
|
||||
map_const COPYCATS_HOUSE_2F, 4, 4 ; $B0
|
||||
map_const FIGHTING_DOJO, 5, 6 ; $B1
|
||||
|
|
@ -203,21 +289,45 @@ DEF FIRST_INDOOR_MAP EQU const_value
|
|||
map_const SILPH_CO_1F, 15, 9 ; $B5
|
||||
map_const SAFFRON_POKECENTER, 7, 4 ; $B6
|
||||
map_const MR_PSYCHICS_HOUSE, 4, 4 ; $B7
|
||||
end_indoor_group SAFFRON_CITY
|
||||
|
||||
map_const ROUTE_15_GATE_1F, 4, 5 ; $B8
|
||||
map_const ROUTE_15_GATE_2F, 4, 4 ; $B9
|
||||
end_indoor_group ROUTE_15
|
||||
|
||||
map_const ROUTE_16_GATE_1F, 4, 7 ; $BA
|
||||
map_const ROUTE_16_GATE_2F, 4, 4 ; $BB
|
||||
map_const ROUTE_16_FLY_HOUSE, 4, 4 ; $BC
|
||||
end_indoor_group ROUTE_16
|
||||
|
||||
map_const ROUTE_12_SUPER_ROD_HOUSE, 4, 4 ; $BD
|
||||
end_indoor_group ROUTE_12_2
|
||||
|
||||
map_const ROUTE_18_GATE_1F, 4, 5 ; $BE
|
||||
map_const ROUTE_18_GATE_2F, 4, 4 ; $BF
|
||||
end_indoor_group ROUTE_18
|
||||
|
||||
map_const SEAFOAM_ISLANDS_1F, 15, 9 ; $C0
|
||||
end_indoor_group SEAFOAM_ISLANDS_2
|
||||
|
||||
map_const ROUTE_22_GATE, 5, 4 ; $C1
|
||||
end_indoor_group ROUTE_22
|
||||
|
||||
map_const VICTORY_ROAD_2F, 15, 9 ; $C2
|
||||
end_indoor_group VICTORY_ROAD_2
|
||||
|
||||
map_const ROUTE_12_GATE_2F, 4, 4 ; $C3
|
||||
end_indoor_group ROUTE_12_3
|
||||
|
||||
map_const VERMILION_TRADE_HOUSE, 4, 4 ; $C4
|
||||
end_indoor_group VERMILION_CITY_3
|
||||
|
||||
map_const DIGLETTS_CAVE, 20, 18 ; $C5
|
||||
end_indoor_group DIGLETTS_CAVE
|
||||
|
||||
map_const VICTORY_ROAD_3F, 15, 9 ; $C6
|
||||
end_indoor_group VICTORY_ROAD_3
|
||||
|
||||
map_const ROCKET_HIDEOUT_B1F, 15, 14 ; $C7
|
||||
map_const ROCKET_HIDEOUT_B2F, 15, 14 ; $C8
|
||||
map_const ROCKET_HIDEOUT_B3F, 15, 14 ; $C9
|
||||
|
|
@ -226,6 +336,8 @@ DEF FIRST_INDOOR_MAP EQU const_value
|
|||
map_const UNUSED_MAP_CC, 0, 0 ; $CC
|
||||
map_const UNUSED_MAP_CD, 0, 0 ; $CD
|
||||
map_const UNUSED_MAP_CE, 0, 0 ; $CE
|
||||
end_indoor_group ROCKET_HQ
|
||||
|
||||
map_const SILPH_CO_2F, 15, 9 ; $CF
|
||||
map_const SILPH_CO_3F, 15, 9 ; $D0
|
||||
map_const SILPH_CO_4F, 15, 9 ; $D1
|
||||
|
|
@ -233,9 +345,13 @@ DEF FIRST_INDOOR_MAP EQU const_value
|
|||
map_const SILPH_CO_6F, 13, 9 ; $D3
|
||||
map_const SILPH_CO_7F, 13, 9 ; $D4
|
||||
map_const SILPH_CO_8F, 13, 9 ; $D5
|
||||
end_indoor_group SILPH_CO
|
||||
|
||||
map_const POKEMON_MANSION_2F, 15, 14 ; $D6
|
||||
map_const POKEMON_MANSION_3F, 15, 9 ; $D7
|
||||
map_const POKEMON_MANSION_B1F, 15, 14 ; $D8
|
||||
end_indoor_group POKEMON_MANSION_2
|
||||
|
||||
map_const SAFARI_ZONE_EAST, 15, 13 ; $D9
|
||||
map_const SAFARI_ZONE_NORTH, 20, 18 ; $DA
|
||||
map_const SAFARI_ZONE_WEST, 15, 13 ; $DB
|
||||
|
|
@ -245,17 +361,29 @@ DEF FIRST_INDOOR_MAP EQU const_value
|
|||
map_const SAFARI_ZONE_WEST_REST_HOUSE, 4, 4 ; $DF
|
||||
map_const SAFARI_ZONE_EAST_REST_HOUSE, 4, 4 ; $E0
|
||||
map_const SAFARI_ZONE_NORTH_REST_HOUSE, 4, 4 ; $E1
|
||||
end_indoor_group SAFARI_ZONE_2
|
||||
|
||||
map_const CERULEAN_CAVE_2F, 15, 9 ; $E2
|
||||
map_const CERULEAN_CAVE_B1F, 15, 9 ; $E3
|
||||
map_const CERULEAN_CAVE_1F, 15, 9 ; $E4
|
||||
end_indoor_group CERULEAN_CAVE
|
||||
|
||||
map_const NAME_RATERS_HOUSE, 4, 4 ; $E5
|
||||
end_indoor_group LAVENDER_TOWN_3
|
||||
|
||||
map_const CERULEAN_BADGE_HOUSE, 4, 4 ; $E6
|
||||
end_indoor_group CERULEAN_CITY_3
|
||||
|
||||
map_const UNUSED_MAP_E7, 0, 0 ; $E7
|
||||
map_const ROCK_TUNNEL_B1F, 20, 18 ; $E8
|
||||
end_indoor_group ROCK_TUNNEL_2
|
||||
|
||||
map_const SILPH_CO_9F, 13, 9 ; $E9
|
||||
map_const SILPH_CO_10F, 8, 9 ; $EA
|
||||
map_const SILPH_CO_11F, 9, 9 ; $EB
|
||||
map_const SILPH_CO_ELEVATOR, 2, 2 ; $EC
|
||||
end_indoor_group SILPH_CO_2
|
||||
|
||||
map_const UNUSED_MAP_ED, 0, 0 ; $ED
|
||||
map_const UNUSED_MAP_EE, 0, 0 ; $EE
|
||||
map_const TRADE_CENTER, 5, 4 ; $EF
|
||||
|
|
@ -267,9 +395,14 @@ DEF FIRST_INDOOR_MAP EQU const_value
|
|||
map_const LORELEIS_ROOM, 5, 6 ; $F5
|
||||
map_const BRUNOS_ROOM, 5, 6 ; $F6
|
||||
map_const AGATHAS_ROOM, 5, 6 ; $F7
|
||||
end_indoor_group POKEMON_LEAGUE_3
|
||||
|
||||
map_const SUMMER_BEACH_HOUSE, 7, 4 ; $F8
|
||||
end_indoor_group ROUTE_19
|
||||
DEF NUM_MAPS EQU const_value
|
||||
|
||||
; Indoor maps, such as houses, use this as the Map ID in their exit warps
|
||||
; This map ID takes the player back to the last outdoor map they were on, stored in wLastMap
|
||||
DEF LAST_MAP EQU -1
|
||||
DEF LAST_MAP EQU $ff
|
||||
|
||||
ASSERT NUM_MAPS <= LAST_MAP, "map IDs overlap LAST_MAP"
|
||||
|
|
|
|||
|
|
@ -90,3 +90,8 @@ DEF FIRST_PARTY_MENU_TEXT_ID EQU const_value
|
|||
const NAME_PLAYER_SCREEN ; 0
|
||||
const NAME_RIVAL_SCREEN ; 1
|
||||
const NAME_MON_SCREEN ; 2
|
||||
|
||||
; Stats box layout (see engine/pokemon/status_screen.asm)
|
||||
const_def
|
||||
const STATUS_SCREEN_STATS_BOX ; 0
|
||||
const LEVEL_UP_STATS_BOX ; 1
|
||||
|
|
|
|||
9
constants/player_constants.asm
Normal file
9
constants/player_constants.asm
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
DEF NUM_PLAYER_NAMES EQU 3
|
||||
|
||||
DEF PLAYERNAME1 EQUS "YELLOW"
|
||||
DEF PLAYERNAME2 EQUS "ASH"
|
||||
DEF PLAYERNAME3 EQUS "JACK"
|
||||
|
||||
DEF RIVALNAME1 EQUS "BLUE"
|
||||
DEF RIVALNAME2 EQUS "GARY"
|
||||
DEF RIVALNAME3 EQUS "JOHN"
|
||||
|
|
@ -44,7 +44,7 @@ DEF MON_SPD_EXP rw
|
|||
DEF MON_SPC_EXP rw
|
||||
DEF MON_DVS rw
|
||||
DEF MON_PP rb NUM_MOVES
|
||||
DEF BOXMON_STRUCT_LENGTH EQU _RS
|
||||
DEF BOXMON_STRUCT_LENGTH EQU _RS ; $21
|
||||
DEF MON_LEVEL rb
|
||||
DEF MON_STATS rw NUM_STATS
|
||||
rsset MON_STATS
|
||||
|
|
@ -53,7 +53,7 @@ DEF MON_ATK rw
|
|||
DEF MON_DEF rw
|
||||
DEF MON_SPD rw
|
||||
DEF MON_SPC rw
|
||||
DEF PARTYMON_STRUCT_LENGTH EQU _RS
|
||||
DEF PARTYMON_STRUCT_LENGTH EQU _RS ; $2c
|
||||
|
||||
DEF PARTY_LENGTH EQU 6
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,12 @@
|
|||
DEF NAME_LENGTH EQU 11
|
||||
DEF ITEM_NAME_LENGTH EQU 13
|
||||
DEF NAME_BUFFER_LENGTH EQU 20
|
||||
DEF NAME_LENGTH_JP EQU 6
|
||||
DEF PLAYER_NAME_LENGTH EQU 8
|
||||
DEF STAT_NAME_LENGTH EQU 10
|
||||
DEF NAME_LENGTH EQU 11
|
||||
DEF ITEM_NAME_LENGTH EQU 13
|
||||
DEF TRAINER_NAME_LENGTH EQU 13
|
||||
DEF MOVE_NAME_LENGTH EQU 14
|
||||
DEF GYM_CITY_LENGTH EQU 17
|
||||
DEF NAME_BUFFER_LENGTH EQU 20
|
||||
DEF NAME_LENGTH_JP EQU 6
|
||||
|
||||
; PrintNumber, PrintBCDNumber
|
||||
const_def 5
|
||||
|
|
|
|||
408
constants/toggle_constants.asm
Normal file
408
constants/toggle_constants.asm
Normal file
|
|
@ -0,0 +1,408 @@
|
|||
DEF OFF EQU $11
|
||||
DEF ON EQU $15
|
||||
|
||||
MACRO toggle_consts_for
|
||||
DEF TOGGLEMAP{\1}_ID EQU const_value
|
||||
DEF TOGGLEMAP{\1}_NAME EQUS "\1"
|
||||
ENDM
|
||||
|
||||
; ToggleableObjectStates indexes (see data/maps/toggleable_objects.asm)
|
||||
; This lists the object_events that can be toggled by ShowObject/HideObject.
|
||||
; The constants marked with an X are never used, because those object_events
|
||||
; are not toggled on/off in any map's script.
|
||||
; (The X-ed ones are either items or static Pokemon encounters that deactivate
|
||||
; after battle and are detected in wToggleableObjectList.)
|
||||
|
||||
const_def
|
||||
|
||||
toggle_consts_for PALLET_TOWN
|
||||
const TOGGLE_PALLET_TOWN_OAK ; 00
|
||||
|
||||
toggle_consts_for VIRIDIAN_CITY
|
||||
const TOGGLE_LYING_OLD_MAN ; 01
|
||||
const TOGGLE_OLD_MAN_1 ; 02
|
||||
const TOGGLE_OLD_MAN_2 ; 03
|
||||
|
||||
toggle_consts_for PEWTER_CITY
|
||||
const TOGGLE_MUSEUM_GUY ; 04
|
||||
const TOGGLE_GYM_GUY ; 05
|
||||
|
||||
toggle_consts_for CERULEAN_CITY
|
||||
const TOGGLE_CERULEAN_RIVAL ; 06
|
||||
const TOGGLE_CERULEAN_ROCKET ; 07
|
||||
const TOGGLE_CERULEAN_GUARD_1 ; 08
|
||||
const TOGGLE_CERULEAN_CAVE_GUY ; 09
|
||||
const TOGGLE_CERULEAN_GUARD_2 ; 0A
|
||||
|
||||
toggle_consts_for SAFFRON_CITY
|
||||
const TOGGLE_SAFFRON_CITY_1 ; 0B
|
||||
const TOGGLE_SAFFRON_CITY_2 ; 0C
|
||||
const TOGGLE_SAFFRON_CITY_3 ; 0D
|
||||
const TOGGLE_SAFFRON_CITY_4 ; 0E
|
||||
const TOGGLE_SAFFRON_CITY_5 ; 0F
|
||||
const TOGGLE_SAFFRON_CITY_6 ; 10
|
||||
const TOGGLE_SAFFRON_CITY_7 ; 11
|
||||
const TOGGLE_SAFFRON_CITY_8 ; 12
|
||||
const TOGGLE_SAFFRON_CITY_9 ; 13
|
||||
const TOGGLE_SAFFRON_CITY_A ; 14
|
||||
const TOGGLE_SAFFRON_CITY_B ; 15
|
||||
const TOGGLE_SAFFRON_CITY_C ; 16
|
||||
const TOGGLE_SAFFRON_CITY_D ; 17
|
||||
const TOGGLE_SAFFRON_CITY_E ; 18
|
||||
const TOGGLE_SAFFRON_CITY_F ; 19
|
||||
|
||||
toggle_consts_for ROUTE_2
|
||||
const TOGGLE_ROUTE_2_ITEM_1 ; 1A X
|
||||
const TOGGLE_ROUTE_2_ITEM_2 ; 1B X
|
||||
|
||||
toggle_consts_for ROUTE_4
|
||||
const TOGGLE_ROUTE_4_ITEM ; 1C X
|
||||
|
||||
toggle_consts_for ROUTE_9
|
||||
const TOGGLE_ROUTE_9_ITEM ; 1D X
|
||||
|
||||
toggle_consts_for ROUTE_12
|
||||
const TOGGLE_ROUTE_12_SNORLAX ; 1E
|
||||
const TOGGLE_ROUTE_12_ITEM_1 ; 1F X
|
||||
const TOGGLE_ROUTE_12_ITEM_2 ; 20 X
|
||||
|
||||
toggle_consts_for ROUTE_15
|
||||
const TOGGLE_ROUTE_15_ITEM ; 21 X
|
||||
|
||||
toggle_consts_for ROUTE_16
|
||||
const TOGGLE_ROUTE_16_SNORLAX ; 22
|
||||
|
||||
toggle_consts_for ROUTE_22
|
||||
const TOGGLE_ROUTE_22_RIVAL_1 ; 23
|
||||
const TOGGLE_ROUTE_22_RIVAL_2 ; 24
|
||||
|
||||
toggle_consts_for ROUTE_24
|
||||
const TOGGLE_NUGGET_BRIDGE_GUY ; 25
|
||||
const TOGGLE_ROUTE_24_ITEM ; 26 X
|
||||
|
||||
toggle_consts_for ROUTE_25
|
||||
const TOGGLE_ROUTE_25_ITEM ; 27 X
|
||||
|
||||
toggle_consts_for BLUES_HOUSE
|
||||
const TOGGLE_DAISY_SITTING ; 28
|
||||
const TOGGLE_DAISY_WALKING ; 29
|
||||
const TOGGLE_TOWN_MAP ; 2A
|
||||
|
||||
toggle_consts_for OAKS_LAB
|
||||
const TOGGLE_OAKS_LAB_RIVAL ; 2B
|
||||
const TOGGLE_STARTER_BALL_1 ; 2C
|
||||
const TOGGLE_OAKS_LAB_OAK_1 ; 2D
|
||||
const TOGGLE_POKEDEX_1 ; 2E
|
||||
const TOGGLE_POKEDEX_2 ; 2F
|
||||
const TOGGLE_OAKS_LAB_OAK_2 ; 30
|
||||
|
||||
toggle_consts_for VIRIDIAN_GYM
|
||||
const TOGGLE_VIRIDIAN_GYM_GIOVANNI ; 31
|
||||
const TOGGLE_VIRIDIAN_GYM_ITEM ; 32 X
|
||||
|
||||
toggle_consts_for MUSEUM_1F
|
||||
const TOGGLE_OLD_AMBER ; 33
|
||||
|
||||
toggle_consts_for CERULEAN_MELANIES_HOUSE
|
||||
const TOGGLE_CERULEAN_BULBASAUR ; 34
|
||||
|
||||
toggle_consts_for CERULEAN_CAVE_1F
|
||||
const TOGGLE_CERULEAN_CAVE_1F_ITEM_1 ; 35 X
|
||||
const TOGGLE_CERULEAN_CAVE_1F_ITEM_2 ; 36 X
|
||||
const TOGGLE_CERULEAN_CAVE_1F_ITEM_3 ; 37 X
|
||||
const TOGGLE_CERULEAN_CAVE_1F_ITEM_4 ; 38 X
|
||||
|
||||
toggle_consts_for POKEMON_TOWER_2F
|
||||
const TOGGLE_POKEMON_TOWER_2F_RIVAL ; 39
|
||||
|
||||
toggle_consts_for POKEMON_TOWER_3F
|
||||
const TOGGLE_POKEMON_TOWER_3F_ITEM ; 3A X
|
||||
|
||||
toggle_consts_for POKEMON_TOWER_4F
|
||||
const TOGGLE_POKEMON_TOWER_4F_ITEM_1 ; 3B X
|
||||
const TOGGLE_POKEMON_TOWER_4F_ITEM_2 ; 3C X
|
||||
const TOGGLE_POKEMON_TOWER_4F_ITEM_3 ; 3D X
|
||||
|
||||
toggle_consts_for POKEMON_TOWER_5F
|
||||
const TOGGLE_POKEMON_TOWER_5F_ITEM ; 3E X
|
||||
|
||||
toggle_consts_for POKEMON_TOWER_6F
|
||||
const TOGGLE_POKEMON_TOWER_6F_ITEM_1 ; 3F X
|
||||
const TOGGLE_POKEMON_TOWER_6F_ITEM_2 ; 40 X
|
||||
|
||||
toggle_consts_for POKEMON_TOWER_7F
|
||||
const TOGGLE_POKEMON_TOWER_7F_JESSIE ; 41
|
||||
const TOGGLE_POKEMON_TOWER_7F_JAMES ; 42
|
||||
const TOGGLE_POKEMON_TOWER_7F_MR_FUJI ; 43
|
||||
|
||||
toggle_consts_for MR_FUJIS_HOUSE
|
||||
const TOGGLE_MR_FUJIS_HOUSE_MR_FUJI ; 44
|
||||
|
||||
toggle_consts_for CELADON_MANSION_ROOF_HOUSE
|
||||
const TOGGLE_CELADON_MANSION_EEVEE_GIFT ; 45
|
||||
|
||||
toggle_consts_for GAME_CORNER
|
||||
const TOGGLE_GAME_CORNER_ROCKET ; 46
|
||||
|
||||
toggle_consts_for WARDENS_HOUSE
|
||||
const TOGGLE_WARDENS_HOUSE_ITEM ; 47 X
|
||||
|
||||
toggle_consts_for POKEMON_MANSION_1F
|
||||
const TOGGLE_POKEMON_MANSION_1F_ITEM_1 ; 48 X
|
||||
const TOGGLE_POKEMON_MANSION_1F_ITEM_2 ; 49 X
|
||||
|
||||
toggle_consts_for FIGHTING_DOJO
|
||||
const TOGGLE_FIGHTING_DOJO_GIFT_1 ; 4A
|
||||
const TOGGLE_FIGHTING_DOJO_GIFT_2 ; 4B
|
||||
|
||||
toggle_consts_for SILPH_CO_1F
|
||||
const TOGGLE_SILPH_CO_1F_RECEPTIONIST ; 4C
|
||||
|
||||
toggle_consts_for POWER_PLANT
|
||||
const TOGGLE_VOLTORB_1 ; 4D X
|
||||
const TOGGLE_VOLTORB_2 ; 4E X
|
||||
const TOGGLE_VOLTORB_3 ; 4F X
|
||||
const TOGGLE_ELECTRODE_1 ; 50 X
|
||||
const TOGGLE_VOLTORB_4 ; 51 X
|
||||
const TOGGLE_VOLTORB_5 ; 52 X
|
||||
const TOGGLE_ELECTRODE_2 ; 53 X
|
||||
const TOGGLE_VOLTORB_6 ; 54 X
|
||||
const TOGGLE_ZAPDOS ; 55 X
|
||||
const TOGGLE_POWER_PLANT_ITEM_1 ; 56 X
|
||||
const TOGGLE_POWER_PLANT_ITEM_2 ; 57 X
|
||||
const TOGGLE_POWER_PLANT_ITEM_3 ; 58 X
|
||||
const TOGGLE_POWER_PLANT_ITEM_4 ; 59 X
|
||||
const TOGGLE_POWER_PLANT_ITEM_5 ; 5A X
|
||||
|
||||
toggle_consts_for VICTORY_ROAD_2F
|
||||
const TOGGLE_MOLTRES ; 5B X
|
||||
const TOGGLE_VICTORY_ROAD_2F_ITEM_1 ; 5C X
|
||||
const TOGGLE_VICTORY_ROAD_2F_ITEM_2 ; 5D X
|
||||
const TOGGLE_VICTORY_ROAD_2F_ITEM_3 ; 5E X
|
||||
const TOGGLE_VICTORY_ROAD_2F_ITEM_4 ; 5F X
|
||||
const TOGGLE_VICTORY_ROAD_2F_BOULDER ; 60
|
||||
|
||||
toggle_consts_for BILLS_HOUSE
|
||||
const TOGGLE_BILL_POKEMON ; 61
|
||||
const TOGGLE_BILL_1 ; 62
|
||||
const TOGGLE_BILL_2 ; 63
|
||||
|
||||
toggle_consts_for VIRIDIAN_FOREST
|
||||
const TOGGLE_VIRIDIAN_FOREST_ITEM_1 ; 64 X
|
||||
const TOGGLE_VIRIDIAN_FOREST_ITEM_2 ; 65 X
|
||||
const TOGGLE_VIRIDIAN_FOREST_ITEM_3 ; 66 X
|
||||
|
||||
toggle_consts_for MT_MOON_1F
|
||||
const TOGGLE_MT_MOON_1F_ITEM_1 ; 67 X
|
||||
const TOGGLE_MT_MOON_1F_ITEM_2 ; 68 X
|
||||
const TOGGLE_MT_MOON_1F_ITEM_3 ; 69 X
|
||||
const TOGGLE_MT_MOON_1F_ITEM_4 ; 6A X
|
||||
const TOGGLE_MT_MOON_1F_ITEM_5 ; 6B X
|
||||
const TOGGLE_MT_MOON_1F_ITEM_6 ; 6C X
|
||||
|
||||
toggle_consts_for MT_MOON_B2F
|
||||
const TOGGLE_MT_MOON_B2F_JESSIE ; 6D
|
||||
const TOGGLE_MT_MOON_B2F_JAMES ; 6E
|
||||
const TOGGLE_MT_MOON_B2F_FOSSIL_1 ; 6F
|
||||
const TOGGLE_MT_MOON_B2F_FOSSIL_2 ; 70
|
||||
const TOGGLE_MT_MOON_B2F_ITEM_1 ; 71 X
|
||||
const TOGGLE_MT_MOON_B2F_ITEM_2 ; 72 X
|
||||
|
||||
toggle_consts_for SS_ANNE_2F
|
||||
const TOGGLE_SS_ANNE_2F_RIVAL ; 73
|
||||
|
||||
toggle_consts_for SS_ANNE_1F_ROOMS
|
||||
const TOGGLE_SS_ANNE_1F_ROOMS_ITEM ; 74 X
|
||||
|
||||
toggle_consts_for SS_ANNE_2F_ROOMS
|
||||
const TOGGLE_SS_ANNE_2F_ROOMS_ITEM_1 ; 75 X
|
||||
const TOGGLE_SS_ANNE_2F_ROOMS_ITEM_2 ; 76 X
|
||||
|
||||
toggle_consts_for SS_ANNE_B1F_ROOMS
|
||||
const TOGGLE_SS_ANNE_B1F_ROOMS_ITEM_1 ; 77 X
|
||||
const TOGGLE_SS_ANNE_B1F_ROOMS_ITEM_2 ; 78 X
|
||||
const TOGGLE_SS_ANNE_B1F_ROOMS_ITEM_3 ; 79 X
|
||||
|
||||
toggle_consts_for VICTORY_ROAD_3F
|
||||
const TOGGLE_VICTORY_ROAD_3F_ITEM_1 ; 7A X
|
||||
const TOGGLE_VICTORY_ROAD_3F_ITEM_2 ; 7B X
|
||||
const TOGGLE_VICTORY_ROAD_3F_BOULDER ; 7C
|
||||
|
||||
toggle_consts_for ROCKET_HIDEOUT_B1F
|
||||
const TOGGLE_ROCKET_HIDEOUT_B1F_ITEM_1 ; 7D X
|
||||
const TOGGLE_ROCKET_HIDEOUT_B1F_ITEM_2 ; 7E X
|
||||
|
||||
toggle_consts_for ROCKET_HIDEOUT_B2F
|
||||
const TOGGLE_ROCKET_HIDEOUT_B2F_ITEM_1 ; 7F X
|
||||
const TOGGLE_ROCKET_HIDEOUT_B2F_ITEM_2 ; 80 X
|
||||
const TOGGLE_ROCKET_HIDEOUT_B2F_ITEM_3 ; 81 X
|
||||
const TOGGLE_ROCKET_HIDEOUT_B2F_ITEM_4 ; 82 X
|
||||
|
||||
toggle_consts_for ROCKET_HIDEOUT_B3F
|
||||
const TOGGLE_ROCKET_HIDEOUT_B3F_ITEM_1 ; 83 X
|
||||
const TOGGLE_ROCKET_HIDEOUT_B3F_ITEM_2 ; 84 X
|
||||
|
||||
toggle_consts_for ROCKET_HIDEOUT_B4F
|
||||
const TOGGLE_ROCKET_HIDEOUT_B4F_GIOVANNI ; 85
|
||||
const TOGGLE_ROCKET_HIDEOUT_B4F_JAMES ; 86
|
||||
const TOGGLE_ROCKET_HIDEOUT_B4F_JESSIE ; 87
|
||||
const TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_1 ; 88 X
|
||||
const TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_2 ; 89 X
|
||||
const TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_3 ; 8A X
|
||||
const TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_4 ; 8B
|
||||
const TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_5 ; 8C
|
||||
|
||||
toggle_consts_for SILPH_CO_2F
|
||||
const TOGGLE_SILPH_CO_2F_1 ; 8D XXX never (de)activated?
|
||||
const TOGGLE_SILPH_CO_2F_2 ; 8E
|
||||
const TOGGLE_SILPH_CO_2F_3 ; 8F
|
||||
const TOGGLE_SILPH_CO_2F_4 ; 90
|
||||
const TOGGLE_SILPH_CO_2F_5 ; 91
|
||||
|
||||
toggle_consts_for SILPH_CO_3F
|
||||
const TOGGLE_SILPH_CO_3F_1 ; 92
|
||||
const TOGGLE_SILPH_CO_3F_2 ; 93
|
||||
const TOGGLE_SILPH_CO_3F_ITEM ; 94 X
|
||||
|
||||
toggle_consts_for SILPH_CO_4F
|
||||
const TOGGLE_SILPH_CO_4F_1 ; 95
|
||||
const TOGGLE_SILPH_CO_4F_2 ; 96
|
||||
const TOGGLE_SILPH_CO_4F_3 ; 97
|
||||
const TOGGLE_SILPH_CO_4F_ITEM_1 ; 98 X
|
||||
const TOGGLE_SILPH_CO_4F_ITEM_2 ; 99 X
|
||||
const TOGGLE_SILPH_CO_4F_ITEM_3 ; 9A X
|
||||
|
||||
toggle_consts_for SILPH_CO_5F
|
||||
const TOGGLE_SILPH_CO_5F_1 ; 9B
|
||||
const TOGGLE_SILPH_CO_5F_2 ; 9C
|
||||
const TOGGLE_SILPH_CO_5F_3 ; 9D
|
||||
const TOGGLE_SILPH_CO_5F_4 ; 9E
|
||||
const TOGGLE_SILPH_CO_5F_ITEM_1 ; 9F X
|
||||
const TOGGLE_SILPH_CO_5F_ITEM_2 ; A0 X
|
||||
const TOGGLE_SILPH_CO_5F_ITEM_3 ; A1 X
|
||||
|
||||
toggle_consts_for SILPH_CO_6F
|
||||
const TOGGLE_SILPH_CO_6F_1 ; A2
|
||||
const TOGGLE_SILPH_CO_6F_2 ; A3
|
||||
const TOGGLE_SILPH_CO_6F_3 ; A4
|
||||
const TOGGLE_SILPH_CO_6F_ITEM_1 ; A5 X
|
||||
const TOGGLE_SILPH_CO_6F_ITEM_2 ; A6 X
|
||||
|
||||
toggle_consts_for SILPH_CO_7F
|
||||
const TOGGLE_SILPH_CO_7F_1 ; A7
|
||||
const TOGGLE_SILPH_CO_7F_2 ; A8
|
||||
const TOGGLE_SILPH_CO_7F_3 ; A9
|
||||
const TOGGLE_SILPH_CO_7F_4 ; AA
|
||||
const TOGGLE_SILPH_CO_7F_RIVAL ; AB
|
||||
const TOGGLE_SILPH_CO_7F_ITEM_1 ; AC X
|
||||
const TOGGLE_SILPH_CO_7F_ITEM_2 ; AD X
|
||||
const TOGGLE_SILPH_CO_7F_8 ; AE XXX sprite doesn't exist
|
||||
|
||||
toggle_consts_for SILPH_CO_8F
|
||||
const TOGGLE_SILPH_CO_8F_1 ; AF
|
||||
const TOGGLE_SILPH_CO_8F_2 ; B0
|
||||
const TOGGLE_SILPH_CO_8F_3 ; B1
|
||||
|
||||
toggle_consts_for SILPH_CO_9F
|
||||
const TOGGLE_SILPH_CO_9F_1 ; B2
|
||||
const TOGGLE_SILPH_CO_9F_2 ; B3
|
||||
const TOGGLE_SILPH_CO_9F_3 ; B4
|
||||
|
||||
toggle_consts_for SILPH_CO_10F
|
||||
const TOGGLE_SILPH_CO_10F_1 ; B5
|
||||
const TOGGLE_SILPH_CO_10F_2 ; B6
|
||||
const TOGGLE_SILPH_CO_10F_3 ; B7 XXX never (de)activated?
|
||||
const TOGGLE_SILPH_CO_10F_ITEM_1 ; B8 X
|
||||
const TOGGLE_SILPH_CO_10F_ITEM_2 ; B9 X
|
||||
const TOGGLE_SILPH_CO_10F_ITEM_3 ; BA X
|
||||
|
||||
toggle_consts_for SILPH_CO_11F
|
||||
const TOGGLE_SILPH_CO_11F_1 ; BB
|
||||
const TOGGLE_SILPH_CO_11F_JAMES ; BC
|
||||
const TOGGLE_SILPH_CO_11F_2 ; BD
|
||||
const TOGGLE_SILPH_CO_11F_JESSIE ; BE
|
||||
|
||||
toggle_consts_for UNUSED_MAP_F4
|
||||
const TOGGLE_UNUSED_MAP_F4_1 ; BF XXX sprite doesn't exist
|
||||
|
||||
toggle_consts_for POKEMON_MANSION_2F
|
||||
const TOGGLE_POKEMON_MANSION_2F_ITEM ; C0 X
|
||||
|
||||
toggle_consts_for POKEMON_MANSION_3F
|
||||
const TOGGLE_POKEMON_MANSION_3F_ITEM_1 ; C1 X
|
||||
const TOGGLE_POKEMON_MANSION_3F_ITEM_2 ; C2 X
|
||||
|
||||
toggle_consts_for POKEMON_MANSION_B1F
|
||||
const TOGGLE_POKEMON_MANSION_B1F_ITEM_1 ; C3 X
|
||||
const TOGGLE_POKEMON_MANSION_B1F_ITEM_2 ; C4 X
|
||||
const TOGGLE_POKEMON_MANSION_B1F_ITEM_3 ; C5 X
|
||||
const TOGGLE_POKEMON_MANSION_B1F_ITEM_4 ; C6 X
|
||||
const TOGGLE_POKEMON_MANSION_B1F_ITEM_5 ; C7 X
|
||||
|
||||
toggle_consts_for SAFARI_ZONE_EAST
|
||||
const TOGGLE_SAFARI_ZONE_EAST_ITEM_1 ; C8 X
|
||||
const TOGGLE_SAFARI_ZONE_EAST_ITEM_2 ; C9 X
|
||||
const TOGGLE_SAFARI_ZONE_EAST_ITEM_3 ; CA X
|
||||
const TOGGLE_SAFARI_ZONE_EAST_ITEM_4 ; CB X
|
||||
|
||||
toggle_consts_for SAFARI_ZONE_NORTH
|
||||
const TOGGLE_SAFARI_ZONE_NORTH_ITEM_1 ; CC X
|
||||
const TOGGLE_SAFARI_ZONE_NORTH_ITEM_2 ; CD X
|
||||
|
||||
toggle_consts_for SAFARI_ZONE_WEST
|
||||
const TOGGLE_SAFARI_ZONE_WEST_ITEM_1 ; CE X
|
||||
const TOGGLE_SAFARI_ZONE_WEST_ITEM_2 ; CF X
|
||||
const TOGGLE_SAFARI_ZONE_WEST_ITEM_3 ; D0 X
|
||||
const TOGGLE_SAFARI_ZONE_WEST_ITEM_4 ; D1 X
|
||||
|
||||
toggle_consts_for SAFARI_ZONE_CENTER
|
||||
const TOGGLE_SAFARI_ZONE_CENTER_ITEM ; D2 X
|
||||
|
||||
toggle_consts_for CERULEAN_CAVE_2F
|
||||
const TOGGLE_CERULEAN_CAVE_2F_ITEM_1 ; D3 X
|
||||
const TOGGLE_CERULEAN_CAVE_2F_ITEM_2 ; D4 X
|
||||
const TOGGLE_CERULEAN_CAVE_2F_ITEM_3 ; D5 X
|
||||
const TOGGLE_CERULEAN_CAVE_2F_ITEM_4 ; D6 X
|
||||
|
||||
toggle_consts_for CERULEAN_CAVE_B1F
|
||||
const TOGGLE_MEWTWO ; D7 X
|
||||
const TOGGLE_CERULEAN_CAVE_B1F_ITEM_1 ; D8 X
|
||||
const TOGGLE_CERULEAN_CAVE_B1F_ITEM_2 ; D9 X
|
||||
const TOGGLE_CERULEAN_CAVE_B1F_ITEM_3 ; DA X
|
||||
const TOGGLE_CERULEAN_CAVE_B1F_ITEM_4 ; DB X
|
||||
|
||||
toggle_consts_for VICTORY_ROAD_1F
|
||||
const TOGGLE_VICTORY_ROAD_1F_ITEM_1 ; DC X
|
||||
const TOGGLE_VICTORY_ROAD_1F_ITEM_2 ; DD X
|
||||
|
||||
toggle_consts_for CHAMPIONS_ROOM
|
||||
const TOGGLE_CHAMPIONS_ROOM_OAK ; DE
|
||||
|
||||
toggle_consts_for SEAFOAM_ISLANDS_1F
|
||||
const TOGGLE_SEAFOAM_ISLANDS_1F_BOULDER_1 ; DF
|
||||
const TOGGLE_SEAFOAM_ISLANDS_1F_BOULDER_2 ; E0
|
||||
|
||||
toggle_consts_for SEAFOAM_ISLANDS_B1F
|
||||
const TOGGLE_SEAFOAM_ISLANDS_B1F_BOULDER_1 ; E1
|
||||
const TOGGLE_SEAFOAM_ISLANDS_B1F_BOULDER_2 ; E2
|
||||
|
||||
toggle_consts_for SEAFOAM_ISLANDS_B2F
|
||||
const TOGGLE_SEAFOAM_ISLANDS_B2F_BOULDER_1 ; E3
|
||||
const TOGGLE_SEAFOAM_ISLANDS_B2F_BOULDER_2 ; E4
|
||||
|
||||
toggle_consts_for SEAFOAM_ISLANDS_B3F
|
||||
const TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_1 ; E5
|
||||
const TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_2 ; E6
|
||||
const TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_3 ; E7
|
||||
const TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_4 ; E8
|
||||
|
||||
toggle_consts_for SEAFOAM_ISLANDS_B4F
|
||||
const TOGGLE_SEAFOAM_ISLANDS_B4F_BOULDER_1 ; E9
|
||||
const TOGGLE_SEAFOAM_ISLANDS_B4F_BOULDER_2 ; EA
|
||||
const TOGGLE_ARTICUNO ; EB X
|
||||
|
||||
const TOGGLE_DAISY_SITTING_COPY ; EC
|
||||
const TOGGLE_DAISY_WALKING_COPY ; ED
|
||||
const TOGGLE_TOWN_MAP_COPY ; EE
|
||||
|
||||
DEF NUM_TOGGLEABLE_OBJECTS EQU const_value
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
; The relevant move effect IDs correspond to the stats
|
||||
|
||||
StatModTextStrings:
|
||||
list_start
|
||||
list_start STAT_NAME_LENGTH - 1
|
||||
li "ATTACK"
|
||||
li "DEFENSE"
|
||||
li "SPEED"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
; Stats that vitamins can raise or lower
|
||||
|
||||
VitaminStats:
|
||||
list_start
|
||||
list_start STAT_NAME_LENGTH - 1
|
||||
li "HEALTH"
|
||||
li "ATTACK"
|
||||
li "DEFENSE"
|
||||
|
|
|
|||
570
data/events/hidden_events.asm
Normal file
570
data/events/hidden_events.asm
Normal file
|
|
@ -0,0 +1,570 @@
|
|||
MACRO hidden_event_map
|
||||
db \1 ; map id
|
||||
dw HiddenEventsFor_\1
|
||||
ENDM
|
||||
|
||||
HiddenEventMaps:
|
||||
hidden_event_map SILPH_CO_11F
|
||||
hidden_event_map SILPH_CO_5F
|
||||
hidden_event_map SILPH_CO_9F
|
||||
hidden_event_map POKEMON_MANSION_2F
|
||||
hidden_event_map POKEMON_MANSION_3F
|
||||
hidden_event_map POKEMON_MANSION_B1F
|
||||
hidden_event_map SAFARI_ZONE_WEST
|
||||
hidden_event_map CERULEAN_CAVE_2F
|
||||
hidden_event_map CERULEAN_CAVE_B1F
|
||||
hidden_event_map UNUSED_MAP_6F
|
||||
hidden_event_map SEAFOAM_ISLANDS_B2F
|
||||
hidden_event_map SEAFOAM_ISLANDS_B3F
|
||||
hidden_event_map SEAFOAM_ISLANDS_B4F
|
||||
hidden_event_map VIRIDIAN_FOREST
|
||||
hidden_event_map MT_MOON_B2F
|
||||
hidden_event_map SS_ANNE_B1F_ROOMS
|
||||
hidden_event_map SS_ANNE_KITCHEN
|
||||
hidden_event_map UNDERGROUND_PATH_NORTH_SOUTH
|
||||
hidden_event_map UNDERGROUND_PATH_WEST_EAST
|
||||
hidden_event_map ROCKET_HIDEOUT_B1F
|
||||
hidden_event_map ROCKET_HIDEOUT_B3F
|
||||
hidden_event_map ROCKET_HIDEOUT_B4F
|
||||
hidden_event_map ROUTE_10
|
||||
hidden_event_map ROCK_TUNNEL_POKECENTER
|
||||
hidden_event_map POWER_PLANT
|
||||
hidden_event_map ROUTE_11
|
||||
hidden_event_map ROUTE_12
|
||||
hidden_event_map ROUTE_13
|
||||
hidden_event_map ROUTE_15_GATE_2F
|
||||
hidden_event_map ROUTE_17
|
||||
hidden_event_map ROUTE_23
|
||||
hidden_event_map VICTORY_ROAD_2F
|
||||
hidden_event_map ROUTE_25
|
||||
hidden_event_map BILLS_HOUSE
|
||||
hidden_event_map ROUTE_4
|
||||
hidden_event_map MT_MOON_POKECENTER
|
||||
hidden_event_map ROUTE_9
|
||||
hidden_event_map TRADE_CENTER
|
||||
hidden_event_map COLOSSEUM
|
||||
hidden_event_map INDIGO_PLATEAU
|
||||
hidden_event_map INDIGO_PLATEAU_LOBBY
|
||||
hidden_event_map COPYCATS_HOUSE_2F
|
||||
hidden_event_map FIGHTING_DOJO
|
||||
hidden_event_map SAFFRON_GYM
|
||||
hidden_event_map SAFFRON_POKECENTER
|
||||
hidden_event_map REDS_HOUSE_2F
|
||||
hidden_event_map BLUES_HOUSE
|
||||
hidden_event_map OAKS_LAB
|
||||
hidden_event_map VIRIDIAN_CITY
|
||||
hidden_event_map VIRIDIAN_POKECENTER
|
||||
hidden_event_map VIRIDIAN_SCHOOL_HOUSE
|
||||
hidden_event_map VIRIDIAN_GYM
|
||||
hidden_event_map MUSEUM_1F
|
||||
hidden_event_map PEWTER_GYM
|
||||
hidden_event_map PEWTER_POKECENTER
|
||||
hidden_event_map CERULEAN_CITY
|
||||
hidden_event_map CERULEAN_POKECENTER
|
||||
hidden_event_map CERULEAN_GYM
|
||||
hidden_event_map BIKE_SHOP
|
||||
hidden_event_map CERULEAN_CAVE_1F
|
||||
hidden_event_map LAVENDER_POKECENTER
|
||||
hidden_event_map POKEMON_TOWER_5F
|
||||
hidden_event_map MR_FUJIS_HOUSE
|
||||
hidden_event_map VERMILION_CITY
|
||||
hidden_event_map VERMILION_POKECENTER
|
||||
hidden_event_map POKEMON_FAN_CLUB
|
||||
hidden_event_map VERMILION_GYM
|
||||
hidden_event_map CELADON_CITY
|
||||
hidden_event_map CELADON_HOTEL
|
||||
hidden_event_map CELADON_MANSION_2F
|
||||
hidden_event_map CELADON_MANSION_ROOF_HOUSE
|
||||
hidden_event_map CELADON_POKECENTER
|
||||
hidden_event_map CELADON_GYM
|
||||
hidden_event_map GAME_CORNER
|
||||
hidden_event_map FUCHSIA_POKECENTER
|
||||
hidden_event_map SAFARI_ZONE_GATE
|
||||
hidden_event_map FUCHSIA_GYM
|
||||
hidden_event_map POKEMON_MANSION_1F
|
||||
hidden_event_map CINNABAR_GYM
|
||||
hidden_event_map CINNABAR_LAB_FOSSIL_ROOM
|
||||
hidden_event_map CINNABAR_POKECENTER
|
||||
db -1 ; end
|
||||
|
||||
MACRO hidden_events_for
|
||||
HiddenEventsFor_\1:
|
||||
ENDM
|
||||
|
||||
MACRO hidden_event
|
||||
db \2 ; y coord
|
||||
db \1 ; x coord
|
||||
db \4 ; function argument
|
||||
dba \3 ; event function
|
||||
ENDM
|
||||
|
||||
MACRO hidden_text_predef
|
||||
db \2 ; y coord
|
||||
db \1 ; x coord
|
||||
db_tx_pre \4 ; text id
|
||||
dba \3 ; event function
|
||||
ENDM
|
||||
|
||||
; Some hidden events use SPRITE_FACING_* values,
|
||||
; but these do not actually prevent the player
|
||||
; from interacting with them in any direction.
|
||||
DEF ANY_FACING EQU $d0
|
||||
|
||||
hidden_events_for SILPH_CO_11F
|
||||
hidden_event 10, 12, OpenPokemonCenterPC, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for SILPH_CO_5F
|
||||
hidden_event 12, 3, HiddenItems, ELIXER
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for SILPH_CO_9F
|
||||
hidden_event 2, 15, HiddenItems, MAX_POTION
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for POKEMON_MANSION_2F
|
||||
hidden_event 2, 11, Mansion2Script_Switches, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for POKEMON_MANSION_3F
|
||||
hidden_event 1, 9, HiddenItems, MAX_REVIVE
|
||||
hidden_event 10, 5, Mansion3Script_Switches, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for POKEMON_MANSION_B1F
|
||||
hidden_event 1, 9, HiddenItems, RARE_CANDY
|
||||
hidden_event 20, 3, Mansion4Script_Switches, SPRITE_FACING_UP
|
||||
hidden_event 18, 25, Mansion4Script_Switches, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for SAFARI_ZONE_WEST
|
||||
hidden_event 6, 5, HiddenItems, REVIVE
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for CERULEAN_CAVE_2F
|
||||
hidden_event 16, 13, HiddenItems, PP_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for CERULEAN_CAVE_B1F
|
||||
hidden_event 8, 14, HiddenItems, PP_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for UNUSED_MAP_6F
|
||||
hidden_event 14, 11, HiddenItems, MAX_ELIXER
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for SEAFOAM_ISLANDS_B2F
|
||||
hidden_event 15, 15, HiddenItems, NUGGET
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for SEAFOAM_ISLANDS_B3F
|
||||
hidden_event 9, 16, HiddenItems, MAX_ELIXER
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for SEAFOAM_ISLANDS_B4F
|
||||
hidden_event 25, 17, HiddenItems, ULTRA_BALL
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for VIRIDIAN_FOREST
|
||||
hidden_event 1, 18, HiddenItems, POTION
|
||||
hidden_event 16, 42, HiddenItems, ANTIDOTE
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for MT_MOON_B2F
|
||||
hidden_event 18, 12, HiddenItems, MOON_STONE
|
||||
hidden_event 33, 9, HiddenItems, ETHER
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for SS_ANNE_B1F_ROOMS
|
||||
hidden_event 3, 1, HiddenItems, HYPER_POTION
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for SS_ANNE_KITCHEN
|
||||
hidden_event 13, 5, PrintTrashText, SPRITE_FACING_DOWN
|
||||
hidden_event 13, 7, PrintTrashText, SPRITE_FACING_DOWN
|
||||
hidden_event 13, 9, HiddenItems, GREAT_BALL
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for UNDERGROUND_PATH_NORTH_SOUTH
|
||||
hidden_event 3, 4, HiddenItems, FULL_RESTORE
|
||||
hidden_event 4, 34, HiddenItems, X_SPECIAL
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for UNDERGROUND_PATH_WEST_EAST
|
||||
hidden_event 12, 2, HiddenItems, NUGGET
|
||||
hidden_event 21, 5, HiddenItems, ELIXER
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for ROCKET_HIDEOUT_B1F
|
||||
hidden_event 21, 15, HiddenItems, PP_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for ROCKET_HIDEOUT_B3F
|
||||
hidden_event 27, 17, HiddenItems, NUGGET
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for ROCKET_HIDEOUT_B4F
|
||||
hidden_event 25, 1, HiddenItems, SUPER_POTION
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for ROUTE_10
|
||||
hidden_event 9, 17, HiddenItems, SUPER_POTION
|
||||
hidden_event 16, 53, HiddenItems, MAX_ETHER
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for ROCK_TUNNEL_POKECENTER
|
||||
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
|
||||
hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for POWER_PLANT
|
||||
hidden_event 17, 16, HiddenItems, MAX_ELIXER
|
||||
hidden_event 12, 1, HiddenItems, PP_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for ROUTE_11
|
||||
hidden_event 48, 5, HiddenItems, ESCAPE_ROPE
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for ROUTE_12
|
||||
hidden_event 2, 63, HiddenItems, HYPER_POTION
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for ROUTE_13
|
||||
hidden_event 1, 14, HiddenItems, PP_UP
|
||||
hidden_event 16, 13, HiddenItems, CALCIUM
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for ROUTE_15_GATE_2F
|
||||
hidden_event 1, 2, Route15GateLeftBinoculars, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for ROUTE_17
|
||||
hidden_event 15, 14, HiddenItems, RARE_CANDY
|
||||
hidden_event 8, 45, HiddenItems, FULL_RESTORE
|
||||
hidden_event 17, 72, HiddenItems, PP_UP
|
||||
hidden_event 4, 91, HiddenItems, MAX_REVIVE
|
||||
hidden_event 8, 121, HiddenItems, MAX_ELIXER
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for ROUTE_23
|
||||
hidden_event 9, 44, HiddenItems, FULL_RESTORE
|
||||
hidden_event 19, 70, HiddenItems, ULTRA_BALL
|
||||
hidden_event 8, 90, HiddenItems, MAX_ETHER
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for VICTORY_ROAD_2F
|
||||
hidden_event 5, 2, HiddenItems, ULTRA_BALL
|
||||
hidden_event 26, 7, HiddenItems, FULL_RESTORE
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for ROUTE_25
|
||||
hidden_event 38, 3, HiddenItems, ETHER
|
||||
hidden_event 10, 1, HiddenItems, ELIXER
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for BILLS_HOUSE
|
||||
hidden_event 1, 4, BillsHousePC, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for ROUTE_4
|
||||
hidden_event 40, 3, HiddenItems, GREAT_BALL
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for MT_MOON_POKECENTER
|
||||
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
|
||||
hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for ROUTE_9
|
||||
hidden_event 14, 7, HiddenItems, ETHER
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for TRADE_CENTER
|
||||
hidden_event 5, 4, CableClubRightGameboy, ANY_FACING
|
||||
hidden_event 4, 4, CableClubLeftGameboy, ANY_FACING
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for COLOSSEUM
|
||||
hidden_event 5, 4, CableClubRightGameboy, ANY_FACING
|
||||
hidden_event 4, 4, CableClubLeftGameboy, ANY_FACING
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for INDIGO_PLATEAU
|
||||
hidden_event 8, 13, PrintIndigoPlateauHQText, $ff ; inaccessible
|
||||
hidden_event 11, 13, PrintIndigoPlateauHQText, SPRITE_FACING_DOWN ; inaccessible
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for INDIGO_PLATEAU_LOBBY
|
||||
hidden_event 15, 7, OpenPokemonCenterPC, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for COPYCATS_HOUSE_2F
|
||||
hidden_event 1, 1, HiddenItems, NUGGET
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for FIGHTING_DOJO
|
||||
hidden_event 3, 9, PrintFightingDojoText, SPRITE_FACING_UP
|
||||
hidden_event 6, 9, PrintFightingDojoText, SPRITE_FACING_UP
|
||||
hidden_event 4, 0, PrintFightingDojoText2, SPRITE_FACING_UP
|
||||
hidden_event 5, 0, PrintFightingDojoText3, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for SAFFRON_GYM
|
||||
hidden_event 9, 15, GymStatues, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for SAFFRON_POKECENTER
|
||||
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_UP
|
||||
hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for REDS_HOUSE_2F
|
||||
hidden_event 0, 1, OpenRedsPC, SPRITE_FACING_UP
|
||||
hidden_event 3, 5, PrintRedSNESText, ANY_FACING
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for BLUES_HOUSE
|
||||
hidden_event 0, 1, PrintBookcaseText, SPRITE_FACING_UP
|
||||
hidden_event 1, 1, PrintBookcaseText, SPRITE_FACING_UP
|
||||
hidden_event 7, 1, PrintBookcaseText, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for OAKS_LAB
|
||||
hidden_event 4, 0, DisplayOakLabLeftPoster, SPRITE_FACING_UP
|
||||
hidden_event 5, 0, DisplayOakLabRightPoster, SPRITE_FACING_UP
|
||||
hidden_event 0, 1, DisplayOakLabEmailText, SPRITE_FACING_UP
|
||||
hidden_event 1, 1, DisplayOakLabEmailText, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for VIRIDIAN_CITY
|
||||
hidden_event 14, 4, HiddenItems, POTION
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for VIRIDIAN_POKECENTER
|
||||
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
|
||||
hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for VIRIDIAN_SCHOOL_HOUSE
|
||||
hidden_text_predef 3, 4, PrintNotebookText, ViridianSchoolNotebook
|
||||
hidden_text_predef 3, 0, PrintBlackboardLinkCableText, ViridianSchoolBlackboard
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for VIRIDIAN_GYM
|
||||
hidden_event 15, 15, GymStatues, SPRITE_FACING_UP
|
||||
hidden_event 18, 15, GymStatues, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for MUSEUM_1F
|
||||
hidden_event 2, 3, AerodactylFossil, SPRITE_FACING_UP
|
||||
hidden_event 2, 6, KabutopsFossil, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for PEWTER_GYM
|
||||
hidden_event 3, 10, GymStatues, SPRITE_FACING_UP
|
||||
hidden_event 6, 10, GymStatues, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for PEWTER_POKECENTER
|
||||
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
|
||||
hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for CERULEAN_CITY
|
||||
hidden_event 15, 8, HiddenItems, RARE_CANDY
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for CERULEAN_POKECENTER
|
||||
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
|
||||
hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for CERULEAN_GYM
|
||||
hidden_event 3, 11, GymStatues, SPRITE_FACING_UP
|
||||
hidden_event 6, 11, GymStatues, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for BIKE_SHOP
|
||||
hidden_event 1, 0, PrintNewBikeText, ANY_FACING
|
||||
hidden_event 2, 1, PrintNewBikeText, ANY_FACING
|
||||
hidden_event 1, 2, PrintNewBikeText, ANY_FACING
|
||||
hidden_event 3, 2, PrintNewBikeText, ANY_FACING
|
||||
hidden_event 0, 4, PrintNewBikeText, ANY_FACING
|
||||
hidden_event 1, 5, PrintNewBikeText, ANY_FACING
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for CERULEAN_CAVE_1F
|
||||
hidden_event 18, 7, HiddenItems, PP_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for LAVENDER_POKECENTER
|
||||
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
|
||||
hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for POKEMON_TOWER_5F
|
||||
hidden_event 4, 12, HiddenItems, ELIXER
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for MR_FUJIS_HOUSE
|
||||
hidden_event 0, 1, PrintMagazinesText, SPRITE_FACING_DOWN
|
||||
hidden_event 1, 1, PrintMagazinesText, SPRITE_FACING_DOWN
|
||||
hidden_event 7, 1, PrintMagazinesText, SPRITE_FACING_DOWN
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for VERMILION_CITY
|
||||
hidden_event 14, 11, HiddenItems, MAX_ETHER
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for VERMILION_POKECENTER
|
||||
hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
|
||||
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for POKEMON_FAN_CLUB
|
||||
hidden_event 1, 0, FanClubPicture1, SPRITE_FACING_UP
|
||||
hidden_event 6, 0, FanClubPicture2, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for VERMILION_GYM
|
||||
hidden_event 3, 14, GymStatues, SPRITE_FACING_UP
|
||||
hidden_event 6, 14, GymStatues, SPRITE_FACING_UP
|
||||
hidden_event 6, 1, PrintTrashText, SPRITE_FACING_DOWN
|
||||
; GymTrashScript argument: [wGymTrashCanIndex]
|
||||
hidden_event 1, 7, GymTrashScript, 0
|
||||
hidden_event 1, 9, GymTrashScript, 1
|
||||
hidden_event 1, 11, GymTrashScript, 2
|
||||
hidden_event 3, 7, GymTrashScript, 3
|
||||
hidden_event 3, 9, GymTrashScript, 4
|
||||
hidden_event 3, 11, GymTrashScript, 5
|
||||
hidden_event 5, 7, GymTrashScript, 6
|
||||
hidden_event 5, 9, GymTrashScript, 7
|
||||
hidden_event 5, 11, GymTrashScript, 8
|
||||
hidden_event 7, 7, GymTrashScript, 9
|
||||
hidden_event 7, 9, GymTrashScript, 10
|
||||
hidden_event 7, 11, GymTrashScript, 11
|
||||
hidden_event 9, 7, GymTrashScript, 12
|
||||
hidden_event 9, 9, GymTrashScript, 13
|
||||
hidden_event 9, 11, GymTrashScript, 14
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for CELADON_CITY
|
||||
hidden_event 48, 15, HiddenItems, PP_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for CELADON_HOTEL
|
||||
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for CELADON_MANSION_2F
|
||||
hidden_event 0, 5, OpenPokemonCenterPC, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for CELADON_MANSION_ROOF_HOUSE
|
||||
hidden_text_predef 3, 0, PrintBlackboardLinkCableText, LinkCableHelp
|
||||
hidden_text_predef 4, 0, PrintBlackboardLinkCableText, LinkCableHelp
|
||||
hidden_text_predef 3, 4, PrintNotebookText, TMNotebook
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for CELADON_POKECENTER
|
||||
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
|
||||
hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for CELADON_GYM
|
||||
hidden_event 3, 15, GymStatues, SPRITE_FACING_UP
|
||||
hidden_event 6, 15, GymStatues, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for GAME_CORNER
|
||||
hidden_event 18, 15, StartSlotMachine, ANY_FACING
|
||||
hidden_event 18, 14, StartSlotMachine, ANY_FACING
|
||||
hidden_event 18, 13, StartSlotMachine, ANY_FACING
|
||||
hidden_event 18, 12, StartSlotMachine, ANY_FACING
|
||||
hidden_event 18, 11, StartSlotMachine, ANY_FACING
|
||||
hidden_event 18, 10, StartSlotMachine, SLOTS_SOMEONESKEYS
|
||||
hidden_event 13, 10, StartSlotMachine, ANY_FACING
|
||||
hidden_event 13, 11, StartSlotMachine, ANY_FACING
|
||||
hidden_event 13, 12, StartSlotMachine, SLOTS_OUTTOLUNCH
|
||||
hidden_event 13, 13, StartSlotMachine, ANY_FACING
|
||||
hidden_event 13, 14, StartSlotMachine, ANY_FACING
|
||||
hidden_event 13, 15, StartSlotMachine, ANY_FACING
|
||||
hidden_event 12, 15, StartSlotMachine, ANY_FACING
|
||||
hidden_event 12, 14, StartSlotMachine, ANY_FACING
|
||||
hidden_event 12, 13, StartSlotMachine, ANY_FACING
|
||||
hidden_event 12, 12, StartSlotMachine, ANY_FACING
|
||||
hidden_event 12, 11, StartSlotMachine, ANY_FACING
|
||||
hidden_event 12, 10, StartSlotMachine, ANY_FACING
|
||||
hidden_event 7, 10, StartSlotMachine, ANY_FACING
|
||||
hidden_event 7, 11, StartSlotMachine, ANY_FACING
|
||||
hidden_event 7, 12, StartSlotMachine, ANY_FACING
|
||||
hidden_event 7, 13, StartSlotMachine, ANY_FACING
|
||||
hidden_event 7, 14, StartSlotMachine, ANY_FACING
|
||||
hidden_event 7, 15, StartSlotMachine, ANY_FACING
|
||||
hidden_event 6, 15, StartSlotMachine, ANY_FACING
|
||||
hidden_event 6, 14, StartSlotMachine, ANY_FACING
|
||||
hidden_event 6, 13, StartSlotMachine, ANY_FACING
|
||||
hidden_event 6, 12, StartSlotMachine, SLOTS_OUTOFORDER
|
||||
hidden_event 6, 11, StartSlotMachine, ANY_FACING
|
||||
hidden_event 6, 10, StartSlotMachine, ANY_FACING
|
||||
hidden_event 1, 10, StartSlotMachine, ANY_FACING
|
||||
hidden_event 1, 11, StartSlotMachine, ANY_FACING
|
||||
hidden_event 1, 12, StartSlotMachine, ANY_FACING
|
||||
hidden_event 1, 13, StartSlotMachine, ANY_FACING
|
||||
hidden_event 1, 14, StartSlotMachine, ANY_FACING
|
||||
hidden_event 1, 15, StartSlotMachine, ANY_FACING
|
||||
; HiddenCoins argument: COIN + <number of coins>
|
||||
hidden_event 0, 8, HiddenCoins, COIN+10
|
||||
hidden_event 1, 16, HiddenCoins, COIN+10
|
||||
hidden_event 3, 11, HiddenCoins, COIN+20
|
||||
hidden_event 3, 14, HiddenCoins, COIN+10
|
||||
hidden_event 4, 12, HiddenCoins, COIN+10
|
||||
hidden_event 9, 12, HiddenCoins, COIN+20
|
||||
hidden_event 9, 15, HiddenCoins, COIN+10
|
||||
hidden_event 16, 14, HiddenCoins, COIN+10
|
||||
hidden_event 10, 16, HiddenCoins, COIN+10
|
||||
hidden_event 11, 7, HiddenCoins, COIN+40
|
||||
hidden_event 15, 8, HiddenCoins, COIN+100
|
||||
hidden_event 12, 15, HiddenCoins, COIN+10
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for FUCHSIA_POKECENTER
|
||||
hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
|
||||
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for SAFARI_ZONE_GATE
|
||||
hidden_event 10, 1, HiddenItems, NUGGET ; inaccessible
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for FUCHSIA_GYM
|
||||
hidden_event 3, 15, GymStatues, SPRITE_FACING_UP
|
||||
hidden_event 6, 15, GymStatues, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for POKEMON_MANSION_1F
|
||||
hidden_event 8, 16, HiddenItems, MOON_STONE
|
||||
hidden_event 2, 5, Mansion1Script_Switches, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for CINNABAR_GYM
|
||||
hidden_event 17, 13, GymStatues, SPRITE_FACING_UP
|
||||
; PrintCinnabarQuiz argument: ([hGymGateAnswer] << 4) | [hGymGateIndex]
|
||||
hidden_event 15, 7, PrintCinnabarQuiz, (FALSE << 4) | 1
|
||||
hidden_event 10, 1, PrintCinnabarQuiz, (TRUE << 4) | 2
|
||||
hidden_event 9, 7, PrintCinnabarQuiz, (TRUE << 4) | 3
|
||||
hidden_event 9, 13, PrintCinnabarQuiz, (TRUE << 4) | 4
|
||||
hidden_event 1, 13, PrintCinnabarQuiz, (FALSE << 4) | 5
|
||||
hidden_event 1, 7, PrintCinnabarQuiz, (TRUE << 4) | 6
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for CINNABAR_LAB_FOSSIL_ROOM
|
||||
hidden_event 0, 4, OpenPokemonCenterPC, SPRITE_FACING_UP
|
||||
hidden_event 2, 4, OpenPokemonCenterPC, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
||||
hidden_events_for CINNABAR_POKECENTER
|
||||
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_UP
|
||||
hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
|
||||
db -1 ; end
|
||||
|
|
@ -1,560 +0,0 @@
|
|||
HiddenObjectMaps:
|
||||
dbw SILPH_CO_11F, SilphCo11FHiddenObjects
|
||||
dbw SILPH_CO_5F, SilphCo5FHiddenObjects
|
||||
dbw SILPH_CO_9F, SilphCo9FHiddenObjects
|
||||
dbw POKEMON_MANSION_2F, Mansion2HiddenObjects
|
||||
dbw POKEMON_MANSION_3F, Mansion3HiddenObjects
|
||||
dbw POKEMON_MANSION_B1F, Mansion4HiddenObjects
|
||||
dbw SAFARI_ZONE_WEST, SafariZoneWestHiddenObjects
|
||||
dbw CERULEAN_CAVE_2F, CeruleanCave2HiddenObjects
|
||||
dbw CERULEAN_CAVE_B1F, CeruleanCave3HiddenObjects
|
||||
dbw UNUSED_MAP_6F, UnusedMap6FHiddenObjects
|
||||
dbw SEAFOAM_ISLANDS_B2F, SeafoamIslands3HiddenObjects
|
||||
dbw SEAFOAM_ISLANDS_B3F, SeafoamIslands4HiddenObjects
|
||||
dbw SEAFOAM_ISLANDS_B4F, SeafoamIslands5HiddenObjects
|
||||
dbw VIRIDIAN_FOREST, ViridianForestHiddenObjects
|
||||
dbw MT_MOON_B2F, MtMoon3HiddenObjects
|
||||
dbw SS_ANNE_B1F_ROOMS, SSAnne10HiddenObjects
|
||||
dbw SS_ANNE_KITCHEN, SSAnne6HiddenObjects
|
||||
dbw UNDERGROUND_PATH_NORTH_SOUTH, UndergroundPathNsHiddenObjects
|
||||
dbw UNDERGROUND_PATH_WEST_EAST, UndergroundPathWeHiddenObjects
|
||||
dbw ROCKET_HIDEOUT_B1F, RocketHideout1HiddenObjects
|
||||
dbw ROCKET_HIDEOUT_B3F, RocketHideout3HiddenObjects
|
||||
dbw ROCKET_HIDEOUT_B4F, RocketHideout4HiddenObjects
|
||||
dbw ROUTE_10, Route10HiddenObjects
|
||||
dbw ROCK_TUNNEL_POKECENTER, RockTunnelPokecenterHiddenObjects
|
||||
dbw POWER_PLANT, PowerPlantHiddenObjects
|
||||
dbw ROUTE_11, Route11HiddenObjects
|
||||
dbw ROUTE_12, Route12HiddenObjects
|
||||
dbw ROUTE_13, Route13HiddenObjects
|
||||
dbw ROUTE_15_GATE_2F, Route15Gate2FHiddenObjects
|
||||
dbw ROUTE_17, Route17HiddenObjects
|
||||
dbw ROUTE_23, Route23HiddenObjects
|
||||
dbw VICTORY_ROAD_2F, VictoryRoad2HiddenObjects
|
||||
dbw ROUTE_25, Route25HiddenObjects
|
||||
dbw BILLS_HOUSE, BillsHouseHiddenObjects
|
||||
dbw ROUTE_4, Route4HiddenObjects
|
||||
dbw MT_MOON_POKECENTER, MtMoonPokecenterHiddenObjects
|
||||
dbw ROUTE_9, Route9HiddenObjects
|
||||
dbw TRADE_CENTER, TradeCenterHiddenObjects
|
||||
dbw COLOSSEUM, ColosseumHiddenObjects
|
||||
dbw INDIGO_PLATEAU, IndigoPlateauHiddenObjects
|
||||
dbw INDIGO_PLATEAU_LOBBY, IndigoPlateauLobbyHiddenObjects
|
||||
dbw COPYCATS_HOUSE_2F, CopycatsHouse2FHiddenObjects
|
||||
dbw FIGHTING_DOJO, FightingDojoHiddenObjects
|
||||
dbw SAFFRON_GYM, SaffronGymHiddenObjects
|
||||
dbw SAFFRON_POKECENTER, SaffronPokecenterHiddenObjects
|
||||
dbw REDS_HOUSE_2F, RedsHouse2FHiddenObjects
|
||||
dbw BLUES_HOUSE, BluesHouseHiddenObjects
|
||||
dbw OAKS_LAB, OaksLabHiddenObjects
|
||||
dbw VIRIDIAN_CITY, ViridianCityHiddenObjects
|
||||
dbw VIRIDIAN_POKECENTER, ViridianPokecenterHiddenObjects
|
||||
dbw VIRIDIAN_SCHOOL_HOUSE, ViridianSchoolHiddenObjects
|
||||
dbw VIRIDIAN_GYM, ViridianGymHiddenObjects
|
||||
dbw MUSEUM_1F, Museum1FHiddenObjects
|
||||
dbw PEWTER_GYM, PewterGymHiddenObjects
|
||||
dbw PEWTER_POKECENTER, PewterPokecenterHiddenObjects
|
||||
dbw CERULEAN_CITY, CeruleanCityHiddenObjects
|
||||
dbw CERULEAN_POKECENTER, CeruleanPokecenterHiddenObjects
|
||||
dbw CERULEAN_GYM, CeruleanGymHiddenObjects
|
||||
dbw BIKE_SHOP, BikeShopHiddenObjects
|
||||
dbw CERULEAN_CAVE_1F, CeruleanCave1HiddenObjects
|
||||
dbw LAVENDER_POKECENTER, LavenderPokecenterHiddenObjects
|
||||
dbw POKEMON_TOWER_5F, Pokemontower5HiddenObjects
|
||||
dbw MR_FUJIS_HOUSE, LavenderHouse1HiddenObjects
|
||||
dbw VERMILION_CITY, VermilionCityHiddenObjects
|
||||
dbw VERMILION_POKECENTER, VermilionPokecenterHiddenObjects
|
||||
dbw POKEMON_FAN_CLUB, PokemonFanClubHiddenObjects
|
||||
dbw VERMILION_GYM, VermilionGymHiddenObjects
|
||||
dbw CELADON_CITY, CeladonCityHiddenObjects
|
||||
dbw CELADON_HOTEL, CeladonHotelHiddenObjects
|
||||
dbw CELADON_MANSION_2F, CeladonMansion2HiddenObjects
|
||||
dbw CELADON_MANSION_ROOF_HOUSE, CeladonMansion5HiddenObjects
|
||||
dbw CELADON_POKECENTER, CeladonPokecenterHiddenObjects
|
||||
dbw CELADON_GYM, CeladonGymHiddenObjects
|
||||
dbw GAME_CORNER, GameCornerHiddenObjects
|
||||
dbw FUCHSIA_POKECENTER, FuchsiaPokecenterHiddenObjects
|
||||
dbw SAFARI_ZONE_GATE, SafariZoneEntranceHiddenObjects
|
||||
dbw FUCHSIA_GYM, FuchsiaGymHiddenObjects
|
||||
dbw POKEMON_MANSION_1F, Mansion1HiddenObjects
|
||||
dbw CINNABAR_GYM, CinnabarGymHiddenObjects
|
||||
dbw CINNABAR_LAB_FOSSIL_ROOM, CinnabarLab4HiddenObjects
|
||||
dbw CINNABAR_POKECENTER, CinnabarPokecenterHiddenObjects
|
||||
db -1 ; end
|
||||
|
||||
MACRO hidden_object
|
||||
db \2 ; y coord
|
||||
db \1 ; x coord
|
||||
db \3 ; item id
|
||||
dba \4 ; object routine
|
||||
ENDM
|
||||
|
||||
MACRO hidden_text_predef
|
||||
db \2 ; y coord
|
||||
db \1 ; x coord
|
||||
db_tx_pre \3 ; text id
|
||||
dba \4 ; object routine
|
||||
ENDM
|
||||
|
||||
; Some hidden objects use SPRITE_FACING_* values,
|
||||
; but these do not actually prevent the player
|
||||
; from interacting with them in any direction.
|
||||
DEF ANY_FACING EQU $d0
|
||||
|
||||
SilphCo11FHiddenObjects:
|
||||
hidden_object 10, 12, SPRITE_FACING_UP, OpenPokemonCenterPC
|
||||
db -1 ; end
|
||||
|
||||
SilphCo5FHiddenObjects:
|
||||
hidden_object 12, 3, ELIXER, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
SilphCo9FHiddenObjects:
|
||||
hidden_object 2, 15, MAX_POTION, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
Mansion2HiddenObjects:
|
||||
hidden_object 2, 11, SPRITE_FACING_UP, Mansion2Script_Switches
|
||||
db -1 ; end
|
||||
|
||||
Mansion3HiddenObjects:
|
||||
hidden_object 1, 9, MAX_REVIVE, HiddenItems
|
||||
hidden_object 10, 5, SPRITE_FACING_UP, Mansion3Script_Switches
|
||||
db -1 ; end
|
||||
|
||||
Mansion4HiddenObjects:
|
||||
hidden_object 1, 9, RARE_CANDY, HiddenItems
|
||||
hidden_object 20, 3, SPRITE_FACING_UP, Mansion4Script_Switches
|
||||
hidden_object 18, 25, SPRITE_FACING_UP, Mansion4Script_Switches
|
||||
db -1 ; end
|
||||
|
||||
SafariZoneWestHiddenObjects:
|
||||
hidden_object 6, 5, REVIVE, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
CeruleanCave2HiddenObjects:
|
||||
hidden_object 16, 13, PP_UP, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
CeruleanCave3HiddenObjects:
|
||||
hidden_object 8, 14, PP_UP, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
UnusedMap6FHiddenObjects:
|
||||
hidden_object 14, 11, MAX_ELIXER, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
SeafoamIslands3HiddenObjects:
|
||||
hidden_object 15, 15, NUGGET, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
SeafoamIslands4HiddenObjects:
|
||||
hidden_object 9, 16, MAX_ELIXER, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
SeafoamIslands5HiddenObjects:
|
||||
hidden_object 25, 17, ULTRA_BALL, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
ViridianForestHiddenObjects:
|
||||
hidden_object 1, 18, POTION, HiddenItems
|
||||
hidden_object 16, 42, ANTIDOTE, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
MtMoon3HiddenObjects:
|
||||
hidden_object 18, 12, MOON_STONE, HiddenItems
|
||||
hidden_object 33, 9, ETHER, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
SSAnne10HiddenObjects:
|
||||
hidden_object 3, 1, HYPER_POTION, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
SSAnne6HiddenObjects:
|
||||
hidden_object 13, 5, SPRITE_FACING_DOWN, PrintTrashText
|
||||
hidden_object 13, 7, SPRITE_FACING_DOWN, PrintTrashText
|
||||
hidden_object 13, 9, GREAT_BALL, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
UndergroundPathNsHiddenObjects:
|
||||
hidden_object 3, 4, FULL_RESTORE, HiddenItems
|
||||
hidden_object 4, 34, X_SPECIAL, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
UndergroundPathWeHiddenObjects:
|
||||
hidden_object 12, 2, NUGGET, HiddenItems
|
||||
hidden_object 21, 5, ELIXER, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
RocketHideout1HiddenObjects:
|
||||
hidden_object 21, 15, PP_UP, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
RocketHideout3HiddenObjects:
|
||||
hidden_object 27, 17, NUGGET, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
RocketHideout4HiddenObjects:
|
||||
hidden_object 25, 1, SUPER_POTION, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
Route10HiddenObjects:
|
||||
hidden_object 9, 17, SUPER_POTION, HiddenItems
|
||||
hidden_object 16, 53, MAX_ETHER, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
RockTunnelPokecenterHiddenObjects:
|
||||
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
|
||||
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
|
||||
db -1 ; end
|
||||
|
||||
PowerPlantHiddenObjects:
|
||||
hidden_object 17, 16, MAX_ELIXER, HiddenItems
|
||||
hidden_object 12, 1, PP_UP, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
Route11HiddenObjects:
|
||||
hidden_object 48, 5, ESCAPE_ROPE, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
Route12HiddenObjects:
|
||||
hidden_object 2, 63, HYPER_POTION, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
Route13HiddenObjects:
|
||||
hidden_object 1, 14, PP_UP, HiddenItems
|
||||
hidden_object 16, 13, CALCIUM, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
Route15Gate2FHiddenObjects:
|
||||
hidden_object 1, 2, SPRITE_FACING_UP, Route15GateLeftBinoculars
|
||||
db -1 ; end
|
||||
|
||||
Route17HiddenObjects:
|
||||
hidden_object 15, 14, RARE_CANDY, HiddenItems
|
||||
hidden_object 8, 45, FULL_RESTORE, HiddenItems
|
||||
hidden_object 17, 72, PP_UP, HiddenItems
|
||||
hidden_object 4, 91, MAX_REVIVE, HiddenItems
|
||||
hidden_object 8, 121, MAX_ELIXER, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
Route23HiddenObjects:
|
||||
hidden_object 9, 44, FULL_RESTORE, HiddenItems
|
||||
hidden_object 19, 70, ULTRA_BALL, HiddenItems
|
||||
hidden_object 8, 90, MAX_ETHER, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
VictoryRoad2HiddenObjects:
|
||||
hidden_object 5, 2, ULTRA_BALL, HiddenItems
|
||||
hidden_object 26, 7, FULL_RESTORE, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
Route25HiddenObjects:
|
||||
hidden_object 38, 3, ETHER, HiddenItems
|
||||
hidden_object 10, 1, ELIXER, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
BillsHouseHiddenObjects:
|
||||
hidden_object 1, 4, SPRITE_FACING_UP, BillsHousePC
|
||||
db -1 ; end
|
||||
|
||||
Route4HiddenObjects:
|
||||
hidden_object 40, 3, GREAT_BALL, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
MtMoonPokecenterHiddenObjects:
|
||||
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
|
||||
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
|
||||
db -1 ; end
|
||||
|
||||
Route9HiddenObjects:
|
||||
hidden_object 14, 7, ETHER, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
TradeCenterHiddenObjects:
|
||||
hidden_object 5, 4, ANY_FACING, CableClubRightGameboy
|
||||
hidden_object 4, 4, ANY_FACING, CableClubLeftGameboy
|
||||
db -1 ; end
|
||||
|
||||
ColosseumHiddenObjects:
|
||||
hidden_object 5, 4, ANY_FACING, CableClubRightGameboy
|
||||
hidden_object 4, 4, ANY_FACING, CableClubLeftGameboy
|
||||
db -1 ; end
|
||||
|
||||
IndigoPlateauHiddenObjects:
|
||||
hidden_object 8, 13, $ff, PrintIndigoPlateauHQText ; inaccessible
|
||||
hidden_object 11, 13, SPRITE_FACING_DOWN, PrintIndigoPlateauHQText ; inaccessible
|
||||
db -1 ; end
|
||||
|
||||
IndigoPlateauLobbyHiddenObjects:
|
||||
hidden_object 15, 7, SPRITE_FACING_UP, OpenPokemonCenterPC
|
||||
db -1 ; end
|
||||
|
||||
CopycatsHouse2FHiddenObjects:
|
||||
hidden_object 1, 1, NUGGET, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
FightingDojoHiddenObjects:
|
||||
hidden_object 3, 9, SPRITE_FACING_UP, PrintFightingDojoText
|
||||
hidden_object 6, 9, SPRITE_FACING_UP, PrintFightingDojoText
|
||||
hidden_object 4, 0, SPRITE_FACING_UP, PrintFightingDojoText2
|
||||
hidden_object 5, 0, SPRITE_FACING_UP, PrintFightingDojoText3
|
||||
db -1 ; end
|
||||
|
||||
SaffronGymHiddenObjects:
|
||||
hidden_object 9, 15, SPRITE_FACING_UP, GymStatues
|
||||
db -1 ; end
|
||||
|
||||
SaffronPokecenterHiddenObjects:
|
||||
hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText
|
||||
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
|
||||
db -1 ; end
|
||||
|
||||
RedsHouse2FHiddenObjects:
|
||||
hidden_object 0, 1, SPRITE_FACING_UP, OpenRedsPC
|
||||
hidden_object 3, 5, ANY_FACING, PrintRedSNESText
|
||||
db -1 ; end
|
||||
|
||||
BluesHouseHiddenObjects:
|
||||
hidden_object 0, 1, SPRITE_FACING_UP, PrintBookcaseText
|
||||
hidden_object 1, 1, SPRITE_FACING_UP, PrintBookcaseText
|
||||
hidden_object 7, 1, SPRITE_FACING_UP, PrintBookcaseText
|
||||
db -1 ; end
|
||||
|
||||
OaksLabHiddenObjects:
|
||||
hidden_object 4, 0, SPRITE_FACING_UP, DisplayOakLabLeftPoster
|
||||
hidden_object 5, 0, SPRITE_FACING_UP, DisplayOakLabRightPoster
|
||||
hidden_object 0, 1, SPRITE_FACING_UP, DisplayOakLabEmailText
|
||||
hidden_object 1, 1, SPRITE_FACING_UP, DisplayOakLabEmailText
|
||||
db -1 ; end
|
||||
|
||||
ViridianCityHiddenObjects:
|
||||
hidden_object 14, 4, POTION, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
ViridianPokecenterHiddenObjects:
|
||||
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
|
||||
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
|
||||
db -1 ; end
|
||||
|
||||
ViridianSchoolHiddenObjects:
|
||||
hidden_text_predef 3, 4, ViridianSchoolNotebook, PrintNotebookText
|
||||
hidden_text_predef 3, 0, ViridianSchoolBlackboard, PrintBlackboardLinkCableText
|
||||
db -1 ; end
|
||||
|
||||
ViridianGymHiddenObjects:
|
||||
hidden_object 15, 15, SPRITE_FACING_UP, GymStatues
|
||||
hidden_object 18, 15, SPRITE_FACING_UP, GymStatues
|
||||
db -1 ; end
|
||||
|
||||
Museum1FHiddenObjects:
|
||||
hidden_object 2, 3, SPRITE_FACING_UP, AerodactylFossil
|
||||
hidden_object 2, 6, SPRITE_FACING_UP, KabutopsFossil
|
||||
db -1 ; end
|
||||
|
||||
PewterGymHiddenObjects:
|
||||
hidden_object 3, 10, SPRITE_FACING_UP, GymStatues
|
||||
hidden_object 6, 10, SPRITE_FACING_UP, GymStatues
|
||||
db -1 ; end
|
||||
|
||||
PewterPokecenterHiddenObjects:
|
||||
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
|
||||
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
|
||||
db -1 ; end
|
||||
|
||||
CeruleanCityHiddenObjects:
|
||||
hidden_object 15, 8, RARE_CANDY, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
CeruleanPokecenterHiddenObjects:
|
||||
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
|
||||
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
|
||||
db -1 ; end
|
||||
|
||||
CeruleanGymHiddenObjects:
|
||||
hidden_object 3, 11, SPRITE_FACING_UP, GymStatues
|
||||
hidden_object 6, 11, SPRITE_FACING_UP, GymStatues
|
||||
db -1 ; end
|
||||
|
||||
BikeShopHiddenObjects:
|
||||
hidden_object 1, 0, ANY_FACING, PrintNewBikeText
|
||||
hidden_object 2, 1, ANY_FACING, PrintNewBikeText
|
||||
hidden_object 1, 2, ANY_FACING, PrintNewBikeText
|
||||
hidden_object 3, 2, ANY_FACING, PrintNewBikeText
|
||||
hidden_object 0, 4, ANY_FACING, PrintNewBikeText
|
||||
hidden_object 1, 5, ANY_FACING, PrintNewBikeText
|
||||
db -1 ; end
|
||||
|
||||
CeruleanCave1HiddenObjects:
|
||||
hidden_object 18, 7, PP_UP, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
LavenderPokecenterHiddenObjects:
|
||||
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
|
||||
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
|
||||
db -1 ; end
|
||||
|
||||
Pokemontower5HiddenObjects:
|
||||
hidden_object 4, 12, ELIXER, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
LavenderHouse1HiddenObjects:
|
||||
hidden_object 0, 1, SPRITE_FACING_DOWN, PrintMagazinesText
|
||||
hidden_object 1, 1, SPRITE_FACING_DOWN, PrintMagazinesText
|
||||
hidden_object 7, 1, SPRITE_FACING_DOWN, PrintMagazinesText
|
||||
db -1 ; end
|
||||
|
||||
VermilionCityHiddenObjects:
|
||||
hidden_object 14, 11, MAX_ETHER, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
VermilionPokecenterHiddenObjects:
|
||||
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
|
||||
hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText
|
||||
db -1 ; end
|
||||
|
||||
PokemonFanClubHiddenObjects:
|
||||
hidden_object 1, 0, SPRITE_FACING_UP, FanClubPicture1
|
||||
hidden_object 6, 0, SPRITE_FACING_UP, FanClubPicture2
|
||||
db -1 ; end
|
||||
|
||||
VermilionGymHiddenObjects:
|
||||
hidden_object 3, 14, SPRITE_FACING_UP, GymStatues
|
||||
hidden_object 6, 14, SPRITE_FACING_UP, GymStatues
|
||||
hidden_object 6, 1, SPRITE_FACING_DOWN, PrintTrashText
|
||||
; third param: [wGymTrashCanIndex]
|
||||
hidden_object 1, 7, 0, GymTrashScript
|
||||
hidden_object 1, 9, 1, GymTrashScript
|
||||
hidden_object 1, 11, 2, GymTrashScript
|
||||
hidden_object 3, 7, 3, GymTrashScript
|
||||
hidden_object 3, 9, 4, GymTrashScript
|
||||
hidden_object 3, 11, 5, GymTrashScript
|
||||
hidden_object 5, 7, 6, GymTrashScript
|
||||
hidden_object 5, 9, 7, GymTrashScript
|
||||
hidden_object 5, 11, 8, GymTrashScript
|
||||
hidden_object 7, 7, 9, GymTrashScript
|
||||
hidden_object 7, 9, 10, GymTrashScript
|
||||
hidden_object 7, 11, 11, GymTrashScript
|
||||
hidden_object 9, 7, 12, GymTrashScript
|
||||
hidden_object 9, 9, 13, GymTrashScript
|
||||
hidden_object 9, 11, 14, GymTrashScript
|
||||
db -1 ; end
|
||||
|
||||
CeladonCityHiddenObjects:
|
||||
hidden_object 48, 15, PP_UP, HiddenItems
|
||||
db -1 ; end
|
||||
|
||||
CeladonHotelHiddenObjects:
|
||||
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
|
||||
db -1 ; end
|
||||
|
||||
CeladonMansion2HiddenObjects:
|
||||
hidden_object 0, 5, SPRITE_FACING_UP, OpenPokemonCenterPC
|
||||
db -1 ; end
|
||||
|
||||
CeladonMansion5HiddenObjects:
|
||||
hidden_text_predef 3, 0, LinkCableHelp, PrintBlackboardLinkCableText
|
||||
hidden_text_predef 4, 0, LinkCableHelp, PrintBlackboardLinkCableText
|
||||
hidden_text_predef 3, 4, TMNotebook, PrintNotebookText
|
||||
db -1 ; end
|
||||
|
||||
CeladonPokecenterHiddenObjects:
|
||||
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
|
||||
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
|
||||
db -1 ; end
|
||||
|
||||
CeladonGymHiddenObjects:
|
||||
hidden_object 3, 15, SPRITE_FACING_UP, GymStatues
|
||||
hidden_object 6, 15, SPRITE_FACING_UP, GymStatues
|
||||
db -1 ; end
|
||||
|
||||
GameCornerHiddenObjects:
|
||||
hidden_object 18, 15, ANY_FACING, StartSlotMachine
|
||||
hidden_object 18, 14, ANY_FACING, StartSlotMachine
|
||||
hidden_object 18, 13, ANY_FACING, StartSlotMachine
|
||||
hidden_object 18, 12, ANY_FACING, StartSlotMachine
|
||||
hidden_object 18, 11, ANY_FACING, StartSlotMachine
|
||||
hidden_object 18, 10, SLOTS_SOMEONESKEYS, StartSlotMachine
|
||||
hidden_object 13, 10, ANY_FACING, StartSlotMachine
|
||||
hidden_object 13, 11, ANY_FACING, StartSlotMachine
|
||||
hidden_object 13, 12, SLOTS_OUTTOLUNCH, StartSlotMachine
|
||||
hidden_object 13, 13, ANY_FACING, StartSlotMachine
|
||||
hidden_object 13, 14, ANY_FACING, StartSlotMachine
|
||||
hidden_object 13, 15, ANY_FACING, StartSlotMachine
|
||||
hidden_object 12, 15, ANY_FACING, StartSlotMachine
|
||||
hidden_object 12, 14, ANY_FACING, StartSlotMachine
|
||||
hidden_object 12, 13, ANY_FACING, StartSlotMachine
|
||||
hidden_object 12, 12, ANY_FACING, StartSlotMachine
|
||||
hidden_object 12, 11, ANY_FACING, StartSlotMachine
|
||||
hidden_object 12, 10, ANY_FACING, StartSlotMachine
|
||||
hidden_object 7, 10, ANY_FACING, StartSlotMachine
|
||||
hidden_object 7, 11, ANY_FACING, StartSlotMachine
|
||||
hidden_object 7, 12, ANY_FACING, StartSlotMachine
|
||||
hidden_object 7, 13, ANY_FACING, StartSlotMachine
|
||||
hidden_object 7, 14, ANY_FACING, StartSlotMachine
|
||||
hidden_object 7, 15, ANY_FACING, StartSlotMachine
|
||||
hidden_object 6, 15, ANY_FACING, StartSlotMachine
|
||||
hidden_object 6, 14, ANY_FACING, StartSlotMachine
|
||||
hidden_object 6, 13, ANY_FACING, StartSlotMachine
|
||||
hidden_object 6, 12, SLOTS_OUTOFORDER, StartSlotMachine
|
||||
hidden_object 6, 11, ANY_FACING, StartSlotMachine
|
||||
hidden_object 6, 10, ANY_FACING, StartSlotMachine
|
||||
hidden_object 1, 10, ANY_FACING, StartSlotMachine
|
||||
hidden_object 1, 11, ANY_FACING, StartSlotMachine
|
||||
hidden_object 1, 12, ANY_FACING, StartSlotMachine
|
||||
hidden_object 1, 13, ANY_FACING, StartSlotMachine
|
||||
hidden_object 1, 14, ANY_FACING, StartSlotMachine
|
||||
hidden_object 1, 15, ANY_FACING, StartSlotMachine
|
||||
hidden_object 0, 8, COIN+10, HiddenCoins
|
||||
hidden_object 1, 16, COIN+10, HiddenCoins
|
||||
hidden_object 3, 11, COIN+20, HiddenCoins
|
||||
hidden_object 3, 14, COIN+10, HiddenCoins
|
||||
hidden_object 4, 12, COIN+10, HiddenCoins
|
||||
hidden_object 9, 12, COIN+20, HiddenCoins
|
||||
hidden_object 9, 15, COIN+10, HiddenCoins
|
||||
hidden_object 16, 14, COIN+10, HiddenCoins
|
||||
hidden_object 10, 16, COIN+10, HiddenCoins
|
||||
hidden_object 11, 7, COIN+40, HiddenCoins
|
||||
hidden_object 15, 8, COIN+100, HiddenCoins
|
||||
hidden_object 12, 15, COIN+10, HiddenCoins
|
||||
db -1 ; end
|
||||
|
||||
FuchsiaPokecenterHiddenObjects:
|
||||
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
|
||||
hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText
|
||||
db -1 ; end
|
||||
|
||||
SafariZoneEntranceHiddenObjects:
|
||||
hidden_object 10, 1, NUGGET, HiddenItems ; inaccessible
|
||||
db -1 ; end
|
||||
|
||||
FuchsiaGymHiddenObjects:
|
||||
hidden_object 3, 15, SPRITE_FACING_UP, GymStatues
|
||||
hidden_object 6, 15, SPRITE_FACING_UP, GymStatues
|
||||
db -1 ; end
|
||||
|
||||
Mansion1HiddenObjects:
|
||||
hidden_object 8, 16, MOON_STONE, HiddenItems
|
||||
hidden_object 2, 5, SPRITE_FACING_UP, Mansion1Script_Switches
|
||||
db -1 ; end
|
||||
|
||||
CinnabarGymHiddenObjects:
|
||||
hidden_object 17, 13, SPRITE_FACING_UP, GymStatues
|
||||
; third param: ([hGymGateAnswer] << 4) | [hGymGateIndex]
|
||||
hidden_object 15, 7, (FALSE << 4) | 1, PrintCinnabarQuiz
|
||||
hidden_object 10, 1, (TRUE << 4) | 2, PrintCinnabarQuiz
|
||||
hidden_object 9, 7, (TRUE << 4) | 3, PrintCinnabarQuiz
|
||||
hidden_object 9, 13, (TRUE << 4) | 4, PrintCinnabarQuiz
|
||||
hidden_object 1, 13, (FALSE << 4) | 5, PrintCinnabarQuiz
|
||||
hidden_object 1, 7, (TRUE << 4) | 6, PrintCinnabarQuiz
|
||||
db -1 ; end
|
||||
|
||||
CinnabarLab4HiddenObjects:
|
||||
hidden_object 0, 4, SPRITE_FACING_UP, OpenPokemonCenterPC
|
||||
hidden_object 2, 4, SPRITE_FACING_UP, OpenPokemonCenterPC
|
||||
db -1 ; end
|
||||
|
||||
CinnabarPokecenterHiddenObjects:
|
||||
hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText
|
||||
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
|
||||
db -1 ; end
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
ItemNames::
|
||||
list_start
|
||||
list_start ITEM_NAME_LENGTH - 1
|
||||
li "MASTER BALL"
|
||||
li "ULTRA BALL"
|
||||
li "GREAT BALL"
|
||||
|
|
|
|||
|
|
@ -1,582 +0,0 @@
|
|||
; default hidden/shown objects for each map
|
||||
|
||||
MapHSPointers:
|
||||
; entries correspond to map ids
|
||||
table_width 2
|
||||
dw PalletTownHS
|
||||
dw ViridianCityHS
|
||||
dw PewterCityHS
|
||||
dw CeruleanCityHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw SaffronCityHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw Route2HS
|
||||
dw NoHS
|
||||
dw Route4HS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw Route9HS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw Route12HS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw Route15HS
|
||||
dw Route16HS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw Route22HS
|
||||
dw NoHS
|
||||
dw Route24HS
|
||||
dw Route25HS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw BluesHouseHS
|
||||
dw OaksLabHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw ViridianGymHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw ViridianForestHS
|
||||
dw Museum1FHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw MtMoon1FHS
|
||||
dw NoHS
|
||||
dw MtMoonB2FHS
|
||||
dw NoHS
|
||||
dw CeruleanMelaniesHouseHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw PowerPlantHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw BillsHouseHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw SSAnne2FHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw SSAnne1FRoomsHS
|
||||
dw SSAnne2FRoomsHS
|
||||
dw SSAnneB1FRoomsHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw VictoryRoad1FHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw ChampionsRoomHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw CeladonMansionRoofHouseHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw GameCornerHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw PokemonTower2FHS
|
||||
dw PokemonTower3FHS
|
||||
dw PokemonTower4FHS
|
||||
dw PokemonTower5FHS
|
||||
dw PokemonTower6FHS
|
||||
dw PokemonTower7FHS
|
||||
dw MrFujisHouseHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw WardensHouseHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw SeafoamIslandsB1FHS
|
||||
dw SeafoamIslandsB2FHS
|
||||
dw SeafoamIslandsB3FHS
|
||||
dw SeafoamIslandsB4FHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw PokemonMansion1FHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw FightingDojoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw SilphCo1FHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw SeafoamIslands1FHS
|
||||
dw NoHS
|
||||
dw VictoryRoad2FHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw VictoryRoad3FHS
|
||||
dw RocketHideoutB1FHS
|
||||
dw RocketHideoutB2FHS
|
||||
dw RocketHideoutB3FHS
|
||||
dw RocketHideoutB4FHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw SilphCo2FHS
|
||||
dw SilphCo3FHS
|
||||
dw SilphCo4FHS
|
||||
dw SilphCo5FHS
|
||||
dw SilphCo6FHS
|
||||
dw SilphCo7FHS
|
||||
dw SilphCo8FHS
|
||||
dw PokemonMansion2FHS
|
||||
dw PokemonMansion3FHS
|
||||
dw PokemonMansionB1FHS
|
||||
dw SafariZoneEastHS
|
||||
dw SafariZoneNorthHS
|
||||
dw SafariZoneWestHS
|
||||
dw SafariZoneCenterHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw CeruleanCave2FHS
|
||||
dw CeruleanCaveB1FHS
|
||||
dw CeruleanCaveHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw SilphCo9FHS
|
||||
dw SilphCo10FHS
|
||||
dw SilphCo11FHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw UnusedMapF4HS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
dw NoHS
|
||||
assert_table_length NUM_MAPS
|
||||
dw -1 ; end
|
||||
|
||||
NoHS:
|
||||
db -1, -1, -1 ; end
|
||||
|
||||
MissableObjects:
|
||||
; entries correspond to HS_* constants (see constants/hide_show_constants)
|
||||
table_width 3
|
||||
; format: map id, object id, HIDE/SHOW
|
||||
|
||||
PalletTownHS:
|
||||
db PALLET_TOWN, PALLETTOWN_OAK, HIDE
|
||||
ViridianCityHS:
|
||||
db VIRIDIAN_CITY, VIRIDIANCITY_OLD_MAN_SLEEPY, SHOW
|
||||
db VIRIDIAN_CITY, VIRIDIANCITY_OLD_MAN, HIDE
|
||||
db VIRIDIAN_CITY, VIRIDIANCITY_OLD_MAN2, HIDE
|
||||
PewterCityHS:
|
||||
db PEWTER_CITY, PEWTERCITY_SUPER_NERD1, SHOW
|
||||
db PEWTER_CITY, PEWTERCITY_YOUNGSTER, SHOW
|
||||
CeruleanCityHS:
|
||||
db CERULEAN_CITY, CERULEANCITY_RIVAL, HIDE
|
||||
db CERULEAN_CITY, CERULEANCITY_ROCKET, SHOW
|
||||
db CERULEAN_CITY, CERULEANCITY_GUARD1, HIDE
|
||||
db CERULEAN_CITY, CERULEANCITY_SUPER_NERD3, SHOW
|
||||
db CERULEAN_CITY, CERULEANCITY_GUARD2, SHOW
|
||||
SaffronCityHS:
|
||||
db SAFFRON_CITY, SAFFRONCITY_ROCKET1, SHOW
|
||||
db SAFFRON_CITY, SAFFRONCITY_ROCKET2, SHOW
|
||||
db SAFFRON_CITY, SAFFRONCITY_ROCKET3, SHOW
|
||||
db SAFFRON_CITY, SAFFRONCITY_ROCKET4, SHOW
|
||||
db SAFFRON_CITY, SAFFRONCITY_ROCKET5, SHOW
|
||||
db SAFFRON_CITY, SAFFRONCITY_ROCKET6, SHOW
|
||||
db SAFFRON_CITY, SAFFRONCITY_ROCKET7, SHOW
|
||||
db SAFFRON_CITY, SAFFRONCITY_SCIENTIST, HIDE
|
||||
db SAFFRON_CITY, SAFFRONCITY_SILPH_WORKER_M, HIDE
|
||||
db SAFFRON_CITY, SAFFRONCITY_SILPH_WORKER_F, HIDE
|
||||
db SAFFRON_CITY, SAFFRONCITY_GENTLEMAN, HIDE
|
||||
db SAFFRON_CITY, SAFFRONCITY_PIDGEOT, HIDE
|
||||
db SAFFRON_CITY, SAFFRONCITY_ROCKER, HIDE
|
||||
db SAFFRON_CITY, SAFFRONCITY_ROCKET8, SHOW
|
||||
db SAFFRON_CITY, SAFFRONCITY_ROCKET9, HIDE ; removed in yellow
|
||||
Route2HS:
|
||||
db ROUTE_2, ROUTE2_MOON_STONE, SHOW
|
||||
db ROUTE_2, ROUTE2_HP_UP, SHOW
|
||||
Route4HS:
|
||||
db ROUTE_4, ROUTE4_TM_WHIRLWIND, SHOW
|
||||
Route9HS:
|
||||
db ROUTE_9, ROUTE9_TM_TELEPORT, SHOW
|
||||
Route12HS:
|
||||
db ROUTE_12, ROUTE12_SNORLAX, SHOW
|
||||
db ROUTE_12, ROUTE12_TM_PAY_DAY, SHOW
|
||||
db ROUTE_12, ROUTE12_IRON, SHOW
|
||||
Route15HS:
|
||||
db ROUTE_15, ROUTE15_TM_RAGE, SHOW
|
||||
Route16HS:
|
||||
db ROUTE_16, ROUTE16_SNORLAX, SHOW
|
||||
Route22HS:
|
||||
db ROUTE_22, ROUTE22_RIVAL1, HIDE
|
||||
db ROUTE_22, ROUTE22_RIVAL2, HIDE
|
||||
Route24HS:
|
||||
db ROUTE_24, ROUTE24_COOLTRAINER_M1, SHOW
|
||||
db ROUTE_24, ROUTE24_TM_THUNDER_WAVE, SHOW
|
||||
Route25HS:
|
||||
db ROUTE_25, ROUTE25_TM_SEISMIC_TOSS, SHOW
|
||||
BluesHouseHS:
|
||||
db BLUES_HOUSE, BLUESHOUSE_DAISY1, SHOW
|
||||
db BLUES_HOUSE, BLUESHOUSE_DAISY2, HIDE
|
||||
db BLUES_HOUSE, BLUESHOUSE_TOWN_MAP, SHOW
|
||||
OaksLabHS:
|
||||
db OAKS_LAB, OAKSLAB_RIVAL, SHOW
|
||||
db OAKS_LAB, OAKSLAB_EEVEE_POKE_BALL, SHOW
|
||||
db OAKS_LAB, OAKSLAB_OAK1, HIDE
|
||||
db OAKS_LAB, OAKSLAB_POKEDEX1, SHOW
|
||||
db OAKS_LAB, OAKSLAB_POKEDEX2, SHOW
|
||||
db OAKS_LAB, OAKSLAB_OAK2, HIDE
|
||||
ViridianGymHS:
|
||||
db VIRIDIAN_GYM, VIRIDIANGYM_GIOVANNI, SHOW
|
||||
db VIRIDIAN_GYM, VIRIDIANGYM_REVIVE, SHOW
|
||||
Museum1FHS:
|
||||
db MUSEUM_1F, MUSEUM1F_OLD_AMBER, SHOW
|
||||
CeruleanMelaniesHouseHS:
|
||||
db CERULEAN_MELANIES_HOUSE, CERULEANMELANIESHOUSE_BULBASAUR, SHOW
|
||||
CeruleanCaveHS:
|
||||
db CERULEAN_CAVE_1F, CERULEANCAVE1F_RARE_CANDY, SHOW
|
||||
db CERULEAN_CAVE_1F, CERULEANCAVE1F_MAX_ELIXER, SHOW
|
||||
db CERULEAN_CAVE_1F, CERULEANCAVE1F_MAX_REVIVE, SHOW
|
||||
db CERULEAN_CAVE_1F, CERULEANCAVE1F_ULTRA_BALL, SHOW
|
||||
PokemonTower2FHS:
|
||||
db POKEMON_TOWER_2F, POKEMONTOWER2F_RIVAL, SHOW
|
||||
PokemonTower3FHS:
|
||||
db POKEMON_TOWER_3F, POKEMONTOWER3F_ESCAPE_ROPE, SHOW
|
||||
PokemonTower4FHS:
|
||||
db POKEMON_TOWER_4F, POKEMONTOWER4F_ELIXER, SHOW
|
||||
db POKEMON_TOWER_4F, POKEMONTOWER4F_AWAKENING, SHOW
|
||||
db POKEMON_TOWER_4F, POKEMONTOWER4F_HP_UP, SHOW
|
||||
PokemonTower5FHS:
|
||||
db POKEMON_TOWER_5F, POKEMONTOWER5F_NUGGET, SHOW
|
||||
PokemonTower6FHS:
|
||||
db POKEMON_TOWER_6F, POKEMONTOWER6F_RARE_CANDY, SHOW
|
||||
db POKEMON_TOWER_6F, POKEMONTOWER6F_X_ACCURACY, SHOW
|
||||
PokemonTower7FHS:
|
||||
db POKEMON_TOWER_7F, POKEMONTOWER7F_JESSIE, HIDE
|
||||
db POKEMON_TOWER_7F, POKEMONTOWER7F_JAMES, HIDE
|
||||
db POKEMON_TOWER_7F, POKEMONTOWER7F_MR_FUJI, SHOW
|
||||
MrFujisHouseHS:
|
||||
db MR_FUJIS_HOUSE, MRFUJISHOUSE_MR_FUJI, HIDE
|
||||
CeladonMansionRoofHouseHS:
|
||||
db CELADON_MANSION_ROOF_HOUSE, CELADONMANSION_ROOF_HOUSE_EEVEE_POKEBALL, SHOW
|
||||
GameCornerHS:
|
||||
db GAME_CORNER, GAMECORNER_ROCKET, SHOW
|
||||
WardensHouseHS:
|
||||
db WARDENS_HOUSE, WARDENSHOUSE_RARE_CANDY, SHOW
|
||||
PokemonMansion1FHS:
|
||||
db POKEMON_MANSION_1F, POKEMONMANSION1F_ESCAPE_ROPE, SHOW
|
||||
db POKEMON_MANSION_1F, POKEMONMANSION1F_CARBOS, SHOW
|
||||
FightingDojoHS:
|
||||
db FIGHTING_DOJO, FIGHTINGDOJO_HITMONLEE_POKE_BALL, SHOW
|
||||
db FIGHTING_DOJO, FIGHTINGDOJO_HITMONCHAN_POKE_BALL, SHOW
|
||||
SilphCo1FHS:
|
||||
db SILPH_CO_1F, SILPHCO1F_LINK_RECEPTIONIST, HIDE
|
||||
PowerPlantHS:
|
||||
db POWER_PLANT, POWERPLANT_VOLTORB1, SHOW
|
||||
db POWER_PLANT, POWERPLANT_VOLTORB2, SHOW
|
||||
db POWER_PLANT, POWERPLANT_VOLTORB3, SHOW
|
||||
db POWER_PLANT, POWERPLANT_ELECTRODE1, SHOW
|
||||
db POWER_PLANT, POWERPLANT_VOLTORB4, SHOW
|
||||
db POWER_PLANT, POWERPLANT_VOLTORB5, SHOW
|
||||
db POWER_PLANT, POWERPLANT_ELECTRODE2, SHOW
|
||||
db POWER_PLANT, POWERPLANT_VOLTORB6, SHOW
|
||||
db POWER_PLANT, POWERPLANT_ZAPDOS, SHOW
|
||||
db POWER_PLANT, POWERPLANT_CARBOS, SHOW
|
||||
db POWER_PLANT, POWERPLANT_HP_UP, SHOW
|
||||
db POWER_PLANT, POWERPLANT_RARE_CANDY, SHOW
|
||||
db POWER_PLANT, POWERPLANT_TM_THUNDER, SHOW
|
||||
db POWER_PLANT, POWERPLANT_TM_REFLECT, SHOW
|
||||
VictoryRoad2FHS:
|
||||
db VICTORY_ROAD_2F, VICTORYROAD2F_MOLTRES, SHOW
|
||||
db VICTORY_ROAD_2F, VICTORYROAD2F_TM_SUBMISSION, SHOW
|
||||
db VICTORY_ROAD_2F, VICTORYROAD2F_FULL_HEAL, SHOW
|
||||
db VICTORY_ROAD_2F, VICTORYROAD2F_TM_MEGA_KICK, SHOW
|
||||
db VICTORY_ROAD_2F, VICTORYROAD2F_GUARD_SPEC, SHOW
|
||||
db VICTORY_ROAD_2F, VICTORYROAD2F_BOULDER3, SHOW
|
||||
BillsHouseHS:
|
||||
db BILLS_HOUSE, BILLSHOUSE_BILL_POKEMON, SHOW
|
||||
db BILLS_HOUSE, BILLSHOUSE_BILL1, HIDE
|
||||
db BILLS_HOUSE, BILLSHOUSE_BILL2, HIDE
|
||||
ViridianForestHS:
|
||||
db VIRIDIAN_FOREST, VIRIDIANFOREST_POTION1, SHOW
|
||||
db VIRIDIAN_FOREST, VIRIDIANFOREST_POTION2, SHOW
|
||||
db VIRIDIAN_FOREST, VIRIDIANFOREST_POKE_BALL, SHOW
|
||||
MtMoon1FHS:
|
||||
db MT_MOON_1F, MTMOON1F_POTION1, SHOW
|
||||
db MT_MOON_1F, MTMOON1F_MOON_STONE, SHOW
|
||||
db MT_MOON_1F, MTMOON1F_RARE_CANDY, SHOW
|
||||
db MT_MOON_1F, MTMOON1F_ESCAPE_ROPE, SHOW
|
||||
db MT_MOON_1F, MTMOON1F_POTION2, SHOW
|
||||
db MT_MOON_1F, MTMOON1F_TM_WATER_GUN, SHOW
|
||||
MtMoonB2FHS:
|
||||
db MT_MOON_B2F, MTMOONB2F_JESSIE, HIDE
|
||||
db MT_MOON_B2F, MTMOONB2F_JAMES, HIDE
|
||||
db MT_MOON_B2F, MTMOONB2F_DOME_FOSSIL, SHOW
|
||||
db MT_MOON_B2F, MTMOONB2F_HELIX_FOSSIL, SHOW
|
||||
db MT_MOON_B2F, MTMOONB2F_HP_UP, SHOW
|
||||
db MT_MOON_B2F, MTMOONB2F_TM_MEGA_PUNCH, SHOW
|
||||
SSAnne2FHS:
|
||||
db SS_ANNE_2F, SSANNE2F_RIVAL, HIDE
|
||||
SSAnne1FRoomsHS:
|
||||
db SS_ANNE_1F_ROOMS, SSANNE1FROOMS_TM_BODY_SLAM, SHOW
|
||||
SSAnne2FRoomsHS:
|
||||
db SS_ANNE_2F_ROOMS, SSANNE2FROOMS_MAX_ETHER, SHOW
|
||||
db SS_ANNE_2F_ROOMS, SSANNE2FROOMS_RARE_CANDY, SHOW
|
||||
SSAnneB1FRoomsHS:
|
||||
db SS_ANNE_B1F_ROOMS, SSANNEB1FROOMS_ETHER, SHOW
|
||||
db SS_ANNE_B1F_ROOMS, SSANNEB1FROOMS_TM_REST, SHOW
|
||||
db SS_ANNE_B1F_ROOMS, SSANNEB1FROOMS_MAX_POTION, SHOW
|
||||
VictoryRoad3FHS:
|
||||
db VICTORY_ROAD_3F, VICTORYROAD3F_MAX_REVIVE, SHOW
|
||||
db VICTORY_ROAD_3F, VICTORYROAD3F_TM_EXPLOSION, SHOW
|
||||
db VICTORY_ROAD_3F, VICTORYROAD3F_BOULDER4, SHOW
|
||||
RocketHideoutB1FHS:
|
||||
db ROCKET_HIDEOUT_B1F, ROCKETHIDEOUTB1F_ESCAPE_ROPE, SHOW
|
||||
db ROCKET_HIDEOUT_B1F, ROCKETHIDEOUTB1F_HYPER_POTION, SHOW
|
||||
RocketHideoutB2FHS:
|
||||
db ROCKET_HIDEOUT_B2F, ROCKETHIDEOUTB2F_MOON_STONE, SHOW
|
||||
db ROCKET_HIDEOUT_B2F, ROCKETHIDEOUTB2F_NUGGET, SHOW
|
||||
db ROCKET_HIDEOUT_B2F, ROCKETHIDEOUTB2F_TM_HORN_DRILL, SHOW
|
||||
db ROCKET_HIDEOUT_B2F, ROCKETHIDEOUTB2F_SUPER_POTION, SHOW
|
||||
RocketHideoutB3FHS:
|
||||
db ROCKET_HIDEOUT_B3F, ROCKETHIDEOUTB3F_TM_DOUBLE_EDGE, SHOW
|
||||
db ROCKET_HIDEOUT_B3F, ROCKETHIDEOUTB3F_RARE_CANDY, SHOW
|
||||
RocketHideoutB4FHS:
|
||||
db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_GIOVANNI, SHOW
|
||||
db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_JAMES, HIDE
|
||||
db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_JESSIE, HIDE
|
||||
db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_HP_UP, SHOW
|
||||
db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_TM_RAZOR_WIND, SHOW
|
||||
db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_IRON, SHOW
|
||||
db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_SILPH_SCOPE, HIDE
|
||||
db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_LIFT_KEY, HIDE
|
||||
SilphCo2FHS:
|
||||
db SILPH_CO_2F, SILPHCO2F_SILPH_WORKER_F, SHOW
|
||||
db SILPH_CO_2F, SILPHCO2F_SCIENTIST1, SHOW
|
||||
db SILPH_CO_2F, SILPHCO2F_SCIENTIST2, SHOW
|
||||
db SILPH_CO_2F, SILPHCO2F_ROCKET1, SHOW
|
||||
db SILPH_CO_2F, SILPHCO2F_ROCKET2, SHOW
|
||||
SilphCo3FHS:
|
||||
db SILPH_CO_3F, SILPHCO3F_ROCKET, SHOW
|
||||
db SILPH_CO_3F, SILPHCO3F_SCIENTIST, SHOW
|
||||
db SILPH_CO_3F, SILPHCO3F_HYPER_POTION, SHOW
|
||||
SilphCo4FHS:
|
||||
db SILPH_CO_4F, SILPHCO4F_ROCKET1, SHOW
|
||||
db SILPH_CO_4F, SILPHCO4F_SCIENTIST, SHOW
|
||||
db SILPH_CO_4F, SILPHCO4F_ROCKET2, SHOW
|
||||
db SILPH_CO_4F, SILPHCO4F_FULL_HEAL, SHOW
|
||||
db SILPH_CO_4F, SILPHCO4F_MAX_REVIVE, SHOW
|
||||
db SILPH_CO_4F, SILPHCO4F_ESCAPE_ROPE, SHOW
|
||||
SilphCo5FHS:
|
||||
db SILPH_CO_5F, SILPHCO5F_ROCKET1, SHOW
|
||||
db SILPH_CO_5F, SILPHCO5F_SCIENTIST, SHOW
|
||||
db SILPH_CO_5F, SILPHCO5F_ROCKER, SHOW
|
||||
db SILPH_CO_5F, SILPHCO5F_ROCKET2, SHOW
|
||||
db SILPH_CO_5F, SILPHCO5F_TM_TAKE_DOWN, SHOW
|
||||
db SILPH_CO_5F, SILPHCO5F_PROTEIN, SHOW
|
||||
db SILPH_CO_5F, SILPHCO5F_CARD_KEY, SHOW
|
||||
SilphCo6FHS:
|
||||
db SILPH_CO_6F, SILPHCO6F_ROCKET1, SHOW
|
||||
db SILPH_CO_6F, SILPHCO6F_SCIENTIST, SHOW
|
||||
db SILPH_CO_6F, SILPHCO6F_ROCKET2, SHOW
|
||||
db SILPH_CO_6F, SILPHCO6F_HP_UP, SHOW
|
||||
db SILPH_CO_6F, SILPHCO6F_X_ACCURACY, SHOW
|
||||
SilphCo7FHS:
|
||||
db SILPH_CO_7F, SILPHCO7F_ROCKET1, SHOW
|
||||
db SILPH_CO_7F, SILPHCO7F_SCIENTIST, SHOW
|
||||
db SILPH_CO_7F, SILPHCO7F_ROCKET2, SHOW
|
||||
db SILPH_CO_7F, SILPHCO7F_ROCKET3, SHOW
|
||||
db SILPH_CO_7F, SILPHCO7F_RIVAL, SHOW
|
||||
db SILPH_CO_7F, SILPHCO7F_CALCIUM, SHOW
|
||||
db SILPH_CO_7F, SILPHCO7F_TM_SWORDS_DANCE, SHOW
|
||||
db SILPH_CO_7F, SILPHCO7F_UNUSED, SHOW
|
||||
SilphCo8FHS:
|
||||
db SILPH_CO_8F, SILPHCO8F_ROCKET1, SHOW
|
||||
db SILPH_CO_8F, SILPHCO8F_SCIENTIST, SHOW
|
||||
db SILPH_CO_8F, SILPHCO8F_ROCKET2, SHOW
|
||||
SilphCo9FHS:
|
||||
db SILPH_CO_9F, SILPHCO9F_ROCKET1, SHOW
|
||||
db SILPH_CO_9F, SILPHCO9F_SCIENTIST, SHOW
|
||||
db SILPH_CO_9F, SILPHCO9F_ROCKET2, SHOW
|
||||
SilphCo10FHS:
|
||||
db SILPH_CO_10F, SILPHCO10F_ROCKET, SHOW
|
||||
db SILPH_CO_10F, SILPHCO10F_SCIENTIST, SHOW
|
||||
db SILPH_CO_10F, SILPHCO10F_SILPH_WORKER_F, SHOW
|
||||
db SILPH_CO_10F, SILPHCO10F_TM_EARTHQUAKE, SHOW
|
||||
db SILPH_CO_10F, SILPHCO10F_RARE_CANDY, SHOW
|
||||
db SILPH_CO_10F, SILPHCO10F_CARBOS, SHOW
|
||||
SilphCo11FHS:
|
||||
db SILPH_CO_11F, SILPHCO11F_GIOVANNI, SHOW
|
||||
db SILPH_CO_11F, SILPHCO11F_JAMES, SHOW
|
||||
db SILPH_CO_11F, SILPHCO11F_ROCKET, SHOW
|
||||
db SILPH_CO_11F, SILPHCO11F_JESSIE, SHOW
|
||||
UnusedMapF4HS:
|
||||
db UNUSED_MAP_F4, $02, SHOW ; unused
|
||||
PokemonMansion2FHS:
|
||||
db POKEMON_MANSION_2F, POKEMONMANSION2F_CALCIUM, SHOW
|
||||
PokemonMansion3FHS:
|
||||
db POKEMON_MANSION_3F, POKEMONMANSION3F_MAX_POTION, SHOW
|
||||
db POKEMON_MANSION_3F, POKEMONMANSION3F_IRON, SHOW
|
||||
PokemonMansionB1FHS:
|
||||
db POKEMON_MANSION_B1F, POKEMONMANSIONB1F_RARE_CANDY, SHOW
|
||||
db POKEMON_MANSION_B1F, POKEMONMANSIONB1F_FULL_RESTORE, SHOW
|
||||
db POKEMON_MANSION_B1F, POKEMONMANSIONB1F_TM_BLIZZARD, SHOW
|
||||
db POKEMON_MANSION_B1F, POKEMONMANSIONB1F_TM_SOLARBEAM, SHOW
|
||||
db POKEMON_MANSION_B1F, POKEMONMANSIONB1F_SECRET_KEY, SHOW
|
||||
SafariZoneEastHS:
|
||||
db SAFARI_ZONE_EAST, SAFARIZONEEAST_FULL_RESTORE, SHOW
|
||||
db SAFARI_ZONE_EAST, SAFARIZONEEAST_MAX_RESTORE, SHOW
|
||||
db SAFARI_ZONE_EAST, SAFARIZONEEAST_CARBOS, SHOW
|
||||
db SAFARI_ZONE_EAST, SAFARIZONEEAST_TM_EGG_BOMB, SHOW
|
||||
SafariZoneNorthHS:
|
||||
db SAFARI_ZONE_NORTH, SAFARIZONENORTH_PROTEIN, SHOW
|
||||
db SAFARI_ZONE_NORTH, SAFARIZONENORTH_TM_SKULL_BASH, SHOW
|
||||
SafariZoneWestHS:
|
||||
db SAFARI_ZONE_WEST, SAFARIZONEWEST_MAX_POTION, SHOW
|
||||
db SAFARI_ZONE_WEST, SAFARIZONEWEST_TM_DOUBLE_TEAM, SHOW
|
||||
db SAFARI_ZONE_WEST, SAFARIZONEWEST_MAX_REVIVE, SHOW
|
||||
db SAFARI_ZONE_WEST, SAFARIZONEWEST_GOLD_TEETH, SHOW
|
||||
SafariZoneCenterHS:
|
||||
db SAFARI_ZONE_CENTER, SAFARIZONECENTER_NUGGET, SHOW
|
||||
CeruleanCave2FHS:
|
||||
db CERULEAN_CAVE_2F, CERULEANCAVE2F_RARE_CANDY, SHOW
|
||||
db CERULEAN_CAVE_2F, CERULEANCAVE2F_ULTRA_BALL, SHOW
|
||||
db CERULEAN_CAVE_2F, CERULEANCAVE2F_MAX_REVIVE, SHOW
|
||||
db CERULEAN_CAVE_2F, CERULEANCAVE2F_FULL_RESTORE, SHOW
|
||||
CeruleanCaveB1FHS:
|
||||
db CERULEAN_CAVE_B1F, CERULEANCAVEB1F_MEWTWO, SHOW
|
||||
db CERULEAN_CAVE_B1F, CERULEANCAVEB1F_ULTRA_BALL1, SHOW
|
||||
db CERULEAN_CAVE_B1F, CERULEANCAVEB1F_ULTRA_BALL2, SHOW
|
||||
db CERULEAN_CAVE_B1F, CERULEANCAVEB1F_MAX_REVIVE, SHOW
|
||||
db CERULEAN_CAVE_B1F, CERULEANCAVEB1F_MAX_ELIXER, SHOW
|
||||
VictoryRoad1FHS:
|
||||
db VICTORY_ROAD_1F, VICTORYROAD1F_TM_SKY_ATTACK, SHOW
|
||||
db VICTORY_ROAD_1F, VICTORYROAD1F_RARE_CANDY, SHOW
|
||||
ChampionsRoomHS:
|
||||
db CHAMPIONS_ROOM, CHAMPIONSROOM_OAK, HIDE
|
||||
SeafoamIslands1FHS:
|
||||
db SEAFOAM_ISLANDS_1F, SEAFOAMISLANDS1F_BOULDER1, SHOW
|
||||
db SEAFOAM_ISLANDS_1F, SEAFOAMISLANDS1F_BOULDER2, SHOW
|
||||
SeafoamIslandsB1FHS:
|
||||
db SEAFOAM_ISLANDS_B1F, SEAFOAMISLANDSB1F_BOULDER1, HIDE
|
||||
db SEAFOAM_ISLANDS_B1F, SEAFOAMISLANDSB1F_BOULDER2, HIDE
|
||||
SeafoamIslandsB2FHS:
|
||||
db SEAFOAM_ISLANDS_B2F, SEAFOAMISLANDSB2F_BOULDER1, HIDE
|
||||
db SEAFOAM_ISLANDS_B2F, SEAFOAMISLANDSB2F_BOULDER2, HIDE
|
||||
SeafoamIslandsB3FHS:
|
||||
db SEAFOAM_ISLANDS_B3F, SEAFOAMISLANDSB3F_BOULDER2, SHOW
|
||||
db SEAFOAM_ISLANDS_B3F, SEAFOAMISLANDSB3F_BOULDER3, SHOW
|
||||
db SEAFOAM_ISLANDS_B3F, SEAFOAMISLANDSB3F_BOULDER5, HIDE
|
||||
db SEAFOAM_ISLANDS_B3F, SEAFOAMISLANDSB3F_BOULDER6, HIDE
|
||||
SeafoamIslandsB4FHS:
|
||||
db SEAFOAM_ISLANDS_B4F, SEAFOAMISLANDSB4F_BOULDER1, HIDE
|
||||
db SEAFOAM_ISLANDS_B4F, SEAFOAMISLANDSB4F_BOULDER2, HIDE
|
||||
db SEAFOAM_ISLANDS_B4F, SEAFOAMISLANDSB4F_ARTICUNO, SHOW
|
||||
BluesHouseHSCopy: ; unreferenced
|
||||
db BLUES_HOUSE, BLUESHOUSE_DAISY1, SHOW
|
||||
db BLUES_HOUSE, BLUESHOUSE_DAISY2, HIDE
|
||||
db BLUES_HOUSE, BLUESHOUSE_TOWN_MAP, SHOW
|
||||
assert_table_length NUM_HS_OBJECTS
|
||||
db -1, 1, SHOW ; end
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
const_export SAFFRONCITY_PIDGEOT
|
||||
const_export SAFFRONCITY_ROCKER
|
||||
const_export SAFFRONCITY_ROCKET8
|
||||
const_export SAFFRONCITY_ROCKET9 ; removed in yellow, but still referenced in data/maps/hide_show_data.asm
|
||||
const_export SAFFRONCITY_ROCKET9 ; removed in yellow, but still referenced in data/maps/toggleable_objects.asm
|
||||
|
||||
SaffronCity_Object:
|
||||
db $f ; border block
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
const_export SILPHCO7F_RIVAL
|
||||
const_export SILPHCO7F_CALCIUM
|
||||
const_export SILPHCO7F_TM_SWORDS_DANCE
|
||||
const_export SILPHCO7F_UNUSED ; referenced in data/maps/hide_show_data.asm, no corresponding object_event
|
||||
const_export SILPHCO7F_UNUSED ; referenced in data/maps/toggleable_objects.asm, no corresponding object_event
|
||||
|
||||
SilphCo7F_Object:
|
||||
db $2e ; border block
|
||||
|
|
|
|||
438
data/maps/toggleable_objects.asm
Normal file
438
data/maps/toggleable_objects.asm
Normal file
|
|
@ -0,0 +1,438 @@
|
|||
; toggleable objects for each map
|
||||
|
||||
ToggleableObjectMapPointers:
|
||||
; entries correspond to map ids
|
||||
table_width 2
|
||||
FOR n, NUM_MAPS
|
||||
IF DEF(TOGGLEMAP{n}_NAME) ; defined by `toggle_consts_for`
|
||||
dw ToggleData_{TOGGLEMAP{n}_NAME}
|
||||
ELSE
|
||||
dw NoToggleData
|
||||
ENDC
|
||||
ENDR
|
||||
assert_table_length NUM_MAPS
|
||||
dw -1 ; end
|
||||
|
||||
NoToggleData:
|
||||
db -1, -1, -1 ; end
|
||||
|
||||
DEF toggles_ok = 1
|
||||
|
||||
MACRO? toggleable_objects_for
|
||||
DEF toggle_map_id = \1 ; map id
|
||||
ToggleData_\1:
|
||||
IF toggles_ok
|
||||
ASSERT DEF(TOGGLEMAP{toggle_map_id}_ID), \
|
||||
"`toggleable_objects_for \1` is not defined"
|
||||
DEF toggles_ok &= DEF(TOGGLEMAP{toggle_map_id}_ID)
|
||||
IF toggles_ok
|
||||
assert_table_length TOGGLEMAP{toggle_map_id}_ID
|
||||
DEF toggles_ok &= TOGGLEMAP{toggle_map_id}_ID * 3 == @ - ToggleableObjectStates
|
||||
ENDC
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
MACRO toggle_object_state
|
||||
db toggle_map_id ; from previous `toggleable_objects_for`
|
||||
db \1 ; object id
|
||||
db \2 ; OFF/ON
|
||||
ENDM
|
||||
|
||||
ToggleableObjectStates:
|
||||
; entries correspond to TOGGLE_* constants (see constants/toggle_constants.asm)
|
||||
table_width 3
|
||||
|
||||
toggleable_objects_for PALLET_TOWN
|
||||
toggle_object_state PALLETTOWN_OAK, OFF
|
||||
|
||||
toggleable_objects_for VIRIDIAN_CITY
|
||||
toggle_object_state VIRIDIANCITY_OLD_MAN_SLEEPY, ON
|
||||
toggle_object_state VIRIDIANCITY_OLD_MAN, OFF
|
||||
toggle_object_state VIRIDIANCITY_OLD_MAN2, OFF
|
||||
|
||||
toggleable_objects_for PEWTER_CITY
|
||||
toggle_object_state PEWTERCITY_SUPER_NERD1, ON
|
||||
toggle_object_state PEWTERCITY_YOUNGSTER, ON
|
||||
|
||||
toggleable_objects_for CERULEAN_CITY
|
||||
toggle_object_state CERULEANCITY_RIVAL, OFF
|
||||
toggle_object_state CERULEANCITY_ROCKET, ON
|
||||
toggle_object_state CERULEANCITY_GUARD1, OFF
|
||||
toggle_object_state CERULEANCITY_SUPER_NERD3, ON
|
||||
toggle_object_state CERULEANCITY_GUARD2, ON
|
||||
|
||||
toggleable_objects_for SAFFRON_CITY
|
||||
toggle_object_state SAFFRONCITY_ROCKET1, ON
|
||||
toggle_object_state SAFFRONCITY_ROCKET2, ON
|
||||
toggle_object_state SAFFRONCITY_ROCKET3, ON
|
||||
toggle_object_state SAFFRONCITY_ROCKET4, ON
|
||||
toggle_object_state SAFFRONCITY_ROCKET5, ON
|
||||
toggle_object_state SAFFRONCITY_ROCKET6, ON
|
||||
toggle_object_state SAFFRONCITY_ROCKET7, ON
|
||||
toggle_object_state SAFFRONCITY_SCIENTIST, OFF
|
||||
toggle_object_state SAFFRONCITY_SILPH_WORKER_M, OFF
|
||||
toggle_object_state SAFFRONCITY_SILPH_WORKER_F, OFF
|
||||
toggle_object_state SAFFRONCITY_GENTLEMAN, OFF
|
||||
toggle_object_state SAFFRONCITY_PIDGEOT, OFF
|
||||
toggle_object_state SAFFRONCITY_ROCKER, OFF
|
||||
toggle_object_state SAFFRONCITY_ROCKET8, ON
|
||||
toggle_object_state SAFFRONCITY_ROCKET9, OFF ; removed in yellow
|
||||
|
||||
toggleable_objects_for ROUTE_2
|
||||
toggle_object_state ROUTE2_MOON_STONE, ON
|
||||
toggle_object_state ROUTE2_HP_UP, ON
|
||||
|
||||
toggleable_objects_for ROUTE_4
|
||||
toggle_object_state ROUTE4_TM_WHIRLWIND, ON
|
||||
|
||||
toggleable_objects_for ROUTE_9
|
||||
toggle_object_state ROUTE9_TM_TELEPORT, ON
|
||||
|
||||
toggleable_objects_for ROUTE_12
|
||||
toggle_object_state ROUTE12_SNORLAX, ON
|
||||
toggle_object_state ROUTE12_TM_PAY_DAY, ON
|
||||
toggle_object_state ROUTE12_IRON, ON
|
||||
|
||||
toggleable_objects_for ROUTE_15
|
||||
toggle_object_state ROUTE15_TM_RAGE, ON
|
||||
|
||||
toggleable_objects_for ROUTE_16
|
||||
toggle_object_state ROUTE16_SNORLAX, ON
|
||||
|
||||
toggleable_objects_for ROUTE_22
|
||||
toggle_object_state ROUTE22_RIVAL1, OFF
|
||||
toggle_object_state ROUTE22_RIVAL2, OFF
|
||||
|
||||
toggleable_objects_for ROUTE_24
|
||||
toggle_object_state ROUTE24_COOLTRAINER_M1, ON
|
||||
toggle_object_state ROUTE24_TM_THUNDER_WAVE, ON
|
||||
|
||||
toggleable_objects_for ROUTE_25
|
||||
toggle_object_state ROUTE25_TM_SEISMIC_TOSS, ON
|
||||
|
||||
toggleable_objects_for BLUES_HOUSE
|
||||
toggle_object_state BLUESHOUSE_DAISY1, ON
|
||||
toggle_object_state BLUESHOUSE_DAISY2, OFF
|
||||
toggle_object_state BLUESHOUSE_TOWN_MAP, ON
|
||||
|
||||
toggleable_objects_for OAKS_LAB
|
||||
toggle_object_state OAKSLAB_RIVAL, ON
|
||||
toggle_object_state OAKSLAB_EEVEE_POKE_BALL, ON
|
||||
toggle_object_state OAKSLAB_OAK1, OFF
|
||||
toggle_object_state OAKSLAB_POKEDEX1, ON
|
||||
toggle_object_state OAKSLAB_POKEDEX2, ON
|
||||
toggle_object_state OAKSLAB_OAK2, OFF
|
||||
|
||||
toggleable_objects_for VIRIDIAN_GYM
|
||||
toggle_object_state VIRIDIANGYM_GIOVANNI, ON
|
||||
toggle_object_state VIRIDIANGYM_REVIVE, ON
|
||||
|
||||
toggleable_objects_for MUSEUM_1F
|
||||
toggle_object_state MUSEUM1F_OLD_AMBER, ON
|
||||
|
||||
toggleable_objects_for CERULEAN_MELANIES_HOUSE
|
||||
toggle_object_state CERULEANMELANIESHOUSE_BULBASAUR, ON
|
||||
|
||||
toggleable_objects_for CERULEAN_CAVE_1F
|
||||
toggle_object_state CERULEANCAVE1F_RARE_CANDY, ON
|
||||
toggle_object_state CERULEANCAVE1F_MAX_ELIXER, ON
|
||||
toggle_object_state CERULEANCAVE1F_MAX_REVIVE, ON
|
||||
toggle_object_state CERULEANCAVE1F_ULTRA_BALL, ON
|
||||
|
||||
toggleable_objects_for POKEMON_TOWER_2F
|
||||
toggle_object_state POKEMONTOWER2F_RIVAL, ON
|
||||
|
||||
toggleable_objects_for POKEMON_TOWER_3F
|
||||
toggle_object_state POKEMONTOWER3F_ESCAPE_ROPE, ON
|
||||
|
||||
toggleable_objects_for POKEMON_TOWER_4F
|
||||
toggle_object_state POKEMONTOWER4F_ELIXER, ON
|
||||
toggle_object_state POKEMONTOWER4F_AWAKENING, ON
|
||||
toggle_object_state POKEMONTOWER4F_HP_UP, ON
|
||||
|
||||
toggleable_objects_for POKEMON_TOWER_5F
|
||||
toggle_object_state POKEMONTOWER5F_NUGGET, ON
|
||||
|
||||
toggleable_objects_for POKEMON_TOWER_6F
|
||||
toggle_object_state POKEMONTOWER6F_RARE_CANDY, ON
|
||||
toggle_object_state POKEMONTOWER6F_X_ACCURACY, ON
|
||||
|
||||
toggleable_objects_for POKEMON_TOWER_7F
|
||||
toggle_object_state POKEMONTOWER7F_JESSIE, OFF
|
||||
toggle_object_state POKEMONTOWER7F_JAMES, OFF
|
||||
toggle_object_state POKEMONTOWER7F_MR_FUJI, ON
|
||||
|
||||
toggleable_objects_for MR_FUJIS_HOUSE
|
||||
toggle_object_state MRFUJISHOUSE_MR_FUJI, OFF
|
||||
|
||||
toggleable_objects_for CELADON_MANSION_ROOF_HOUSE
|
||||
toggle_object_state CELADONMANSION_ROOF_HOUSE_EEVEE_POKEBALL, ON
|
||||
|
||||
toggleable_objects_for GAME_CORNER
|
||||
toggle_object_state GAMECORNER_ROCKET, ON
|
||||
|
||||
toggleable_objects_for WARDENS_HOUSE
|
||||
toggle_object_state WARDENSHOUSE_RARE_CANDY, ON
|
||||
|
||||
toggleable_objects_for POKEMON_MANSION_1F
|
||||
toggle_object_state POKEMONMANSION1F_ESCAPE_ROPE, ON
|
||||
toggle_object_state POKEMONMANSION1F_CARBOS, ON
|
||||
|
||||
toggleable_objects_for FIGHTING_DOJO
|
||||
toggle_object_state FIGHTINGDOJO_HITMONLEE_POKE_BALL, ON
|
||||
toggle_object_state FIGHTINGDOJO_HITMONCHAN_POKE_BALL, ON
|
||||
|
||||
toggleable_objects_for SILPH_CO_1F
|
||||
toggle_object_state SILPHCO1F_LINK_RECEPTIONIST, OFF
|
||||
|
||||
toggleable_objects_for POWER_PLANT
|
||||
toggle_object_state POWERPLANT_VOLTORB1, ON
|
||||
toggle_object_state POWERPLANT_VOLTORB2, ON
|
||||
toggle_object_state POWERPLANT_VOLTORB3, ON
|
||||
toggle_object_state POWERPLANT_ELECTRODE1, ON
|
||||
toggle_object_state POWERPLANT_VOLTORB4, ON
|
||||
toggle_object_state POWERPLANT_VOLTORB5, ON
|
||||
toggle_object_state POWERPLANT_ELECTRODE2, ON
|
||||
toggle_object_state POWERPLANT_VOLTORB6, ON
|
||||
toggle_object_state POWERPLANT_ZAPDOS, ON
|
||||
toggle_object_state POWERPLANT_CARBOS, ON
|
||||
toggle_object_state POWERPLANT_HP_UP, ON
|
||||
toggle_object_state POWERPLANT_RARE_CANDY, ON
|
||||
toggle_object_state POWERPLANT_TM_THUNDER, ON
|
||||
toggle_object_state POWERPLANT_TM_REFLECT, ON
|
||||
|
||||
toggleable_objects_for VICTORY_ROAD_2F
|
||||
toggle_object_state VICTORYROAD2F_MOLTRES, ON
|
||||
toggle_object_state VICTORYROAD2F_TM_SUBMISSION, ON
|
||||
toggle_object_state VICTORYROAD2F_FULL_HEAL, ON
|
||||
toggle_object_state VICTORYROAD2F_TM_MEGA_KICK, ON
|
||||
toggle_object_state VICTORYROAD2F_GUARD_SPEC, ON
|
||||
toggle_object_state VICTORYROAD2F_BOULDER3, ON
|
||||
|
||||
toggleable_objects_for BILLS_HOUSE
|
||||
toggle_object_state BILLSHOUSE_BILL_POKEMON, ON
|
||||
toggle_object_state BILLSHOUSE_BILL1, OFF
|
||||
toggle_object_state BILLSHOUSE_BILL2, OFF
|
||||
|
||||
toggleable_objects_for VIRIDIAN_FOREST
|
||||
toggle_object_state VIRIDIANFOREST_POTION1, ON
|
||||
toggle_object_state VIRIDIANFOREST_POTION2, ON
|
||||
toggle_object_state VIRIDIANFOREST_POKE_BALL, ON
|
||||
|
||||
toggleable_objects_for MT_MOON_1F
|
||||
toggle_object_state MTMOON1F_POTION1, ON
|
||||
toggle_object_state MTMOON1F_MOON_STONE, ON
|
||||
toggle_object_state MTMOON1F_RARE_CANDY, ON
|
||||
toggle_object_state MTMOON1F_ESCAPE_ROPE, ON
|
||||
toggle_object_state MTMOON1F_POTION2, ON
|
||||
toggle_object_state MTMOON1F_TM_WATER_GUN, ON
|
||||
|
||||
toggleable_objects_for MT_MOON_B2F
|
||||
toggle_object_state MTMOONB2F_JESSIE, OFF
|
||||
toggle_object_state MTMOONB2F_JAMES, OFF
|
||||
toggle_object_state MTMOONB2F_DOME_FOSSIL, ON
|
||||
toggle_object_state MTMOONB2F_HELIX_FOSSIL, ON
|
||||
toggle_object_state MTMOONB2F_HP_UP, ON
|
||||
toggle_object_state MTMOONB2F_TM_MEGA_PUNCH, ON
|
||||
|
||||
toggleable_objects_for SS_ANNE_2F
|
||||
toggle_object_state SSANNE2F_RIVAL, OFF
|
||||
|
||||
toggleable_objects_for SS_ANNE_1F_ROOMS
|
||||
toggle_object_state SSANNE1FROOMS_TM_BODY_SLAM, ON
|
||||
|
||||
toggleable_objects_for SS_ANNE_2F_ROOMS
|
||||
toggle_object_state SSANNE2FROOMS_MAX_ETHER, ON
|
||||
toggle_object_state SSANNE2FROOMS_RARE_CANDY, ON
|
||||
|
||||
toggleable_objects_for SS_ANNE_B1F_ROOMS
|
||||
toggle_object_state SSANNEB1FROOMS_ETHER, ON
|
||||
toggle_object_state SSANNEB1FROOMS_TM_REST, ON
|
||||
toggle_object_state SSANNEB1FROOMS_MAX_POTION, ON
|
||||
|
||||
toggleable_objects_for VICTORY_ROAD_3F
|
||||
toggle_object_state VICTORYROAD3F_MAX_REVIVE, ON
|
||||
toggle_object_state VICTORYROAD3F_TM_EXPLOSION, ON
|
||||
toggle_object_state VICTORYROAD3F_BOULDER4, ON
|
||||
|
||||
toggleable_objects_for ROCKET_HIDEOUT_B1F
|
||||
toggle_object_state ROCKETHIDEOUTB1F_ESCAPE_ROPE, ON
|
||||
toggle_object_state ROCKETHIDEOUTB1F_HYPER_POTION, ON
|
||||
|
||||
toggleable_objects_for ROCKET_HIDEOUT_B2F
|
||||
toggle_object_state ROCKETHIDEOUTB2F_MOON_STONE, ON
|
||||
toggle_object_state ROCKETHIDEOUTB2F_NUGGET, ON
|
||||
toggle_object_state ROCKETHIDEOUTB2F_TM_HORN_DRILL, ON
|
||||
toggle_object_state ROCKETHIDEOUTB2F_SUPER_POTION, ON
|
||||
|
||||
toggleable_objects_for ROCKET_HIDEOUT_B3F
|
||||
toggle_object_state ROCKETHIDEOUTB3F_TM_DOUBLE_EDGE, ON
|
||||
toggle_object_state ROCKETHIDEOUTB3F_RARE_CANDY, ON
|
||||
|
||||
toggleable_objects_for ROCKET_HIDEOUT_B4F
|
||||
toggle_object_state ROCKETHIDEOUTB4F_GIOVANNI, ON
|
||||
toggle_object_state ROCKETHIDEOUTB4F_JAMES, OFF
|
||||
toggle_object_state ROCKETHIDEOUTB4F_JESSIE, OFF
|
||||
toggle_object_state ROCKETHIDEOUTB4F_HP_UP, ON
|
||||
toggle_object_state ROCKETHIDEOUTB4F_TM_RAZOR_WIND, ON
|
||||
toggle_object_state ROCKETHIDEOUTB4F_IRON, ON
|
||||
toggle_object_state ROCKETHIDEOUTB4F_SILPH_SCOPE, OFF
|
||||
toggle_object_state ROCKETHIDEOUTB4F_LIFT_KEY, OFF
|
||||
|
||||
toggleable_objects_for SILPH_CO_2F
|
||||
toggle_object_state SILPHCO2F_SILPH_WORKER_F, ON
|
||||
toggle_object_state SILPHCO2F_SCIENTIST1, ON
|
||||
toggle_object_state SILPHCO2F_SCIENTIST2, ON
|
||||
toggle_object_state SILPHCO2F_ROCKET1, ON
|
||||
toggle_object_state SILPHCO2F_ROCKET2, ON
|
||||
|
||||
toggleable_objects_for SILPH_CO_3F
|
||||
toggle_object_state SILPHCO3F_ROCKET, ON
|
||||
toggle_object_state SILPHCO3F_SCIENTIST, ON
|
||||
toggle_object_state SILPHCO3F_HYPER_POTION, ON
|
||||
|
||||
toggleable_objects_for SILPH_CO_4F
|
||||
toggle_object_state SILPHCO4F_ROCKET1, ON
|
||||
toggle_object_state SILPHCO4F_SCIENTIST, ON
|
||||
toggle_object_state SILPHCO4F_ROCKET2, ON
|
||||
toggle_object_state SILPHCO4F_FULL_HEAL, ON
|
||||
toggle_object_state SILPHCO4F_MAX_REVIVE, ON
|
||||
toggle_object_state SILPHCO4F_ESCAPE_ROPE, ON
|
||||
|
||||
toggleable_objects_for SILPH_CO_5F
|
||||
toggle_object_state SILPHCO5F_ROCKET1, ON
|
||||
toggle_object_state SILPHCO5F_SCIENTIST, ON
|
||||
toggle_object_state SILPHCO5F_ROCKER, ON
|
||||
toggle_object_state SILPHCO5F_ROCKET2, ON
|
||||
toggle_object_state SILPHCO5F_TM_TAKE_DOWN, ON
|
||||
toggle_object_state SILPHCO5F_PROTEIN, ON
|
||||
toggle_object_state SILPHCO5F_CARD_KEY, ON
|
||||
|
||||
toggleable_objects_for SILPH_CO_6F
|
||||
toggle_object_state SILPHCO6F_ROCKET1, ON
|
||||
toggle_object_state SILPHCO6F_SCIENTIST, ON
|
||||
toggle_object_state SILPHCO6F_ROCKET2, ON
|
||||
toggle_object_state SILPHCO6F_HP_UP, ON
|
||||
toggle_object_state SILPHCO6F_X_ACCURACY, ON
|
||||
|
||||
toggleable_objects_for SILPH_CO_7F
|
||||
toggle_object_state SILPHCO7F_ROCKET1, ON
|
||||
toggle_object_state SILPHCO7F_SCIENTIST, ON
|
||||
toggle_object_state SILPHCO7F_ROCKET2, ON
|
||||
toggle_object_state SILPHCO7F_ROCKET3, ON
|
||||
toggle_object_state SILPHCO7F_RIVAL, ON
|
||||
toggle_object_state SILPHCO7F_CALCIUM, ON
|
||||
toggle_object_state SILPHCO7F_TM_SWORDS_DANCE, ON
|
||||
toggle_object_state SILPHCO7F_UNUSED, ON
|
||||
|
||||
toggleable_objects_for SILPH_CO_8F
|
||||
toggle_object_state SILPHCO8F_ROCKET1, ON
|
||||
toggle_object_state SILPHCO8F_SCIENTIST, ON
|
||||
toggle_object_state SILPHCO8F_ROCKET2, ON
|
||||
|
||||
toggleable_objects_for SILPH_CO_9F
|
||||
toggle_object_state SILPHCO9F_ROCKET1, ON
|
||||
toggle_object_state SILPHCO9F_SCIENTIST, ON
|
||||
toggle_object_state SILPHCO9F_ROCKET2, ON
|
||||
|
||||
toggleable_objects_for SILPH_CO_10F
|
||||
toggle_object_state SILPHCO10F_ROCKET, ON
|
||||
toggle_object_state SILPHCO10F_SCIENTIST, ON
|
||||
toggle_object_state SILPHCO10F_SILPH_WORKER_F, ON
|
||||
toggle_object_state SILPHCO10F_TM_EARTHQUAKE, ON
|
||||
toggle_object_state SILPHCO10F_RARE_CANDY, ON
|
||||
toggle_object_state SILPHCO10F_CARBOS, ON
|
||||
|
||||
toggleable_objects_for SILPH_CO_11F
|
||||
toggle_object_state SILPHCO11F_GIOVANNI, ON
|
||||
toggle_object_state SILPHCO11F_JAMES, ON
|
||||
toggle_object_state SILPHCO11F_ROCKET, ON
|
||||
toggle_object_state SILPHCO11F_JESSIE, ON
|
||||
|
||||
toggleable_objects_for UNUSED_MAP_F4
|
||||
toggle_object_state $02, ON ; unused
|
||||
|
||||
toggleable_objects_for POKEMON_MANSION_2F
|
||||
toggle_object_state POKEMONMANSION2F_CALCIUM, ON
|
||||
|
||||
toggleable_objects_for POKEMON_MANSION_3F
|
||||
toggle_object_state POKEMONMANSION3F_MAX_POTION, ON
|
||||
toggle_object_state POKEMONMANSION3F_IRON, ON
|
||||
|
||||
toggleable_objects_for POKEMON_MANSION_B1F
|
||||
toggle_object_state POKEMONMANSIONB1F_RARE_CANDY, ON
|
||||
toggle_object_state POKEMONMANSIONB1F_FULL_RESTORE, ON
|
||||
toggle_object_state POKEMONMANSIONB1F_TM_BLIZZARD, ON
|
||||
toggle_object_state POKEMONMANSIONB1F_TM_SOLARBEAM, ON
|
||||
toggle_object_state POKEMONMANSIONB1F_SECRET_KEY, ON
|
||||
|
||||
toggleable_objects_for SAFARI_ZONE_EAST
|
||||
toggle_object_state SAFARIZONEEAST_FULL_RESTORE, ON
|
||||
toggle_object_state SAFARIZONEEAST_MAX_RESTORE, ON
|
||||
toggle_object_state SAFARIZONEEAST_CARBOS, ON
|
||||
toggle_object_state SAFARIZONEEAST_TM_EGG_BOMB, ON
|
||||
|
||||
toggleable_objects_for SAFARI_ZONE_NORTH
|
||||
toggle_object_state SAFARIZONENORTH_PROTEIN, ON
|
||||
toggle_object_state SAFARIZONENORTH_TM_SKULL_BASH, ON
|
||||
|
||||
toggleable_objects_for SAFARI_ZONE_WEST
|
||||
toggle_object_state SAFARIZONEWEST_MAX_POTION, ON
|
||||
toggle_object_state SAFARIZONEWEST_TM_DOUBLE_TEAM, ON
|
||||
toggle_object_state SAFARIZONEWEST_MAX_REVIVE, ON
|
||||
toggle_object_state SAFARIZONEWEST_GOLD_TEETH, ON
|
||||
|
||||
toggleable_objects_for SAFARI_ZONE_CENTER
|
||||
toggle_object_state SAFARIZONECENTER_NUGGET, ON
|
||||
|
||||
toggleable_objects_for CERULEAN_CAVE_2F
|
||||
toggle_object_state CERULEANCAVE2F_RARE_CANDY, ON
|
||||
toggle_object_state CERULEANCAVE2F_ULTRA_BALL, ON
|
||||
toggle_object_state CERULEANCAVE2F_MAX_REVIVE, ON
|
||||
toggle_object_state CERULEANCAVE2F_FULL_RESTORE, ON
|
||||
|
||||
toggleable_objects_for CERULEAN_CAVE_B1F
|
||||
toggle_object_state CERULEANCAVEB1F_MEWTWO, ON
|
||||
toggle_object_state CERULEANCAVEB1F_ULTRA_BALL1, ON
|
||||
toggle_object_state CERULEANCAVEB1F_ULTRA_BALL2, ON
|
||||
toggle_object_state CERULEANCAVEB1F_MAX_REVIVE, ON
|
||||
toggle_object_state CERULEANCAVEB1F_MAX_ELIXER, ON
|
||||
|
||||
toggleable_objects_for VICTORY_ROAD_1F
|
||||
toggle_object_state VICTORYROAD1F_TM_SKY_ATTACK, ON
|
||||
toggle_object_state VICTORYROAD1F_RARE_CANDY, ON
|
||||
|
||||
toggleable_objects_for CHAMPIONS_ROOM
|
||||
toggle_object_state CHAMPIONSROOM_OAK, OFF
|
||||
|
||||
toggleable_objects_for SEAFOAM_ISLANDS_1F
|
||||
toggle_object_state SEAFOAMISLANDS1F_BOULDER1, ON
|
||||
toggle_object_state SEAFOAMISLANDS1F_BOULDER2, ON
|
||||
|
||||
toggleable_objects_for SEAFOAM_ISLANDS_B1F
|
||||
toggle_object_state SEAFOAMISLANDSB1F_BOULDER1, OFF
|
||||
toggle_object_state SEAFOAMISLANDSB1F_BOULDER2, OFF
|
||||
|
||||
toggleable_objects_for SEAFOAM_ISLANDS_B2F
|
||||
toggle_object_state SEAFOAMISLANDSB2F_BOULDER1, OFF
|
||||
toggle_object_state SEAFOAMISLANDSB2F_BOULDER2, OFF
|
||||
|
||||
toggleable_objects_for SEAFOAM_ISLANDS_B3F
|
||||
toggle_object_state SEAFOAMISLANDSB3F_BOULDER2, ON
|
||||
toggle_object_state SEAFOAMISLANDSB3F_BOULDER3, ON
|
||||
toggle_object_state SEAFOAMISLANDSB3F_BOULDER5, OFF
|
||||
toggle_object_state SEAFOAMISLANDSB3F_BOULDER6, OFF
|
||||
|
||||
toggleable_objects_for SEAFOAM_ISLANDS_B4F
|
||||
toggle_object_state SEAFOAMISLANDSB4F_BOULDER1, OFF
|
||||
toggle_object_state SEAFOAMISLANDSB4F_BOULDER2, OFF
|
||||
toggle_object_state SEAFOAMISLANDSB4F_ARTICUNO, ON
|
||||
|
||||
; unreferenced
|
||||
db BLUES_HOUSE, BLUESHOUSE_DAISY1, ON
|
||||
db BLUES_HOUSE, BLUESHOUSE_DAISY2, OFF
|
||||
db BLUES_HOUSE, BLUESHOUSE_TOWN_MAP, ON
|
||||
|
||||
assert_table_length NUM_TOGGLEABLE_OBJECTS
|
||||
|
||||
db -1, 1, ON ; end
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
MACRO external_map
|
||||
MACRO outdoor_map
|
||||
dn \2, \1
|
||||
dw \3
|
||||
ENDM
|
||||
|
|
@ -7,114 +7,116 @@ ENDM
|
|||
ExternalMapEntries:
|
||||
table_width 3
|
||||
; x, y, name
|
||||
external_map 2, 11, PalletTownName
|
||||
external_map 2, 8, ViridianCityName
|
||||
external_map 2, 3, PewterCityName
|
||||
external_map 10, 2, CeruleanCityName
|
||||
external_map 14, 5, LavenderTownName
|
||||
external_map 10, 9, VermilionCityName
|
||||
external_map 7, 5, CeladonCityName
|
||||
external_map 8, 13, FuchsiaCityName
|
||||
external_map 2, 15, CinnabarIslandName
|
||||
external_map 0, 2, IndigoPlateauName
|
||||
external_map 10, 5, SaffronCityName
|
||||
external_map 0, 0, PalletTownName ; unused
|
||||
external_map 2, 10, Route1Name
|
||||
external_map 2, 6, Route2Name
|
||||
external_map 4, 3, Route3Name
|
||||
external_map 8, 2, Route4Name
|
||||
external_map 10, 3, Route5Name
|
||||
external_map 10, 8, Route6Name
|
||||
external_map 8, 5, Route7Name
|
||||
external_map 13, 5, Route8Name
|
||||
external_map 13, 2, Route9Name
|
||||
external_map 14, 4, Route10Name
|
||||
external_map 12, 9, Route11Name
|
||||
external_map 14, 9, Route12Name
|
||||
external_map 13, 11, Route13Name
|
||||
external_map 11, 12, Route14Name
|
||||
external_map 10, 13, Route15Name
|
||||
external_map 5, 5, Route16Name
|
||||
external_map 4, 8, Route17Name
|
||||
external_map 6, 13, Route18Name
|
||||
external_map 6, 15, Route19Name
|
||||
external_map 4, 15, Route20Name
|
||||
external_map 2, 13, Route21Name
|
||||
external_map 0, 8, Route22Name
|
||||
external_map 0, 6, Route23Name
|
||||
external_map 10, 1, Route24Name
|
||||
external_map 11, 0, Route25Name
|
||||
outdoor_map 2, 11, PalletTownName
|
||||
outdoor_map 2, 8, ViridianCityName
|
||||
outdoor_map 2, 3, PewterCityName
|
||||
outdoor_map 10, 2, CeruleanCityName
|
||||
outdoor_map 14, 5, LavenderTownName
|
||||
outdoor_map 10, 9, VermilionCityName
|
||||
outdoor_map 7, 5, CeladonCityName
|
||||
outdoor_map 8, 13, FuchsiaCityName
|
||||
outdoor_map 2, 15, CinnabarIslandName
|
||||
outdoor_map 0, 2, IndigoPlateauName
|
||||
outdoor_map 10, 5, SaffronCityName
|
||||
outdoor_map 0, 0, PalletTownName ; unused
|
||||
outdoor_map 2, 10, Route1Name
|
||||
outdoor_map 2, 6, Route2Name
|
||||
outdoor_map 4, 3, Route3Name
|
||||
outdoor_map 8, 2, Route4Name
|
||||
outdoor_map 10, 3, Route5Name
|
||||
outdoor_map 10, 8, Route6Name
|
||||
outdoor_map 8, 5, Route7Name
|
||||
outdoor_map 13, 5, Route8Name
|
||||
outdoor_map 13, 2, Route9Name
|
||||
outdoor_map 14, 4, Route10Name
|
||||
outdoor_map 12, 9, Route11Name
|
||||
outdoor_map 14, 9, Route12Name
|
||||
outdoor_map 13, 11, Route13Name
|
||||
outdoor_map 11, 12, Route14Name
|
||||
outdoor_map 10, 13, Route15Name
|
||||
outdoor_map 5, 5, Route16Name
|
||||
outdoor_map 4, 8, Route17Name
|
||||
outdoor_map 6, 13, Route18Name
|
||||
outdoor_map 6, 15, Route19Name
|
||||
outdoor_map 4, 15, Route20Name
|
||||
outdoor_map 2, 13, Route21Name
|
||||
outdoor_map 0, 8, Route22Name
|
||||
outdoor_map 0, 6, Route23Name
|
||||
outdoor_map 10, 1, Route24Name
|
||||
outdoor_map 11, 0, Route25Name
|
||||
assert_table_length FIRST_INDOOR_MAP
|
||||
|
||||
|
||||
MACRO internal_map
|
||||
db \1 + 1
|
||||
MACRO indoor_map
|
||||
db INDOORGROUP_\1
|
||||
dn \3, \2
|
||||
dw \4
|
||||
ENDM
|
||||
|
||||
; the appearance of buildings and dungeons in the town map
|
||||
InternalMapEntries:
|
||||
; maximum map id subject to this rule, x, y, name
|
||||
internal_map OAKS_LAB, 2, 11, PalletTownName
|
||||
internal_map VIRIDIAN_GYM, 2, 8, ViridianCityName
|
||||
internal_map VIRIDIAN_FOREST_SOUTH_GATE, 2, 6, Route2Name
|
||||
internal_map VIRIDIAN_FOREST, 2, 4, ViridianForestName
|
||||
internal_map PEWTER_POKECENTER, 2, 3, PewterCityName
|
||||
internal_map MT_MOON_B2F, 6, 2, MountMoonName
|
||||
internal_map CERULEAN_MART, 10, 2, CeruleanCityName
|
||||
internal_map MT_MOON_POKECENTER, 5, 2, Route4Name
|
||||
internal_map CERULEAN_TRASHED_HOUSE_COPY, 10, 2, CeruleanCityName
|
||||
internal_map DAYCARE, 10, 4, Route5Name
|
||||
internal_map UNDERGROUND_PATH_ROUTE_6_COPY, 10, 6, Route6Name
|
||||
internal_map UNDERGROUND_PATH_ROUTE_7_COPY, 9, 5, Route7Name
|
||||
internal_map UNDERGROUND_PATH_ROUTE_8, 11, 5, Route8Name
|
||||
internal_map ROCK_TUNNEL_1F, 14, 3, RockTunnelName
|
||||
internal_map POWER_PLANT, 15, 4, PowerPlantName
|
||||
internal_map ROUTE_11_GATE_2F, 13, 9, Route11Name
|
||||
internal_map ROUTE_12_GATE_1F, 14, 7, Route12Name
|
||||
internal_map BILLS_HOUSE, 12, 0, SeaCottageName
|
||||
internal_map VERMILION_DOCK, 10, 9, VermilionCityName
|
||||
internal_map SS_ANNE_B1F_ROOMS, 9, 10, SSAnneName
|
||||
internal_map VICTORY_ROAD_1F, 0, 4, VictoryRoadName
|
||||
internal_map HALL_OF_FAME, 0, 2, PokemonLeagueName
|
||||
internal_map UNDERGROUND_PATH_NORTH_SOUTH, 10, 5, UndergroundPathName
|
||||
internal_map CHAMPIONS_ROOM, 0, 2, PokemonLeagueName
|
||||
internal_map UNDERGROUND_PATH_WEST_EAST, 10, 5, UndergroundPathName
|
||||
internal_map CELADON_HOTEL, 7, 5, CeladonCityName
|
||||
internal_map LAVENDER_POKECENTER, 14, 5, LavenderTownName
|
||||
internal_map POKEMON_TOWER_7F, 15, 5, PokemonTowerName
|
||||
internal_map LAVENDER_CUBONE_HOUSE, 14, 5, LavenderTownName
|
||||
internal_map WARDENS_HOUSE, 8, 13, FuchsiaCityName
|
||||
internal_map SAFARI_ZONE_GATE, 8, 12, SafariZoneName
|
||||
internal_map FUCHSIA_MEETING_ROOM, 8, 13, FuchsiaCityName
|
||||
internal_map SEAFOAM_ISLANDS_B4F, 5, 15, SeafoamIslandsName
|
||||
internal_map VERMILION_OLD_ROD_HOUSE, 10, 9, VermilionCityName
|
||||
internal_map FUCHSIA_GOOD_ROD_HOUSE, 8, 13, FuchsiaCityName
|
||||
internal_map POKEMON_MANSION_1F, 2, 15, PokemonMansionName
|
||||
internal_map CINNABAR_MART_COPY, 2, 15, CinnabarIslandName
|
||||
internal_map INDIGO_PLATEAU_LOBBY, 0, 2, IndigoPlateauName
|
||||
internal_map MR_PSYCHICS_HOUSE, 10, 5, SaffronCityName
|
||||
internal_map ROUTE_15_GATE_2F, 9, 13, Route15Name
|
||||
internal_map ROUTE_16_FLY_HOUSE, 4, 5, Route16Name
|
||||
internal_map ROUTE_12_SUPER_ROD_HOUSE, 14, 10, Route12Name
|
||||
internal_map ROUTE_18_GATE_2F, 7, 13, Route18Name
|
||||
internal_map SEAFOAM_ISLANDS_1F, 5, 15, SeafoamIslandsName
|
||||
internal_map ROUTE_22_GATE, 0, 7, Route22Name
|
||||
internal_map VICTORY_ROAD_2F, 0, 4, VictoryRoadName
|
||||
internal_map ROUTE_12_GATE_2F, 14, 7, Route12Name
|
||||
internal_map VERMILION_TRADE_HOUSE, 10, 9, VermilionCityName
|
||||
internal_map DIGLETTS_CAVE, 3, 4, DiglettsCaveName
|
||||
internal_map VICTORY_ROAD_3F, 0, 4, VictoryRoadName
|
||||
internal_map UNUSED_MAP_CE, 7, 5, RocketHQName
|
||||
internal_map SILPH_CO_8F, 10, 5, SilphCoName
|
||||
internal_map POKEMON_MANSION_B1F, 2, 15, PokemonMansionName
|
||||
internal_map SAFARI_ZONE_NORTH_REST_HOUSE, 8, 12, SafariZoneName
|
||||
internal_map CERULEAN_CAVE_1F, 9, 1, CeruleanCaveName
|
||||
internal_map NAME_RATERS_HOUSE, 14, 5, LavenderTownName
|
||||
internal_map CERULEAN_BADGE_HOUSE, 10, 2, CeruleanCityName
|
||||
internal_map ROCK_TUNNEL_B1F, 14, 3, RockTunnelName
|
||||
internal_map SILPH_CO_ELEVATOR, 10, 5, SilphCoName
|
||||
internal_map AGATHAS_ROOM, 0, 2, PokemonLeagueName
|
||||
internal_map SUMMER_BEACH_HOUSE, 6, 15, Route19Name
|
||||
table_width 4
|
||||
; indoor map group, x, y, name
|
||||
indoor_map PALLET_TOWN, 2, 11, PalletTownName
|
||||
indoor_map VIRIDIAN_CITY, 2, 8, ViridianCityName
|
||||
indoor_map ROUTE_2, 2, 6, Route2Name
|
||||
indoor_map VIRIDIAN_FOREST, 2, 4, ViridianForestName
|
||||
indoor_map PEWTER_CITY, 2, 3, PewterCityName
|
||||
indoor_map MT_MOON, 6, 2, MountMoonName
|
||||
indoor_map CERULEAN_CITY, 10, 2, CeruleanCityName
|
||||
indoor_map ROUTE_4, 5, 2, Route4Name
|
||||
indoor_map CERULEAN_CITY_2, 10, 2, CeruleanCityName
|
||||
indoor_map ROUTE_5, 10, 4, Route5Name
|
||||
indoor_map ROUTE_6, 10, 6, Route6Name
|
||||
indoor_map ROUTE_7, 9, 5, Route7Name
|
||||
indoor_map ROUTE_8, 11, 5, Route8Name
|
||||
indoor_map ROCK_TUNNEL, 14, 3, RockTunnelName
|
||||
indoor_map POWER_PLANT, 15, 4, PowerPlantName
|
||||
indoor_map ROUTE_11, 13, 9, Route11Name
|
||||
indoor_map ROUTE_12, 14, 7, Route12Name
|
||||
indoor_map SEA_COTTAGE, 12, 0, SeaCottageName
|
||||
indoor_map VERMILION_CITY, 10, 9, VermilionCityName
|
||||
indoor_map SS_ANNE, 9, 10, SSAnneName
|
||||
indoor_map VICTORY_ROAD, 0, 4, VictoryRoadName
|
||||
indoor_map POKEMON_LEAGUE, 0, 2, PokemonLeagueName
|
||||
indoor_map UNDERGROUND_PATH, 10, 5, UndergroundPathName
|
||||
indoor_map POKEMON_LEAGUE_2, 0, 2, PokemonLeagueName
|
||||
indoor_map UNDERGROUND_PATH_2, 10, 5, UndergroundPathName
|
||||
indoor_map CELADON_CITY, 7, 5, CeladonCityName
|
||||
indoor_map LAVENDER_TOWN, 14, 5, LavenderTownName
|
||||
indoor_map POKEMON_TOWER, 15, 5, PokemonTowerName
|
||||
indoor_map LAVENDER_TOWN_2, 14, 5, LavenderTownName
|
||||
indoor_map FUCHSIA_CITY, 8, 13, FuchsiaCityName
|
||||
indoor_map SAFARI_ZONE, 8, 12, SafariZoneName
|
||||
indoor_map FUCHSIA_CITY_2, 8, 13, FuchsiaCityName
|
||||
indoor_map SEAFOAM_ISLANDS, 5, 15, SeafoamIslandsName
|
||||
indoor_map VERMILION_CITY_2, 10, 9, VermilionCityName
|
||||
indoor_map FUCHSIA_CITY_3, 8, 13, FuchsiaCityName
|
||||
indoor_map POKEMON_MANSION, 2, 15, PokemonMansionName
|
||||
indoor_map CINNABAR_ISLAND, 2, 15, CinnabarIslandName
|
||||
indoor_map INDIGO_PLATEAU, 0, 2, IndigoPlateauName
|
||||
indoor_map SAFFRON_CITY, 10, 5, SaffronCityName
|
||||
indoor_map ROUTE_15, 9, 13, Route15Name
|
||||
indoor_map ROUTE_16, 4, 5, Route16Name
|
||||
indoor_map ROUTE_12_2, 14, 10, Route12Name
|
||||
indoor_map ROUTE_18, 7, 13, Route18Name
|
||||
indoor_map SEAFOAM_ISLANDS_2, 5, 15, SeafoamIslandsName
|
||||
indoor_map ROUTE_22, 0, 7, Route22Name
|
||||
indoor_map VICTORY_ROAD_2, 0, 4, VictoryRoadName
|
||||
indoor_map ROUTE_12_3, 14, 7, Route12Name
|
||||
indoor_map VERMILION_CITY_3, 10, 9, VermilionCityName
|
||||
indoor_map DIGLETTS_CAVE, 3, 4, DiglettsCaveName
|
||||
indoor_map VICTORY_ROAD_3, 0, 4, VictoryRoadName
|
||||
indoor_map ROCKET_HQ, 7, 5, RocketHQName
|
||||
indoor_map SILPH_CO, 10, 5, SilphCoName
|
||||
indoor_map POKEMON_MANSION_2, 2, 15, PokemonMansionName
|
||||
indoor_map SAFARI_ZONE_2, 8, 12, SafariZoneName
|
||||
indoor_map CERULEAN_CAVE, 9, 1, CeruleanCaveName
|
||||
indoor_map LAVENDER_TOWN_3, 14, 5, LavenderTownName
|
||||
indoor_map CERULEAN_CITY_3, 10, 2, CeruleanCityName
|
||||
indoor_map ROCK_TUNNEL_2, 14, 3, RockTunnelName
|
||||
indoor_map SILPH_CO_2, 10, 5, SilphCoName
|
||||
indoor_map POKEMON_LEAGUE_3, 0, 2, PokemonLeagueName
|
||||
indoor_map ROUTE_19, 6, 15, Route19Name
|
||||
assert_table_length NUM_INDOOR_MAP_GROUPS
|
||||
db -1 ; end
|
||||
|
|
|
|||
|
|
@ -1,16 +1,20 @@
|
|||
ExclamationPointMoveSets:
|
||||
; set 0
|
||||
; Used by GetMoveGrammar (see engine/battle/core.asm)
|
||||
; Each move is given an identifier for what usedmovetext to use (0-4).
|
||||
; Made redundant in English localization, where all are just "[mon]<LINE>used [move]!"
|
||||
|
||||
MoveGrammar:
|
||||
; 0: originally "[mon]は<LINE>[move]を つかった!" ("[mon]<LINE>used [move]!")
|
||||
db SWORDS_DANCE
|
||||
db GROWTH
|
||||
db 0 ; end set
|
||||
|
||||
; set 1
|
||||
; 1: originally "[mon]は<LINE>[move]を した!" ("[mon]<LINE>did [move]!")
|
||||
db RECOVER
|
||||
db SELFDESTRUCT
|
||||
db AMNESIA
|
||||
db 0 ; end set
|
||||
|
||||
; set 2
|
||||
; 2: originally "[mon]は<LINE>[move]した!" ("[mon]<LINE>did [move]!")
|
||||
db MEDITATE
|
||||
db AGILITY
|
||||
db TELEPORT
|
||||
|
|
@ -20,7 +24,7 @@ ExclamationPointMoveSets:
|
|||
db BARRAGE
|
||||
db 0 ; end set
|
||||
|
||||
; set 3
|
||||
; 3: originally "[mon]の<LINE>[move] こうげき!" ("[mon]'s<LINE>[move] attack!")
|
||||
db POUND
|
||||
db SCRATCH
|
||||
db VICEGRIP
|
||||
|
|
@ -69,4 +73,6 @@ ExclamationPointMoveSets:
|
|||
db SUBSTITUTE
|
||||
db 0 ; end set
|
||||
|
||||
; 4: originally "[mon]の<LINE>[move]!" ("[mon]'s<LINE>[move]!")
|
||||
; Any move not listed above uses this grammar.
|
||||
db -1 ; end
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
MoveNames::
|
||||
list_start
|
||||
; in-battle "used <move name>!" text can only fit 12 (MOVE_NAME_LENGTH - 2) characters
|
||||
list_start MOVE_NAME_LENGTH - 2
|
||||
li "POUND"
|
||||
li "KARATE CHOP"
|
||||
li "DOUBLESLAP"
|
||||
|
|
|
|||
15
data/player/names.asm
Normal file
15
data/player/names.asm
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
; see constants/player_constants.asm
|
||||
|
||||
DefaultNamesPlayer:
|
||||
db "NEW NAME"
|
||||
FOR n, 1, NUM_PLAYER_NAMES + 1
|
||||
next #PLAYERNAME{d:n}
|
||||
ENDR
|
||||
db "@"
|
||||
|
||||
DefaultNamesRival:
|
||||
db "NEW NAME"
|
||||
FOR n, 1, NUM_PLAYER_NAMES + 1
|
||||
next #RIVALNAME{d:n}
|
||||
ENDR
|
||||
db "@"
|
||||
17
data/player/names_list.asm
Normal file
17
data/player/names_list.asm
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
; see constants/player_constants.asm
|
||||
|
||||
DefaultNamesPlayerList:
|
||||
db "NEW NAME@"
|
||||
list_start PLAYER_NAME_LENGTH - 1
|
||||
FOR n, 1, NUM_PLAYER_NAMES + 1
|
||||
li #PLAYERNAME{d:n}
|
||||
ENDR
|
||||
assert_list_length NUM_PLAYER_NAMES
|
||||
|
||||
DefaultNamesRivalList:
|
||||
db "NEW NAME@"
|
||||
list_start PLAYER_NAME_LENGTH - 1
|
||||
FOR n, 1, NUM_PLAYER_NAMES + 1
|
||||
li #RIVALNAME{d:n}
|
||||
ENDR
|
||||
assert_list_length NUM_PLAYER_NAMES
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
DefaultNamesPlayer:
|
||||
db "NEW NAME"
|
||||
next "YELLOW"
|
||||
next "ASH"
|
||||
next "JACK"
|
||||
db "@"
|
||||
|
||||
DefaultNamesRival:
|
||||
db "NEW NAME"
|
||||
next "BLUE"
|
||||
next "GARY"
|
||||
next "JOHN"
|
||||
db "@"
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
DefaultNamesPlayerList:
|
||||
db "NEW NAME@"
|
||||
db "YELLOW@"
|
||||
db "ASH@"
|
||||
db "JACK@"
|
||||
|
||||
DefaultNamesRivalList:
|
||||
db "NEW NAME@"
|
||||
db "BLUE@"
|
||||
db "GARY@"
|
||||
db "JOHN@"
|
||||
|
|
@ -32,14 +32,14 @@ PredefPointers::
|
|||
add_predef ApplyOutOfBattlePoisonDamage
|
||||
add_predef AnyPartyAlive
|
||||
add_predef ShowObject
|
||||
add_predef ShowObject2
|
||||
add_predef ShowObject2 ; identical to ShowObject
|
||||
add_predef ReplaceTileBlock
|
||||
add_predef InitPlayerData2
|
||||
add_predef LoadTilesetHeader
|
||||
add_predef LearnMoveFromLevelUp
|
||||
add_predef LearnMove
|
||||
add_predef GetQuantityOfItemInBag
|
||||
add_predef CheckForHiddenObjectOrBookshelfOrCardKeyDoor, $03 ; home bank
|
||||
add_predef CheckForHiddenEventOrBookshelfOrCardKeyDoor, $03 ; home bank
|
||||
add_predef GiveItem, $03 ; home bank
|
||||
add_predef ChangeBGPalColor0_4Frames
|
||||
add_predef FindPathToPlayer
|
||||
|
|
@ -75,7 +75,7 @@ PredefPointers::
|
|||
add_predef WriteMonMoves
|
||||
add_predef SaveMenu
|
||||
add_predef LoadSGB
|
||||
add_predef MarkTownVisitedAndLoadMissableObjects
|
||||
add_predef MarkTownVisitedAndLoadToggleableObjects
|
||||
add_predef SetPartyMonTypes
|
||||
add_predef CanLearnTM
|
||||
add_predef TMToMove
|
||||
|
|
|
|||
|
|
@ -1124,21 +1124,21 @@ _MoveIsDisabledText::
|
|||
cont "disabled!"
|
||||
prompt
|
||||
|
||||
_MonName1Text::
|
||||
_ActorNameText::
|
||||
text "<USER>@"
|
||||
text_end
|
||||
|
||||
_Used1Text::
|
||||
_UsedMove1Text::
|
||||
text_start
|
||||
line "used @"
|
||||
text_end
|
||||
|
||||
_Used2Text::
|
||||
_UsedMove2Text::
|
||||
text_start
|
||||
line "used @"
|
||||
text_end
|
||||
|
||||
_InsteadText::
|
||||
_UsedInsteadText::
|
||||
text "instead,"
|
||||
cont "@"
|
||||
text_end
|
||||
|
|
@ -1147,23 +1147,23 @@ _MoveNameText::
|
|||
text_ram wStringBuffer
|
||||
text "@"
|
||||
|
||||
_ExclamationPoint1Text::
|
||||
_EndUsedMove1Text::
|
||||
text "!"
|
||||
done
|
||||
|
||||
_ExclamationPoint2Text::
|
||||
_EndUsedMove2Text::
|
||||
text "!"
|
||||
done
|
||||
|
||||
_ExclamationPoint3Text::
|
||||
_EndUsedMove3Text::
|
||||
text "!"
|
||||
done
|
||||
|
||||
_ExclamationPoint4Text::
|
||||
_EndUsedMove4Text::
|
||||
text "!"
|
||||
done
|
||||
|
||||
_ExclamationPoint5Text::
|
||||
_EndUsedMove5Text::
|
||||
text "!"
|
||||
done
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,15 @@
|
|||
DEF __move_choices__ = 0
|
||||
|
||||
MACRO move_choices
|
||||
IF _NARG
|
||||
db \# ; all args
|
||||
ENDC
|
||||
db 0 ; end
|
||||
DEF list_index += 1
|
||||
DEF __move_choices__ += 1
|
||||
ENDM
|
||||
|
||||
; move choice modification methods that are applied for each trainer class
|
||||
TrainerClassMoveChoiceModifications:
|
||||
list_start
|
||||
move_choices ; YOUNGSTER
|
||||
move_choices 1 ; BUG CATCHER
|
||||
move_choices 1 ; LASS
|
||||
|
|
@ -56,4 +57,5 @@ TrainerClassMoveChoiceModifications:
|
|||
move_choices 1 ; CHANNELER
|
||||
move_choices 1 ; AGATHA
|
||||
move_choices 1, 3 ; LANCE
|
||||
assert_list_length NUM_TRAINERS
|
||||
assert __move_choices__ == NUM_TRAINERS, \
|
||||
"TrainerClassMoveChoiceModifications: expected {d:NUM_TRAINERS} entries, got {d:__move_choices__}"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
TrainerNames::
|
||||
list_start
|
||||
list_start TRAINER_NAME_LENGTH - 1
|
||||
li "YOUNGSTER"
|
||||
li "BUG CATCHER"
|
||||
li "LASS"
|
||||
|
|
|
|||
|
|
@ -1,15 +1,28 @@
|
|||
DEF wild_chance_slot = 0
|
||||
DEF wild_chance_total = 0
|
||||
|
||||
MACRO wild_chance
|
||||
DEF wild_chance_total += \1
|
||||
db wild_chance_total - 1
|
||||
db wild_chance_slot * 2
|
||||
DEF wild_chance_slot += 1
|
||||
ENDM
|
||||
|
||||
WildMonEncounterSlotChances:
|
||||
; There are 10 slots for wild pokemon, and this is the table that defines how common each of
|
||||
; those 10 slots is. A random number is generated and then the first byte of each pair in this
|
||||
; table is compared against that random number. If the random number is less than or equal
|
||||
; to the first byte, then that slot is chosen. The second byte is double the slot number.
|
||||
db 50, $00 ; 51/256 = 19.9% chance of slot 0
|
||||
db 101, $02 ; 51/256 = 19.9% chance of slot 1
|
||||
db 140, $04 ; 39/256 = 15.2% chance of slot 2
|
||||
db 165, $06 ; 25/256 = 9.8% chance of slot 3
|
||||
db 190, $08 ; 25/256 = 9.8% chance of slot 4
|
||||
db 215, $0A ; 25/256 = 9.8% chance of slot 5
|
||||
db 228, $0C ; 13/256 = 5.1% chance of slot 6
|
||||
db 241, $0E ; 13/256 = 5.1% chance of slot 7
|
||||
db 252, $10 ; 11/256 = 4.3% chance of slot 8
|
||||
db 255, $12 ; 3/256 = 1.2% chance of slot 9
|
||||
; There are 10 slots for wild pokemon, and this is the list that defines how common each of
|
||||
; those 10 slots is. A random number is generated and then the cumulative chance value up to the current
|
||||
; slot (included) is compared against that random number. If the random number is less than or equal
|
||||
; to said cumulative value, then that slot is chosen.
|
||||
table_width 2
|
||||
wild_chance 51 ; 51/256 = 19.9% chance of slot 0
|
||||
wild_chance 51 ; 51/256 = 19.9% chance of slot 1
|
||||
wild_chance 39 ; 39/256 = 15.2% chance of slot 2
|
||||
wild_chance 25 ; 25/256 = 9.8% chance of slot 3
|
||||
wild_chance 25 ; 25/256 = 9.8% chance of slot 4
|
||||
wild_chance 25 ; 25/256 = 9.8% chance of slot 5
|
||||
wild_chance 13 ; 13/256 = 5.1% chance of slot 6
|
||||
wild_chance 13 ; 13/256 = 5.1% chance of slot 7
|
||||
wild_chance 11 ; 11/256 = 4.3% chance of slot 8
|
||||
wild_chance 3 ; 3/256 = 1.2% chance of slot 9
|
||||
assert_table_length NUM_WILDMONS
|
||||
ASSERT wild_chance_total == 256, "WildMonEncounterSlotChances sum to {d:wild_chance_total}, not 256!"
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ DrawFrameBlock:
|
|||
jp z, .flipHorizontalTranslateDown ; SUBANIMTYPE_HFLIP
|
||||
dec a
|
||||
jr z, .flipBaseCoords ; SUBANIMTYPE_COORDFLIP
|
||||
.noTransformation
|
||||
; no transformation
|
||||
ld a, [wBaseCoordY]
|
||||
add [hl]
|
||||
ld [de], a ; store Y
|
||||
|
|
@ -157,7 +157,7 @@ DrawFrameBlock:
|
|||
ld a, [wNumFBTiles]
|
||||
cp c
|
||||
jp nz, .loop ; go back up if there are more tiles to draw
|
||||
.afterDrawingTiles
|
||||
; after drawing tiles
|
||||
ld a, [wFBMode]
|
||||
cp FRAMEBLOCKMODE_02
|
||||
jr z, .advanceFrameBlockDestAddr ; skip delay and don't clean OAM buffer
|
||||
|
|
@ -210,7 +210,7 @@ PlayAnimation:
|
|||
jr z, .AnimationOver
|
||||
cp FIRST_SE_ID ; is this subanimation or a special effect?
|
||||
jr c, .playSubanimation
|
||||
.doSpecialEffect
|
||||
; do Special Effect
|
||||
ld c, a
|
||||
ld de, SpecialEffectPointers
|
||||
.searchSpecialEffectTableLoop
|
||||
|
|
@ -315,11 +315,11 @@ LoadSubanimation:
|
|||
and %11100000
|
||||
cp SUBANIMTYPE_ENEMY << 5
|
||||
vc_hook Reduce_move_anim_flashing_Reflect
|
||||
jr nz, .isNotType5
|
||||
.isType5
|
||||
jr nz, .isNotTypeEnemy
|
||||
; subanim type enemy
|
||||
call GetSubanimationTransform2
|
||||
jr .saveTransformation
|
||||
.isNotType5
|
||||
.isNotTypeEnemy
|
||||
vc_hook Reduce_move_anim_flashing_Self_Destruct
|
||||
call GetSubanimationTransform1
|
||||
.saveTransformation
|
||||
|
|
@ -440,11 +440,11 @@ MoveAnimation:
|
|||
jr nz, .animationsDisabled
|
||||
call ShareMoveAnimations
|
||||
call PlayAnimation
|
||||
jr .next4
|
||||
jr .next
|
||||
.animationsDisabled
|
||||
ld c, 30
|
||||
call DelayFrames
|
||||
.next4
|
||||
.next
|
||||
vc_hook Stop_reducing_move_anim_flashing_Reflect
|
||||
call PlayApplyingAttackAnimation ; shake the screen or flash the pic in and out (to show damage)
|
||||
.animationFinished
|
||||
|
|
@ -968,7 +968,7 @@ BallMoveDistances2:
|
|||
DoGrowlSpecialEffects:
|
||||
ld hl, wShadowOAM
|
||||
ld de, wShadowOAMSprite04
|
||||
ld bc, $10
|
||||
ld bc, OBJ_SIZE * 4
|
||||
call CopyData ; copy the musical note graphic
|
||||
ld a, [wSubAnimCounter]
|
||||
dec a
|
||||
|
|
@ -1141,6 +1141,8 @@ SetAnimationBGPalette:
|
|||
call UpdateCGBPal_BGP
|
||||
ret
|
||||
|
||||
AnimationUnusedShakeScreen: ; unreferenced
|
||||
; Shakes the screen for a while.
|
||||
ld b, $5
|
||||
|
||||
AnimationShakeScreenVertically:
|
||||
|
|
@ -1272,12 +1274,12 @@ _AnimationSlideMonUp:
|
|||
push bc
|
||||
|
||||
; In each iteration, slide up all rows but the top one (which is overwritten).
|
||||
ld b, 6
|
||||
ld b, PIC_HEIGHT - 1
|
||||
.slideLoop
|
||||
push bc
|
||||
push de
|
||||
push hl
|
||||
ld bc, 7
|
||||
ld bc, PIC_WIDTH
|
||||
call CopyData
|
||||
; Note that de and hl are popped in the same order they are pushed, swapping
|
||||
; their values. When CopyData is called, hl points to a tile 1 row below
|
||||
|
|
@ -1301,10 +1303,10 @@ _AnimationSlideMonUp:
|
|||
ld a, [wSlideMonUpBottomRowLeftTile]
|
||||
inc a
|
||||
ld [wSlideMonUpBottomRowLeftTile], a
|
||||
ld c, 7
|
||||
ld c, PIC_WIDTH
|
||||
.fillBottomRowLoop
|
||||
ld [hli], a
|
||||
add 7
|
||||
add PIC_WIDTH
|
||||
dec c
|
||||
jr nz, .fillBottomRowLoop
|
||||
|
||||
|
|
@ -1381,7 +1383,7 @@ AdjustOAMBlockXPos:
|
|||
ld h, d
|
||||
|
||||
AdjustOAMBlockXPos2:
|
||||
ld de, 4
|
||||
ld de, OBJ_SIZE
|
||||
.loop
|
||||
ld a, [wCoordAdjustmentAmount]
|
||||
ld b, a
|
||||
|
|
@ -1391,7 +1393,7 @@ AdjustOAMBlockXPos2:
|
|||
jr c, .skipPuttingEntryOffScreen
|
||||
; put off-screen if X >= 168
|
||||
dec hl
|
||||
ld a, 160
|
||||
ld a, SCREEN_HEIGHT_PX + OAM_Y_OFS
|
||||
ld [hli], a
|
||||
.skipPuttingEntryOffScreen
|
||||
ld [hl], a
|
||||
|
|
@ -1405,7 +1407,7 @@ AdjustOAMBlockYPos:
|
|||
ld h, d
|
||||
|
||||
AdjustOAMBlockYPos2:
|
||||
ld de, 4
|
||||
ld de, OBJ_SIZE
|
||||
.loop
|
||||
ld a, [wCoordAdjustmentAmount]
|
||||
ld b, a
|
||||
|
|
@ -1756,7 +1758,7 @@ _AnimationShootBallsUpward:
|
|||
dec a
|
||||
ld [wNumShootingBalls], a
|
||||
.next
|
||||
ld de, 4
|
||||
ld de, OBJ_SIZE
|
||||
add hl, de ; next OAM entry
|
||||
dec b
|
||||
jr nz, .innerLoop
|
||||
|
|
@ -1809,10 +1811,10 @@ AnimationMinimizeMon:
|
|||
ld hl, wTempPic
|
||||
push hl
|
||||
xor a
|
||||
ld bc, 7 * 7 * $10
|
||||
ld bc, PIC_SIZE tiles
|
||||
call FillMemory
|
||||
pop hl
|
||||
ld de, 7 * 3 * $10 + 4 * $10 + 4
|
||||
ld de, (PIC_WIDTH * 3 + 4) tiles + TILE_SIZE / 4
|
||||
add hl, de
|
||||
ld de, MinimizedMonSprite
|
||||
ld c, MinimizedMonSpriteEnd - MinimizedMonSprite
|
||||
|
|
@ -1860,7 +1862,7 @@ AnimationSlideMonDownAndHide:
|
|||
jr nz, .loop
|
||||
call AnimationHideMonPic
|
||||
ld hl, wTempPic
|
||||
ld bc, 7 * 7 tiles
|
||||
ld bc, PIC_SIZE tiles
|
||||
xor a
|
||||
call FillMemory
|
||||
jp CopyTempPicToMonPic
|
||||
|
|
@ -1951,7 +1953,7 @@ CopyTempPicToMonPic:
|
|||
ld hl, vFrontPic ; enemy turn
|
||||
.next
|
||||
ld de, wTempPic
|
||||
ld bc, 7 * 7
|
||||
ld bc, PIC_SIZE
|
||||
jp CopyVideoData
|
||||
|
||||
AnimationWavyScreen:
|
||||
|
|
@ -2019,7 +2021,7 @@ AnimationSubstitute:
|
|||
; Changes the pokemon's sprite to the mini sprite
|
||||
ld hl, wTempPic
|
||||
xor a
|
||||
ld bc, 7 * 7 tiles
|
||||
ld bc, PIC_SIZE tiles
|
||||
call FillMemory
|
||||
ldh a, [hWhoseTurn]
|
||||
and a
|
||||
|
|
@ -2055,7 +2057,7 @@ AnimationSubstitute:
|
|||
jp AnimationShowMonPic
|
||||
|
||||
CopyMonsterSpriteData:
|
||||
ld bc, 1 tiles
|
||||
ld bc, TILE_SIZE
|
||||
ld a, BANK(MonsterSprite)
|
||||
jp FarCopyData
|
||||
|
||||
|
|
@ -2538,7 +2540,7 @@ FallingObjects_UpdateOAMEntry:
|
|||
inc a
|
||||
cp 112
|
||||
jr c, .next
|
||||
ld a, 160 ; if Y >= 112, put it off-screen
|
||||
ld a, SCREEN_HEIGHT_PX + OAM_Y_OFS ; if Y >= 112, put it off-screen
|
||||
.next
|
||||
ld [hli], a ; Y
|
||||
cp 40
|
||||
|
|
@ -2655,7 +2657,7 @@ AnimationShakeEnemyHUD:
|
|||
; Make a copy of the back pic's tile patterns in sprite tile pattern VRAM.
|
||||
ld de, vBackPic
|
||||
ld hl, vSprites
|
||||
ld bc, 7 * 7
|
||||
ld bc, PIC_SIZE
|
||||
call CopyVideoData
|
||||
|
||||
xor a
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ BattleTransition:
|
|||
ldh a, [hSpriteIndex] ; enemy trainer sprite index (0 if wild battle)
|
||||
ld c, a
|
||||
ld b, 0
|
||||
ld de, $10
|
||||
ld de, SPRITESTATEDATA1_LENGTH
|
||||
.loop1
|
||||
ld a, [hl]
|
||||
cp $ff
|
||||
|
|
@ -35,13 +35,13 @@ BattleTransition:
|
|||
jr z, .skip2 ; skip clearing the block if the enemy trainer is using it
|
||||
push hl
|
||||
push bc
|
||||
ld bc, $10
|
||||
ld bc, OBJ_SIZE * 4
|
||||
xor a
|
||||
call FillMemory
|
||||
pop bc
|
||||
pop hl
|
||||
.skip2
|
||||
ld de, $10
|
||||
ld de, OBJ_SIZE * 4
|
||||
add hl, de
|
||||
dec c
|
||||
jr nz, .loop2
|
||||
|
|
@ -104,11 +104,11 @@ GetBattleTransitionID_CompareLevels:
|
|||
ld a, [hli]
|
||||
or [hl]
|
||||
jr nz, .notFainted
|
||||
ld de, wPartyMon2 - (wPartyMon1 + 1)
|
||||
ld de, PARTYMON_STRUCT_LENGTH - 1
|
||||
add hl, de
|
||||
jr .faintedLoop
|
||||
.notFainted
|
||||
ld de, wPartyMon1Level - (wPartyMon1HP + 1)
|
||||
ld de, MON_LEVEL - (MON_HP + 1)
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
add $3
|
||||
|
|
|
|||
|
|
@ -109,8 +109,8 @@ SlidePlayerAndEnemySilhouettesOnScreen:
|
|||
SlidePlayerHeadLeft:
|
||||
push bc
|
||||
ld hl, wShadowOAMSprite00XCoord
|
||||
ld c, $15 ; number of OAM entries
|
||||
ld de, $4 ; size of OAM entry
|
||||
ld c, 7 * 3 ; number of OAM entries
|
||||
ld de, OBJ_SIZE
|
||||
.loop
|
||||
dec [hl] ; decrement X
|
||||
dec [hl] ; decrement X
|
||||
|
|
@ -140,7 +140,7 @@ StartBattle:
|
|||
inc a
|
||||
ld [wFirstMonsNotOutYet], a
|
||||
ld hl, wEnemyMon1HP
|
||||
ld bc, wEnemyMon2 - wEnemyMon1 - 1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH - 1
|
||||
ld d, $3
|
||||
.findFirstAliveEnemyMonLoop
|
||||
inc d
|
||||
|
|
@ -745,7 +745,7 @@ FaintEnemyPokemon:
|
|||
jr z, .wild
|
||||
ld a, [wEnemyMonPartyPos]
|
||||
ld hl, wEnemyMon1HP
|
||||
ld bc, wEnemyMon2 - wEnemyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
xor a
|
||||
ld [hli], a
|
||||
|
|
@ -885,7 +885,7 @@ AnyEnemyPokemonAliveCheck:
|
|||
ld b, a
|
||||
xor a
|
||||
ld hl, wEnemyMon1HP
|
||||
ld de, wEnemyMon2 - wEnemyMon1
|
||||
ld de, PARTYMON_STRUCT_LENGTH
|
||||
.nextPokemon
|
||||
or [hl]
|
||||
inc hl
|
||||
|
|
@ -1222,17 +1222,17 @@ SlideDownFaintedMonPic:
|
|||
push af
|
||||
set BIT_NO_TEXT_DELAY, a
|
||||
ld [wStatusFlags5], a
|
||||
ld b, 7 ; number of times to slide
|
||||
ld b, PIC_HEIGHT ; number of times to slide
|
||||
.slideStepLoop ; each iteration, the mon is slid down one row
|
||||
push bc
|
||||
push de
|
||||
push hl
|
||||
ld b, 6 ; number of rows
|
||||
ld b, PIC_HEIGHT - 1 ; number of rows
|
||||
.rowLoop
|
||||
push bc
|
||||
push hl
|
||||
push de
|
||||
ld bc, $7
|
||||
ld bc, PIC_WIDTH
|
||||
call CopyData
|
||||
pop de
|
||||
pop hl
|
||||
|
|
@ -1264,7 +1264,8 @@ SlideDownFaintedMonPic:
|
|||
ret
|
||||
|
||||
SevenSpacesText:
|
||||
db " @"
|
||||
ds PIC_WIDTH, ' '
|
||||
db "@"
|
||||
|
||||
; slides the player or enemy trainer off screen
|
||||
; a is the number of tiles to slide it horizontally (always 9 for the player trainer or 8 for the enemy trainer)
|
||||
|
|
@ -1276,7 +1277,7 @@ SlideTrainerPicOffScreen:
|
|||
.slideStepLoop ; each iteration, the trainer pic is slid one tile left/right
|
||||
push bc
|
||||
push hl
|
||||
ld b, 7 ; number of rows
|
||||
ld b, PIC_HEIGHT ; number of rows
|
||||
.rowLoop
|
||||
push hl
|
||||
ldh a, [hSlideAmount]
|
||||
|
|
@ -1285,7 +1286,7 @@ SlideTrainerPicOffScreen:
|
|||
ldh a, [hSlideAmount]
|
||||
cp 8
|
||||
jr z, .slideRight
|
||||
.slideLeft ; slide player sprite off screen
|
||||
; slide player sprite left off screen
|
||||
ld a, [hld]
|
||||
ld [hli], a
|
||||
inc hl
|
||||
|
|
@ -1368,7 +1369,7 @@ EnemySendOutFirstMon:
|
|||
ld a, b
|
||||
ld [wWhichPokemon], a
|
||||
push bc
|
||||
ld bc, wEnemyMon2 - wEnemyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
pop bc
|
||||
inc hl
|
||||
|
|
@ -1380,7 +1381,7 @@ EnemySendOutFirstMon:
|
|||
.next3
|
||||
ld a, [wWhichPokemon]
|
||||
ld hl, wEnemyMon1Level
|
||||
ld bc, wEnemyMon2 - wEnemyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld a, [hl]
|
||||
ld [wCurEnemyLevel], a
|
||||
|
|
@ -1495,7 +1496,7 @@ AnyPartyAlive::
|
|||
ld e, a
|
||||
xor a
|
||||
ld hl, wPartyMon1HP
|
||||
ld bc, wPartyMon2 - wPartyMon1 - 1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH - 1
|
||||
.partyMonsLoop
|
||||
or [hl]
|
||||
inc hl
|
||||
|
|
@ -1511,7 +1512,7 @@ AnyPartyAlive::
|
|||
HasMonFainted:
|
||||
ld a, [wWhichPokemon]
|
||||
ld hl, wPartyMon1HP
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld a, [hli]
|
||||
or [hl]
|
||||
|
|
@ -1665,16 +1666,16 @@ GotAwayText:
|
|||
; copies from party data to battle mon data when sending out a new player mon
|
||||
LoadBattleMonFromParty:
|
||||
ld a, [wWhichPokemon]
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
ld hl, wPartyMon1Species
|
||||
call AddNTimes
|
||||
ld de, wBattleMonSpecies
|
||||
ld bc, wBattleMonDVs - wBattleMonSpecies
|
||||
call CopyData
|
||||
ld bc, wPartyMon1DVs - wPartyMon1OTID
|
||||
ld bc, MON_DVS - MON_OTID
|
||||
add hl, bc
|
||||
ld de, wBattleMonDVs
|
||||
ld bc, wPartyMon1PP - wPartyMon1DVs
|
||||
ld bc, MON_PP - MON_DVS
|
||||
call CopyData
|
||||
ld de, wBattleMonPP
|
||||
ld bc, NUM_MOVES
|
||||
|
|
@ -1709,16 +1710,16 @@ LoadBattleMonFromParty:
|
|||
; copies from enemy party data to current enemy mon data when sending out a new enemy mon
|
||||
LoadEnemyMonFromParty:
|
||||
ld a, [wWhichPokemon]
|
||||
ld bc, wEnemyMon2 - wEnemyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
ld hl, wEnemyMons
|
||||
call AddNTimes
|
||||
ld de, wEnemyMonSpecies
|
||||
ld bc, wEnemyMonDVs - wEnemyMonSpecies
|
||||
call CopyData
|
||||
ld bc, wEnemyMon1DVs - wEnemyMon1OTID
|
||||
ld bc, MON_DVS - MON_OTID
|
||||
add hl, bc
|
||||
ld de, wEnemyMonDVs
|
||||
ld bc, wEnemyMon1PP - wEnemyMon1DVs
|
||||
ld bc, MON_PP - MON_DVS
|
||||
call CopyData
|
||||
ld de, wEnemyMonPP
|
||||
ld bc, NUM_MOVES
|
||||
|
|
@ -1869,17 +1870,17 @@ AnimateRetreatingPlayerMon:
|
|||
call ClearScreenArea
|
||||
ret
|
||||
|
||||
; Copies player's current pokemon's current HP and status into the party
|
||||
; Copies player's current pokemon's current HP, party pos, and status into the party
|
||||
; struct data so it stays after battle or switching
|
||||
ReadPlayerMonCurHPAndStatus:
|
||||
ld a, [wPlayerMonNumber]
|
||||
ld hl, wPartyMon1HP
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld hl, wBattleMonHP
|
||||
ld bc, $4 ; 2 bytes HP, 1 byte unknown (unused?), 1 byte status
|
||||
ld bc, MON_STATUS + 1 - MON_HP ; also copies party pos in-between HP and status
|
||||
jp CopyData
|
||||
|
||||
DrawHUDsAndHPBars:
|
||||
|
|
@ -2623,7 +2624,7 @@ MoveSelectionMenu:
|
|||
.relearnmenu
|
||||
ld a, [wWhichPokemon]
|
||||
ld hl, wPartyMon1Moves
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
call .loadmoves
|
||||
hlcoord 4, 7
|
||||
|
|
@ -2969,12 +2970,12 @@ ENDC
|
|||
.swapMovesInPartyMon
|
||||
ld hl, wPartyMon1Moves
|
||||
ld a, [wPlayerMonNumber]
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
push hl
|
||||
call .swapBytes ; swap moves
|
||||
pop hl
|
||||
ld bc, wPartyMon1PP - wPartyMon1Moves
|
||||
ld bc, MON_PP - MON_MOVES
|
||||
add hl, bc
|
||||
call .swapBytes ; swap move PP
|
||||
xor a
|
||||
|
|
@ -3285,7 +3286,7 @@ PlayerCanExecuteChargingMove:
|
|||
; resulting in the Pokemon being invulnerable for the whole battle
|
||||
res INVULNERABLE, [hl]
|
||||
PlayerCanExecuteMove:
|
||||
call PrintMonName1Text
|
||||
call DisplayUsedMoveText
|
||||
ld hl, DecrementPP
|
||||
ld de, wPlayerSelectedMove ; pointer to the move just used
|
||||
ld b, BANK(DecrementPP)
|
||||
|
|
@ -3621,7 +3622,7 @@ CheckPlayerStatusConditions:
|
|||
bit PAR, [hl]
|
||||
jr z, .BideCheck
|
||||
call BattleRandom
|
||||
cp $3F ; 25% to be fully paralyzed
|
||||
cp 25 percent ; chance to be fully paralyzed
|
||||
jr nc, .BideCheck
|
||||
ld hl, FullyParalyzedText
|
||||
call PrintText
|
||||
|
|
@ -3727,11 +3728,12 @@ CheckPlayerStatusConditions:
|
|||
ld hl, AttackContinuesText
|
||||
call PrintText
|
||||
ld a, [wPlayerNumAttacksLeft]
|
||||
dec a ; did multi-turn move end?
|
||||
dec a
|
||||
ld [wPlayerNumAttacksLeft], a
|
||||
ld hl, GetPlayerAnimationType ; if it didn't, skip damage calculation (deal damage equal to last hit),
|
||||
; DecrementPP and MoveHitTest
|
||||
jp nz, .returnToHL
|
||||
ld hl, GetPlayerAnimationType ; skip damage calculation (deal damage equal to last hit),
|
||||
; DecrementPP and MoveHitTest
|
||||
jp nz, .returnToHL ; redundant leftover code, the case wEnemyNumAttacksLeft == 0
|
||||
; is handled within CheckNumAttacksLeft
|
||||
jp .returnToHL
|
||||
|
||||
.RageCheck
|
||||
|
|
@ -3796,7 +3798,7 @@ ConfusedNoMoreText:
|
|||
text_far _ConfusedNoMoreText
|
||||
text_end
|
||||
|
||||
SavingEnergyText:
|
||||
SavingEnergyText: ; unreferenced
|
||||
text_far _SavingEnergyText
|
||||
text_end
|
||||
|
||||
|
|
@ -3882,139 +3884,7 @@ HandleSelfConfusionDamage:
|
|||
ldh [hWhoseTurn], a
|
||||
jp ApplyDamageToPlayerPokemon
|
||||
|
||||
PrintMonName1Text:
|
||||
ld hl, MonName1Text
|
||||
jp PrintText
|
||||
|
||||
; this function wastes time calling DetermineExclamationPointTextNum
|
||||
; and choosing between Used1Text and Used2Text, even though
|
||||
; those text strings are identical and both continue at PrintInsteadText
|
||||
; this likely had to do with Japanese grammar that got translated,
|
||||
; but the functionality didn't get removed
|
||||
MonName1Text:
|
||||
text_far _MonName1Text
|
||||
text_asm
|
||||
ldh a, [hWhoseTurn]
|
||||
and a
|
||||
ld a, [wPlayerMoveNum]
|
||||
ld hl, wPlayerUsedMove
|
||||
jr z, .playerTurn
|
||||
ld a, [wEnemyMoveNum]
|
||||
ld hl, wEnemyUsedMove
|
||||
.playerTurn
|
||||
ld [hl], a
|
||||
ld [wMoveGrammar], a
|
||||
call DetermineExclamationPointTextNum
|
||||
ld a, [wMonIsDisobedient]
|
||||
and a
|
||||
ld hl, Used2Text
|
||||
ret nz
|
||||
ld a, [wMoveGrammar]
|
||||
cp 3
|
||||
ld hl, Used2Text
|
||||
ret c
|
||||
ld hl, Used1Text
|
||||
ret
|
||||
|
||||
Used1Text:
|
||||
text_far _Used1Text
|
||||
text_asm
|
||||
jr PrintInsteadText
|
||||
|
||||
Used2Text:
|
||||
text_far _Used2Text
|
||||
text_asm
|
||||
; fall through
|
||||
|
||||
PrintInsteadText:
|
||||
ld a, [wMonIsDisobedient]
|
||||
and a
|
||||
jr z, PrintMoveName
|
||||
ld hl, InsteadText
|
||||
ret
|
||||
|
||||
InsteadText:
|
||||
text_far _InsteadText
|
||||
text_asm
|
||||
; fall through
|
||||
|
||||
PrintMoveName:
|
||||
ld hl, _PrintMoveName
|
||||
ret
|
||||
|
||||
_PrintMoveName:
|
||||
text_far _MoveNameText
|
||||
text_asm
|
||||
ld hl, ExclamationPointPointerTable
|
||||
ld a, [wMoveGrammar]
|
||||
add a
|
||||
push bc
|
||||
ld b, $0
|
||||
ld c, a
|
||||
add hl, bc
|
||||
pop bc
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ret
|
||||
|
||||
ExclamationPointPointerTable:
|
||||
dw ExclamationPoint1Text
|
||||
dw ExclamationPoint2Text
|
||||
dw ExclamationPoint3Text
|
||||
dw ExclamationPoint4Text
|
||||
dw ExclamationPoint5Text
|
||||
|
||||
ExclamationPoint1Text:
|
||||
text_far _ExclamationPoint1Text
|
||||
text_end
|
||||
|
||||
ExclamationPoint2Text:
|
||||
text_far _ExclamationPoint2Text
|
||||
text_end
|
||||
|
||||
ExclamationPoint3Text:
|
||||
text_far _ExclamationPoint3Text
|
||||
text_end
|
||||
|
||||
ExclamationPoint4Text:
|
||||
text_far _ExclamationPoint4Text
|
||||
text_end
|
||||
|
||||
ExclamationPoint5Text:
|
||||
text_far _ExclamationPoint5Text
|
||||
text_end
|
||||
|
||||
; this function does nothing useful
|
||||
; if the move being used is in set [1-4] from ExclamationPointMoveSets,
|
||||
; use ExclamationPoint[1-4]Text
|
||||
; otherwise, use ExclamationPoint5Text
|
||||
; but all five text strings are identical
|
||||
; this likely had to do with Japanese grammar that got translated,
|
||||
; but the functionality didn't get removed
|
||||
DetermineExclamationPointTextNum:
|
||||
push bc
|
||||
ld a, [wMoveGrammar] ; move ID
|
||||
ld c, a
|
||||
ld b, $0
|
||||
ld hl, ExclamationPointMoveSets
|
||||
.loop
|
||||
ld a, [hli]
|
||||
cp $ff
|
||||
jr z, .done
|
||||
cp c
|
||||
jr z, .done
|
||||
and a
|
||||
jr nz, .loop
|
||||
inc b
|
||||
jr .loop
|
||||
.done
|
||||
ld a, b
|
||||
ld [wMoveGrammar], a
|
||||
pop bc
|
||||
ret
|
||||
|
||||
INCLUDE "data/moves/grammar.asm"
|
||||
INCLUDE "engine/battle/used_move_text.asm"
|
||||
|
||||
PrintMoveFailureText:
|
||||
ld de, wPlayerMoveEffect
|
||||
|
|
@ -4140,7 +4010,7 @@ CheckForDisobedience:
|
|||
; compare the mon's original trainer ID with the player's ID to see if it was traded
|
||||
.checkIfMonIsTraded
|
||||
ld hl, wPartyMon1OTID
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
ld a, [wPlayerMonNumber]
|
||||
call AddNTimes
|
||||
ld a, [wPlayerID]
|
||||
|
|
@ -4341,7 +4211,7 @@ GetDamageVarsForPlayerAttack:
|
|||
ld a, [hl] ; a = [wPlayerMoveType]
|
||||
cp SPECIAL ; types >= SPECIAL are all special
|
||||
jr nc, .specialAttack
|
||||
.physicalAttack
|
||||
; physical attack
|
||||
ld hl, wEnemyMonDefense
|
||||
ld a, [hli]
|
||||
ld b, a
|
||||
|
|
@ -4367,7 +4237,7 @@ GetDamageVarsForPlayerAttack:
|
|||
push bc
|
||||
ld hl, wPartyMon1Attack
|
||||
ld a, [wPlayerMonNumber]
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
pop bc
|
||||
jr .scaleStats
|
||||
|
|
@ -4399,7 +4269,7 @@ GetDamageVarsForPlayerAttack:
|
|||
push bc
|
||||
ld hl, wPartyMon1Special
|
||||
ld a, [wPlayerMonNumber]
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
pop bc
|
||||
; if either the offensive or defensive stat is too large to store in a byte, scale both stats by dividing them by 4
|
||||
|
|
@ -4454,7 +4324,7 @@ GetDamageVarsForEnemyAttack:
|
|||
ld a, [hl] ; a = [wEnemyMoveType]
|
||||
cp SPECIAL ; types >= SPECIAL are all special
|
||||
jr nc, .specialAttack
|
||||
.physicalAttack
|
||||
; physical attack
|
||||
ld hl, wBattleMonDefense
|
||||
ld a, [hli]
|
||||
ld b, a
|
||||
|
|
@ -4473,7 +4343,7 @@ GetDamageVarsForEnemyAttack:
|
|||
; in the case of a critical hit, reset the player's defense and the enemy's attack to their base values
|
||||
ld hl, wPartyMon1Defense
|
||||
ld a, [wPlayerMonNumber]
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld a, [hli]
|
||||
ld b, a
|
||||
|
|
@ -4505,7 +4375,7 @@ GetDamageVarsForEnemyAttack:
|
|||
; in the case of a critical hit, reset the player's and enemy's specials to their base values
|
||||
ld hl, wPartyMon1Special
|
||||
ld a, [wPlayerMonNumber]
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld a, [hli]
|
||||
ld b, a
|
||||
|
|
@ -4568,7 +4438,7 @@ GetEnemyMonStat:
|
|||
ld b, $0
|
||||
add hl, bc
|
||||
ld a, [wEnemyMonPartyPos]
|
||||
ld bc, wEnemyMon2 - wEnemyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld a, [hli]
|
||||
ldh [hMultiplicand + 1], a
|
||||
|
|
@ -5367,7 +5237,7 @@ IncrementMovePP:
|
|||
jr z, .updatePP
|
||||
ld a, [wEnemyMonPartyPos] ; value for enemy turn
|
||||
.updatePP
|
||||
ld bc, wEnemyMon2 - wEnemyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
inc [hl] ; increment PP in the party memory location
|
||||
ret
|
||||
|
|
@ -5471,7 +5341,6 @@ AdjustDamageForMoveType:
|
|||
ld [hl], a
|
||||
or b ; is damage 0?
|
||||
jr nz, .skipTypeImmunity
|
||||
.typeImmunity
|
||||
; if damage is 0, make the move miss
|
||||
; this only occurs if a move that would do 2 or 3 damage is 0.25x effective against the target
|
||||
inc a
|
||||
|
|
@ -5575,7 +5444,7 @@ MoveHitTest:
|
|||
ldh a, [hWhoseTurn]
|
||||
and a
|
||||
jr nz, .enemyTurn
|
||||
.playerTurn
|
||||
; player's turn
|
||||
; this checks if the move effect is disallowed by mist
|
||||
ld a, [wPlayerMoveEffect]
|
||||
cp ATTACK_DOWN1_EFFECT
|
||||
|
|
@ -5647,12 +5516,12 @@ MoveHitTest:
|
|||
ld [wMoveMissed], a
|
||||
ldh a, [hWhoseTurn]
|
||||
and a
|
||||
jr z, .playerTurn2
|
||||
.enemyTurn2
|
||||
jr z, .playerTurn
|
||||
; enemy's turn
|
||||
ld hl, wEnemyBattleStatus1
|
||||
res USING_TRAPPING_MOVE, [hl] ; end multi-turn attack e.g. wrap
|
||||
ret
|
||||
.playerTurn2
|
||||
.playerTurn
|
||||
ld hl, wPlayerBattleStatus1
|
||||
res USING_TRAPPING_MOVE, [hl] ; end multi-turn attack e.g. wrap
|
||||
ret
|
||||
|
|
@ -5823,7 +5692,7 @@ EnemyCanExecuteChargingMove:
|
|||
EnemyCanExecuteMove:
|
||||
xor a
|
||||
ld [wMonIsDisobedient], a
|
||||
call PrintMonName1Text
|
||||
call DisplayUsedMoveText
|
||||
ld a, [wEnemyMoveEffect]
|
||||
ld hl, ResidualEffects1
|
||||
ld de, $1
|
||||
|
|
@ -6244,10 +6113,11 @@ CheckEnemyStatusConditions:
|
|||
ld hl, AttackContinuesText
|
||||
call PrintText
|
||||
ld hl, wEnemyNumAttacksLeft
|
||||
dec [hl] ; did multi-turn move end?
|
||||
ld hl, GetEnemyAnimationType ; if it didn't, skip damage calculation (deal damage equal to last hit),
|
||||
dec [hl]
|
||||
ld hl, GetEnemyAnimationType ; skip damage calculation (deal damage equal to last hit),
|
||||
; DecrementPP and MoveHitTest
|
||||
jp nz, .enemyReturnToHL
|
||||
jp nz, .enemyReturnToHL ; redundant leftover code, the case wEnemyNumAttacksLeft == 0
|
||||
; is handled within CheckNumAttacksLeft
|
||||
jp .enemyReturnToHL
|
||||
.checkIfUsingRage
|
||||
ld a, [wEnemyBattleStatus2]
|
||||
|
|
@ -6387,7 +6257,7 @@ LoadEnemyMonData:
|
|||
; if it's a trainer battle, copy moves from enemy party data
|
||||
ld hl, wEnemyMon1Moves
|
||||
ld a, [wWhichPokemon]
|
||||
ld bc, wEnemyMon2 - wEnemyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld bc, NUM_MOVES
|
||||
call CopyData
|
||||
|
|
@ -6538,7 +6408,7 @@ LoadPlayerBackPic:
|
|||
ld [hl], d ; OAM Y
|
||||
inc hl
|
||||
ld [hl], e ; OAM X
|
||||
ld a, $8 ; height of tile
|
||||
ld a, TILE_HEIGHT
|
||||
add d ; increase Y by height of tile
|
||||
ld d, a
|
||||
inc hl
|
||||
|
|
@ -6554,7 +6424,7 @@ LoadPlayerBackPic:
|
|||
ldh a, [hOAMTile]
|
||||
add $4 ; increase tile number by 4
|
||||
ldh [hOAMTile], a
|
||||
ld a, $8 ; width of tile
|
||||
ld a, TILE_WIDTH
|
||||
add e ; increase X by width of tile
|
||||
ld e, a
|
||||
dec b
|
||||
|
|
@ -6567,7 +6437,7 @@ LoadPlayerBackPic:
|
|||
ld de, sSpriteBuffer1
|
||||
ldh a, [hLoadedROMBank]
|
||||
ld b, a
|
||||
ld c, 7 * 7
|
||||
ld c, PIC_SIZE
|
||||
call CopyVideoData
|
||||
call CloseSRAM
|
||||
ld a, $31
|
||||
|
|
@ -6599,7 +6469,7 @@ QuarterSpeedDueToParalysis:
|
|||
ldh a, [hWhoseTurn]
|
||||
and a
|
||||
jr z, .playerTurn
|
||||
.enemyTurn ; quarter the player's speed
|
||||
; enemy's turn, quarter the player's speed
|
||||
ld a, [wBattleMonStatus]
|
||||
and 1 << PAR
|
||||
ret z ; return if player not paralysed
|
||||
|
|
@ -6642,7 +6512,7 @@ HalveAttackDueToBurn:
|
|||
ldh a, [hWhoseTurn]
|
||||
and a
|
||||
jr z, .playerTurn
|
||||
.enemyTurn ; halve the player's attack
|
||||
; enemy's turn, halve the player's attack
|
||||
ld a, [wBattleMonStatus]
|
||||
and 1 << BRN
|
||||
ret z ; return if player not burnt
|
||||
|
|
@ -6826,7 +6696,7 @@ LoadHudTilePatterns:
|
|||
ldh a, [rLCDC]
|
||||
add a ; is LCD disabled?
|
||||
jr c, .lcdEnabled
|
||||
.lcdDisabled
|
||||
; LCD disabled
|
||||
ld hl, BattleHudTiles1
|
||||
ld de, vChars2 tile $6d
|
||||
ld bc, BattleHudTiles1End - BattleHudTiles1
|
||||
|
|
@ -6840,11 +6710,11 @@ LoadHudTilePatterns:
|
|||
.lcdEnabled
|
||||
ld de, BattleHudTiles1
|
||||
ld hl, vChars2 tile $6d
|
||||
lb bc, BANK(BattleHudTiles1), (BattleHudTiles1End - BattleHudTiles1) / $8
|
||||
lb bc, BANK(BattleHudTiles1), (BattleHudTiles1End - BattleHudTiles1) / TILE_1BPP_SIZE
|
||||
call CopyVideoDataDouble
|
||||
ld de, BattleHudTiles2
|
||||
ld hl, vChars2 tile $73
|
||||
lb bc, BANK(BattleHudTiles2), (BattleHudTiles3End - BattleHudTiles2) / $8
|
||||
lb bc, BANK(BattleHudTiles2), (BattleHudTiles3End - BattleHudTiles2) / TILE_1BPP_SIZE
|
||||
jp CopyVideoDataDouble
|
||||
|
||||
PrintEmptyString:
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ DecrementPP:
|
|||
|
||||
ld hl, wPartyMon1PP ; PP of first move (in party)
|
||||
ld a, [wPlayerMonNumber] ; which mon in party is active
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes ; calculate address of the mon to modify
|
||||
.DecrementPP:
|
||||
ld a, [wPlayerMoveListIndex] ; which move (0, 1, 2, 3) did we use?
|
||||
|
|
|
|||
|
|
@ -13,12 +13,12 @@ DrawEnemyPokeballs:
|
|||
LoadPartyPokeballGfx:
|
||||
ld de, PokeballTileGraphics
|
||||
ld hl, vSprites tile $31
|
||||
lb bc, BANK(PokeballTileGraphics), (PokeballTileGraphicsEnd - PokeballTileGraphics) / $10
|
||||
lb bc, BANK(PokeballTileGraphics), (PokeballTileGraphicsEnd - PokeballTileGraphics) / TILE_SIZE
|
||||
jp CopyVideoData
|
||||
|
||||
SetupOwnPartyPokeballs:
|
||||
call PlacePlayerHUDTiles
|
||||
ld hl, wPartyMon1
|
||||
ld hl, wPartyMons
|
||||
ld de, wPartyCount
|
||||
call SetupPokeballs
|
||||
ld a, $60
|
||||
|
|
@ -94,7 +94,7 @@ PickPokeball:
|
|||
.done
|
||||
ld a, b
|
||||
ld [de], a
|
||||
ld bc, wPartyMon2 - wPartyMon1Status
|
||||
ld bc, PARTYMON_STRUCT_LENGTH - MON_STATUS
|
||||
add hl, bc ; next mon struct
|
||||
ret
|
||||
|
||||
|
|
@ -123,7 +123,7 @@ WritePokeballOAMData:
|
|||
PlacePlayerHUDTiles:
|
||||
ld hl, PlayerBattleHUDGraphicsTiles
|
||||
ld de, wHUDGraphicsTiles
|
||||
ld bc, $3
|
||||
ld bc, wHUDGraphicsTilesEnd - wHUDGraphicsTiles
|
||||
call CopyData
|
||||
hlcoord 18, 10
|
||||
ld de, -1
|
||||
|
|
@ -138,7 +138,7 @@ PlayerBattleHUDGraphicsTiles:
|
|||
PlaceEnemyHUDTiles:
|
||||
ld hl, EnemyBattleHUDGraphicsTiles
|
||||
ld de, wHUDGraphicsTiles
|
||||
ld bc, $3
|
||||
ld bc, wHUDGraphicsTilesEnd - wHUDGraphicsTiles
|
||||
call CopyData
|
||||
hlcoord 1, 2
|
||||
ld de, $1
|
||||
|
|
@ -154,7 +154,7 @@ PlaceHUDTiles:
|
|||
ld [hl], $73
|
||||
ld bc, SCREEN_WIDTH
|
||||
add hl, bc
|
||||
ld a, [wHUDGraphicsTiles + 1] ; leftmost tile
|
||||
ld a, [wHUDCornerTile] ; leftmost tile
|
||||
ld [hl], a
|
||||
ld a, 8
|
||||
.loop
|
||||
|
|
@ -163,7 +163,7 @@ PlaceHUDTiles:
|
|||
dec a
|
||||
jr nz, .loop
|
||||
add hl, de
|
||||
ld a, [wHUDGraphicsTiles + 2] ; rightmost tile
|
||||
ld a, [wHUDTriangleTile] ; rightmost tile
|
||||
ld [hl], a
|
||||
ret
|
||||
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ SleepEffect:
|
|||
; including the event where the target already has another status
|
||||
ld a, [de]
|
||||
ld b, a
|
||||
and $7
|
||||
and SLP_MASK
|
||||
jr z, .notAlreadySleeping ; can't affect a mon that is already asleep
|
||||
ld hl, AlreadyAsleepText
|
||||
jp PrintText
|
||||
|
|
@ -58,7 +58,7 @@ SleepEffect:
|
|||
.setSleepCounter
|
||||
; set target's sleep counter to a random number between 1 and 7
|
||||
call BattleRandom
|
||||
and $7
|
||||
and SLP_MASK
|
||||
jr z, .setSleepCounter
|
||||
ld b, a
|
||||
ld a, [wUnknownSerialFlag_d499]
|
||||
|
|
@ -250,7 +250,7 @@ FreezeBurnParalyzeEffect:
|
|||
jr z, .burn1
|
||||
cp FREEZE_SIDE_EFFECT1
|
||||
jr z, .freeze1
|
||||
; .paralyze1
|
||||
; paralyze1
|
||||
ld a, 1 << PAR
|
||||
ld [wEnemyMonStatus], a
|
||||
call QuarterSpeedDueToParalysis ; quarter speed of affected mon
|
||||
|
|
@ -313,7 +313,7 @@ FreezeBurnParalyzeEffect:
|
|||
jr z, .burn2
|
||||
cp FREEZE_SIDE_EFFECT1
|
||||
jr z, .freeze2
|
||||
; .paralyze2
|
||||
; paralyze2
|
||||
ld a, 1 << PAR
|
||||
ld [wBattleMonStatus], a
|
||||
call QuarterSpeedDueToParalysis
|
||||
|
|
@ -359,7 +359,7 @@ CheckDefrost:
|
|||
ld [wEnemyMonStatus], a ; set opponent status to 00 ["defrost" a frozen monster]
|
||||
ld hl, wEnemyMon1Status
|
||||
ld a, [wEnemyMonPartyPos]
|
||||
ld bc, wEnemyMon2 - wEnemyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
xor a
|
||||
ld [hl], a ; clear status in roster
|
||||
|
|
@ -372,7 +372,7 @@ CheckDefrost:
|
|||
ld [wBattleMonStatus], a
|
||||
ld hl, wPartyMon1Status
|
||||
ld a, [wPlayerMonNumber]
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
xor a
|
||||
ld [hl], a
|
||||
|
|
@ -629,7 +629,7 @@ StatModifierDownEffect:
|
|||
ld a, [de]
|
||||
cp ATTACK_DOWN2_EFFECT - $16 ; $24
|
||||
jr c, .ok
|
||||
cp EVASION_DOWN2_EFFECT + $5 ; $44
|
||||
cp ATTACK_DOWN_SIDE_EFFECT ; move side effects, stat mod decrease is always 1
|
||||
jr nc, .ok
|
||||
dec b ; stat down 2 effects only (dec mod again)
|
||||
jr nz, .ok
|
||||
|
|
@ -722,7 +722,7 @@ UpdateLoweredStatDone:
|
|||
.ApplyBadgeBoostsAndStatusPenalties
|
||||
ldh a, [hWhoseTurn]
|
||||
and a
|
||||
call nz, ApplyBadgeStatBoosts ; whenever the player uses a stat-down move, badge boosts get reapplied again to every stat,
|
||||
call nz, ApplyBadgeStatBoosts ; whenever the opponent uses a stat-down move, badge boosts get reapplied again to every stat,
|
||||
; even to those not affected by the stat-down move (will be boosted further)
|
||||
ld hl, MonsStatsFellText
|
||||
call PrintText
|
||||
|
|
@ -747,7 +747,7 @@ CantLowerAnymore:
|
|||
|
||||
MoveMissed:
|
||||
ld a, [de]
|
||||
cp $44
|
||||
cp ATTACK_DOWN_SIDE_EFFECT
|
||||
ret nc
|
||||
jp ConditionalPrintButItFailed
|
||||
|
||||
|
|
@ -790,7 +790,7 @@ PrintStatText:
|
|||
jr .findStatName_inner
|
||||
.foundStatName
|
||||
ld de, wStringBuffer
|
||||
ld bc, $a
|
||||
ld bc, STAT_NAME_LENGTH
|
||||
jp CopyData
|
||||
|
||||
INCLUDE "data/battle/stat_mod_names.asm"
|
||||
|
|
@ -1377,7 +1377,7 @@ DisableEffect:
|
|||
cp LINK_STATE_BATTLING
|
||||
pop hl ; wEnemyMonMoves
|
||||
jr nz, .playerTurnNotLinkBattle
|
||||
; .playerTurnLinkBattle
|
||||
; player's turn, Link Battle
|
||||
push hl
|
||||
ld hl, wEnemyMonPP
|
||||
.enemyTurn
|
||||
|
|
@ -1512,6 +1512,7 @@ PlayCurrentMoveAnimation2:
|
|||
.notEnemyTurn
|
||||
and a
|
||||
ret z
|
||||
; fallthrough
|
||||
|
||||
PlayBattleAnimation2:
|
||||
; play animation ID at a and animation type 6 or 3
|
||||
|
|
@ -1538,6 +1539,7 @@ PlayCurrentMoveAnimation:
|
|||
.notEnemyTurn
|
||||
and a
|
||||
ret z
|
||||
; fallthrough
|
||||
|
||||
PlayBattleAnimation:
|
||||
; play animation ID at a and predefined animation type
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ EndOfBattle:
|
|||
; link battle
|
||||
ld a, [wEnemyMonPartyPos]
|
||||
ld hl, wEnemyMon1Status
|
||||
ld bc, wEnemyMon2 - wEnemyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld a, [wEnemyMonStatus]
|
||||
ld [hl], a
|
||||
|
|
@ -64,8 +64,8 @@ EndOfBattle:
|
|||
ld [hli], a
|
||||
ld [hl], a
|
||||
ld [wListScrollOffset], a
|
||||
ld hl, wPlayerStatsToDouble
|
||||
ld b, $18
|
||||
ld hl, wBattleStatusData
|
||||
ld b, wBattleStatusDataEnd - wBattleStatusData
|
||||
.loop
|
||||
ld [hli], a
|
||||
dec b
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ GainExperience:
|
|||
and a ; is mon's gain exp flag set?
|
||||
pop hl
|
||||
jp z, .nextMon ; if mon's gain exp flag not set, go to next mon
|
||||
ld de, (wPartyMon1HPExp + 1) - (wPartyMon1HP + 1)
|
||||
ld de, (MON_HP_EXP + 1) - (MON_HP + 1)
|
||||
add hl, de
|
||||
ld d, h
|
||||
ld e, l
|
||||
|
|
@ -66,9 +66,9 @@ GainExperience:
|
|||
ldh [hDivisor], a
|
||||
ld b, 4
|
||||
call Divide
|
||||
ld hl, wPartyMon1OTID - (wPartyMon1DVs - 1)
|
||||
ld hl, MON_OTID - (MON_DVS - 1)
|
||||
add hl, de
|
||||
ld b, [hl] ; party mon OTID
|
||||
ld b, [hl] ; wPartyMon*OTID
|
||||
inc hl
|
||||
ld a, [wPlayerID]
|
||||
cp b
|
||||
|
|
@ -152,7 +152,7 @@ GainExperience:
|
|||
ld [wMonDataLocation], a
|
||||
call LoadMonData
|
||||
pop hl
|
||||
ld bc, wPartyMon1Level - wPartyMon1Exp
|
||||
ld bc, MON_LEVEL - MON_EXP
|
||||
add hl, bc
|
||||
push hl
|
||||
farcall CalcLevelFromExperience
|
||||
|
|
@ -166,13 +166,13 @@ GainExperience:
|
|||
ld a, d
|
||||
ld [wCurEnemyLevel], a
|
||||
ld [hl], a
|
||||
ld bc, wPartyMon1Species - wPartyMon1Level
|
||||
ld bc, MON_SPECIES - MON_LEVEL
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
ld [wCurSpecies], a
|
||||
ld [wPokedexNum], a
|
||||
call GetMonHeader
|
||||
ld bc, (wPartyMon1MaxHP + 1) - wPartyMon1Species
|
||||
ld bc, (MON_MAXHP + 1) - MON_SPECIES
|
||||
add hl, bc
|
||||
push hl
|
||||
ld a, [hld]
|
||||
|
|
@ -181,7 +181,7 @@ GainExperience:
|
|||
push bc ; push max HP (from before levelling up)
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld bc, (wPartyMon1HPExp - 1) - wPartyMon1MaxHP
|
||||
ld bc, (MON_HP_EXP - 1) - MON_MAXHP
|
||||
add hl, bc
|
||||
ld b, $1 ; consider stat exp when calculating stats
|
||||
call CalcStats
|
||||
|
|
@ -193,15 +193,15 @@ GainExperience:
|
|||
ld a, [hl]
|
||||
sbc b
|
||||
ld b, a ; bc = difference between old max HP and new max HP after levelling
|
||||
ld de, (wPartyMon1HP + 1) - wPartyMon1MaxHP
|
||||
ld de, (MON_HP + 1) - MON_MAXHP
|
||||
add hl, de
|
||||
; add to the current HP the amount of max HP gained when levelling
|
||||
ld a, [hl] ; wPartyMon1HP + 1
|
||||
ld a, [hl] ; wPartyMon*HP + 1
|
||||
add c
|
||||
ld [hld], a
|
||||
ld a, [hl] ; wPartyMon1HP + 1
|
||||
ld a, [hl] ; wPartyMon*HP + 1
|
||||
adc b
|
||||
ld [hl], a ; wPartyMon1HP
|
||||
ld [hl], a ; wPartyMon*HP
|
||||
ld a, [wPlayerMonNumber]
|
||||
ld b, a
|
||||
ld a, [wWhichPokemon]
|
||||
|
|
@ -216,7 +216,7 @@ GainExperience:
|
|||
ld a, [hl]
|
||||
ld [de], a
|
||||
; copy other stats from party mon to battle mon
|
||||
ld bc, wPartyMon1Level - (wPartyMon1HP + 1)
|
||||
ld bc, MON_LEVEL - (MON_HP + 1)
|
||||
add hl, bc
|
||||
push hl
|
||||
ld de, wBattleMonLevel
|
||||
|
|
@ -251,7 +251,7 @@ GainExperience:
|
|||
xor a ; PLAYER_PARTY_DATA
|
||||
ld [wMonDataLocation], a
|
||||
call LoadMonData
|
||||
ld d, $1
|
||||
ld d, LEVEL_UP_STATS_BOX
|
||||
callfar PrintStatsBox
|
||||
call WaitForTextScrollButtonPress
|
||||
call LoadScreenTilesFromBuffer1
|
||||
|
|
@ -277,7 +277,7 @@ GainExperience:
|
|||
cp b
|
||||
jr z, .done
|
||||
ld [wWhichPokemon], a
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
ld hl, wPartyMon1
|
||||
call AddNTimes
|
||||
jp .partyMonLoop
|
||||
|
|
|
|||
|
|
@ -20,5 +20,5 @@ GetTrainerName_::
|
|||
ld hl, wNameBuffer
|
||||
.foundName
|
||||
ld de, wTrainerName
|
||||
ld bc, ITEM_NAME_LENGTH
|
||||
ld bc, TRAINER_NAME_LENGTH
|
||||
jp CopyData
|
||||
|
|
|
|||
|
|
@ -51,11 +51,11 @@ MarowakAnim:
|
|||
call Delay3
|
||||
jp ClearSprites
|
||||
|
||||
; copies a mon pic's from background VRAM to sprite VRAM and sets up OAM
|
||||
; copies a mon pic's from background VRAM to sprite VRAM and sets up OAM
|
||||
CopyMonPicFromBGToSpriteVRAM:
|
||||
ld de, vFrontPic
|
||||
ld hl, vSprites
|
||||
ld bc, 7 * 7
|
||||
ld bc, PIC_SIZE
|
||||
call CopyVideoData
|
||||
ld a, $10
|
||||
ld [wBaseCoordY], a
|
||||
|
|
|
|||
|
|
@ -76,17 +76,7 @@ InitWildBattle:
|
|||
ld [hli], a ; write front sprite pointer
|
||||
ld [hl], b
|
||||
ld hl, wEnemyMonNick ; set name to "GHOST"
|
||||
ld a, 'G'
|
||||
ld [hli], a
|
||||
ld a, 'H'
|
||||
ld [hli], a
|
||||
ld a, 'O'
|
||||
ld [hli], a
|
||||
ld a, 'S'
|
||||
ld [hli], a
|
||||
ld a, 'T'
|
||||
ld [hli], a
|
||||
ld [hl], '@'
|
||||
ld_hli_a_string "GHOST@"
|
||||
ld a, [wCurPartySpecies]
|
||||
push af
|
||||
ld a, MON_GHOST
|
||||
|
|
|
|||
|
|
@ -12,9 +12,7 @@ DisplayLinkBattleVersusTextBox:
|
|||
call PlaceString
|
||||
; place bold "VS" tiles between the names
|
||||
hlcoord 9, 8
|
||||
ld a, '<BOLD_V>'
|
||||
ld [hli], a
|
||||
ld [hl], '<BOLD_S>'
|
||||
ld_hli_a_string "<BOLD_V><BOLD_S>"
|
||||
xor a
|
||||
ld [wUpdateSpritesEnabled], a
|
||||
callfar SetupPlayerAndEnemyPokeballs
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ CureVolatileStatuses:
|
|||
ret
|
||||
|
||||
ResetStatMods:
|
||||
ld b, $8
|
||||
ld b, NUM_STAT_MODS
|
||||
.loop
|
||||
ld [hli], a
|
||||
dec b
|
||||
|
|
@ -67,7 +67,7 @@ ResetStatMods:
|
|||
ret
|
||||
|
||||
ResetStats:
|
||||
ld b, $8
|
||||
ld b, (NUM_STATS - 1) * 2 ; doesn't reset STAT_HEALTH
|
||||
.loop
|
||||
ld a, [hli]
|
||||
ld [de], a
|
||||
|
|
|
|||
|
|
@ -37,8 +37,8 @@ SubstituteEffect_:
|
|||
sbc 0
|
||||
pop bc
|
||||
jr c, .notEnoughHP ; underflow means user would be left with negative health
|
||||
; bug: since it only branches on carry, it will possibly leave user with 0 HP
|
||||
.userHasZeroOrMoreHP
|
||||
; bug: since it only branches on carry, it will possibly leave user with 0 HP
|
||||
; user has 0 or more HP
|
||||
ld [hli], a ; save resulting HP after subtraction into current HP
|
||||
ld [hl], d
|
||||
ld h, b
|
||||
|
|
|
|||
|
|
@ -2,17 +2,22 @@ TransformEffect_:
|
|||
ld hl, wBattleMonSpecies
|
||||
ld de, wEnemyMonSpecies
|
||||
ld bc, wEnemyBattleStatus3
|
||||
; bug: on enemy's turn, a is overloaded with hWhoseTurn,
|
||||
; before the check for INVULNERABLE
|
||||
ld a, [wEnemyBattleStatus1]
|
||||
ldh a, [hWhoseTurn]
|
||||
and a
|
||||
jr nz, .hitTest
|
||||
; player's turn
|
||||
ld hl, wEnemyMonSpecies
|
||||
ld de, wBattleMonSpecies
|
||||
ld bc, wPlayerBattleStatus3
|
||||
ld [wPlayerMoveListIndex], a
|
||||
; bug: this should be target's BattleStatus1 (i.e. wEnemyBattleStatus1)
|
||||
ld a, [wPlayerBattleStatus1]
|
||||
.hitTest
|
||||
bit INVULNERABLE, a ; is mon invulnerable to typical attacks? (fly/dig)
|
||||
; this check doesn't work due to above bugs
|
||||
jp nz, .failed
|
||||
push hl
|
||||
push de
|
||||
|
|
@ -82,14 +87,15 @@ TransformEffect_:
|
|||
ld a, [hli]
|
||||
ld [de], a
|
||||
inc de
|
||||
; Skip level and max HP
|
||||
inc hl
|
||||
inc hl
|
||||
inc hl
|
||||
inc de
|
||||
inc de
|
||||
inc de
|
||||
; Attack, Defense, Speed, and Special stats
|
||||
inc hl
|
||||
inc hl
|
||||
inc hl
|
||||
inc de
|
||||
inc de
|
||||
inc de
|
||||
ld bc, $8
|
||||
ld bc, (NUM_STATS - 1) * 2
|
||||
call CopyData
|
||||
ld bc, wBattleMonMoves - wBattleMonPP
|
||||
add hl, bc ; ld hl, wBattleMonMoves
|
||||
|
|
@ -99,7 +105,7 @@ TransformEffect_:
|
|||
ld a, [hli]
|
||||
and a
|
||||
jr z, .lessThanFourMoves
|
||||
ld a, $5
|
||||
ld a, 5
|
||||
.lessThanFourMoves
|
||||
ld [de], a
|
||||
inc de
|
||||
|
|
@ -129,7 +135,7 @@ TransformEffect_:
|
|||
ld l, e
|
||||
pop de
|
||||
.gotStatsOrModsToCopy
|
||||
ld bc, $8
|
||||
ld bc, (NUM_STATS - 1) * 2
|
||||
jp CopyData
|
||||
|
||||
.failed
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ ReadTrainer:
|
|||
jp z, .FinishUp
|
||||
dec a
|
||||
ld hl, wEnemyMon1Moves
|
||||
ld bc, wEnemyMon2 - wEnemyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld a, [de]
|
||||
inc de
|
||||
|
|
|
|||
|
|
@ -578,7 +578,7 @@ AISwitchIfEnoughMons:
|
|||
inc d
|
||||
.Fainted
|
||||
push bc
|
||||
ld bc, wEnemyMon2 - wEnemyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
add hl, bc
|
||||
pop bc
|
||||
dec c
|
||||
|
|
@ -592,16 +592,16 @@ AISwitchIfEnoughMons:
|
|||
|
||||
SwitchEnemyMon:
|
||||
|
||||
; prepare to withdraw the active monster: copy hp, number, and status to roster
|
||||
; prepare to withdraw the active monster: copy HP, party pos, and status to roster
|
||||
|
||||
ld a, [wEnemyMonPartyPos]
|
||||
ld hl, wEnemyMon1HP
|
||||
ld bc, wEnemyMon2 - wEnemyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld hl, wEnemyMonHP
|
||||
ld bc, 4
|
||||
ld bc, MON_STATUS + 1 - MON_HP ; also copies party pos in-between HP and status
|
||||
call CopyData
|
||||
|
||||
ld hl, AIBattleWithdrawText
|
||||
|
|
@ -635,7 +635,7 @@ AICureStatus:
|
|||
; cures the status of enemy's active pokemon
|
||||
ld a, [wEnemyMonPartyPos]
|
||||
ld hl, wEnemyMon1Status
|
||||
ld bc, wEnemyMon2 - wEnemyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
xor a
|
||||
ld [hl], a ; clear status in enemy team roster
|
||||
|
|
|
|||
139
engine/battle/used_move_text.asm
Normal file
139
engine/battle/used_move_text.asm
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
DisplayUsedMoveText:
|
||||
ld hl, UsedMoveText
|
||||
jp PrintText
|
||||
|
||||
UsedMoveText:
|
||||
text_far _ActorNameText
|
||||
text_asm
|
||||
|
||||
ldh a, [hWhoseTurn]
|
||||
and a
|
||||
ld a, [wPlayerMoveNum]
|
||||
ld hl, wPlayerUsedMove
|
||||
jr z, .playerTurn
|
||||
|
||||
ld a, [wEnemyMoveNum]
|
||||
ld hl, wEnemyUsedMove
|
||||
|
||||
.playerTurn
|
||||
ld [hl], a
|
||||
ld [wMoveGrammar], a
|
||||
call GetMoveGrammar
|
||||
ld a, [wMonIsDisobedient]
|
||||
and a
|
||||
ld hl, UsedMove2Text
|
||||
ret nz
|
||||
|
||||
; check move grammar
|
||||
ld a, [wMoveGrammar]
|
||||
cp $3
|
||||
ld hl, UsedMove2Text
|
||||
ret c
|
||||
ld hl, UsedMove1Text
|
||||
ret
|
||||
|
||||
UsedMove1Text:
|
||||
text_far _UsedMove1Text
|
||||
text_asm
|
||||
jr UsedMoveText_CheckObedience
|
||||
|
||||
UsedMove2Text:
|
||||
text_far _UsedMove2Text
|
||||
text_asm
|
||||
; fall through
|
||||
|
||||
UsedMoveText_CheckObedience:
|
||||
; check obedience
|
||||
ld a, [wMonIsDisobedient]
|
||||
and a
|
||||
jr z, .GetMoveNameText
|
||||
; print "instead,"
|
||||
ld hl, .UsedInsteadText
|
||||
ret
|
||||
|
||||
.UsedInsteadText:
|
||||
text_far _UsedInsteadText
|
||||
text_asm
|
||||
; fall through
|
||||
|
||||
.GetMoveNameText:
|
||||
ld hl, MoveNameText
|
||||
ret
|
||||
|
||||
MoveNameText:
|
||||
text_far _MoveNameText
|
||||
text_asm
|
||||
ld hl, .endusedmovetexts
|
||||
ld a, [wMoveGrammar]
|
||||
add a
|
||||
push bc
|
||||
ld b, $0
|
||||
ld c, a
|
||||
add hl, bc
|
||||
pop bc
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ret
|
||||
|
||||
.endusedmovetexts:
|
||||
; entries correspond to MoveGrammar sets
|
||||
dw EndUsedMove1Text
|
||||
dw EndUsedMove2Text
|
||||
dw EndUsedMove3Text
|
||||
dw EndUsedMove4Text
|
||||
dw EndUsedMove5Text
|
||||
|
||||
EndUsedMove1Text:
|
||||
text_far _EndUsedMove1Text
|
||||
text_end
|
||||
|
||||
EndUsedMove2Text:
|
||||
text_far _EndUsedMove2Text
|
||||
text_end
|
||||
|
||||
EndUsedMove3Text:
|
||||
text_far _EndUsedMove3Text
|
||||
text_end
|
||||
|
||||
EndUsedMove4Text:
|
||||
text_far _EndUsedMove4Text
|
||||
text_end
|
||||
|
||||
EndUsedMove5Text:
|
||||
text_far _EndUsedMove5Text
|
||||
text_end
|
||||
|
||||
; This function is redundant in the English localization.
|
||||
; In Japanese, it selects one of 5 distinct sentence structures.
|
||||
; In English, all of these sentences have the exact same structure,
|
||||
; so this serves no purpose.
|
||||
GetMoveGrammar:
|
||||
push bc
|
||||
ld a, [wMoveGrammar] ; move ID
|
||||
ld c, a
|
||||
ld b, $0
|
||||
ld hl, MoveGrammar
|
||||
.loop
|
||||
ld a, [hli]
|
||||
; end of table?
|
||||
cp -1
|
||||
jr z, .end
|
||||
; match?
|
||||
cp c
|
||||
jr z, .end
|
||||
; advance grammar type at 0
|
||||
and a
|
||||
jr nz, .loop
|
||||
; next grammar type
|
||||
inc b
|
||||
jr .loop
|
||||
|
||||
.end
|
||||
; wMoveGrammar now contains move grammar
|
||||
ld a, b
|
||||
ld [wMoveGrammar], a
|
||||
pop bc
|
||||
ret
|
||||
|
||||
INCLUDE "data/moves/grammar.asm"
|
||||
|
|
@ -11,7 +11,7 @@ HealParty:
|
|||
push hl
|
||||
push de
|
||||
|
||||
ld hl, wPartyMon1Status - wPartyMon1HP
|
||||
ld hl, MON_STATUS - MON_HP
|
||||
add hl, de
|
||||
xor a
|
||||
ld [hl], a
|
||||
|
|
@ -19,7 +19,7 @@ HealParty:
|
|||
push de
|
||||
ld b, NUM_MOVES ; A Pokémon has 4 moves
|
||||
.pp
|
||||
ld hl, wPartyMon1Moves - wPartyMon1HP
|
||||
ld hl, MON_MOVES - MON_HP
|
||||
add hl, de
|
||||
|
||||
ld a, [hl]
|
||||
|
|
@ -27,7 +27,7 @@ HealParty:
|
|||
jr z, .nextmove
|
||||
|
||||
dec a
|
||||
ld hl, wPartyMon1PP - wPartyMon1HP
|
||||
ld hl, MON_PP - MON_HP
|
||||
add hl, de
|
||||
|
||||
push hl
|
||||
|
|
@ -60,7 +60,7 @@ HealParty:
|
|||
jr nz, .pp
|
||||
pop de
|
||||
|
||||
ld hl, wPartyMon1MaxHP - wPartyMon1HP
|
||||
ld hl, MON_MAXHP - MON_HP
|
||||
add hl, de
|
||||
ld a, [hli]
|
||||
ld [de], a
|
||||
|
|
@ -72,7 +72,7 @@ HealParty:
|
|||
pop hl
|
||||
|
||||
push hl
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
ld h, d
|
||||
ld l, e
|
||||
add hl, bc
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ CinnabarGymQuiz::
|
|||
ld [wOpponentAfterWrongAnswer], a
|
||||
ld hl, wd474
|
||||
res 7, [hl]
|
||||
ld a, [wHiddenObjectFunctionArgument]
|
||||
ld a, [wHiddenEventFunctionArgument]
|
||||
push af
|
||||
and $f
|
||||
ldh [hGymGateIndex], a
|
||||
|
|
@ -2,7 +2,7 @@ PrintBlackboardLinkCableText:
|
|||
call EnableAutoTextBoxDrawing
|
||||
ld a, $1
|
||||
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
|
||||
ld a, [wHiddenObjectFunctionArgument]
|
||||
ld a, [wHiddenEventFunctionArgument]
|
||||
call PrintPredefTextID
|
||||
ret
|
||||
|
||||
|
|
@ -2,7 +2,7 @@ PrintNotebookText:
|
|||
call EnableAutoTextBoxDrawing
|
||||
ld a, $1
|
||||
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
|
||||
ld a, [wHiddenObjectFunctionArgument]
|
||||
ld a, [wHiddenEventFunctionArgument]
|
||||
jp PrintPredefTextID
|
||||
|
||||
TMNotebook::
|
||||
|
|
@ -8,7 +8,7 @@ VermilionGymTrashText::
|
|||
|
||||
GymTrashScript:
|
||||
call EnableAutoTextBoxDrawing
|
||||
ld a, [wHiddenObjectFunctionArgument]
|
||||
ld a, [wHiddenEventFunctionArgument]
|
||||
ld [wGymTrashCanIndex], a
|
||||
|
||||
; Don't do the trash can puzzle if it's already been done.
|
||||
|
|
@ -13,7 +13,7 @@ HiddenItems:
|
|||
call EnableAutoTextBoxDrawing
|
||||
ld a, 1
|
||||
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
|
||||
ld a, [wHiddenObjectFunctionArgument] ; item ID
|
||||
ld a, [wHiddenEventFunctionArgument] ; item ID
|
||||
ld [wNamedObjectIndex], a
|
||||
call GetItemName
|
||||
tx_pre_jump FoundHiddenItemText
|
||||
|
|
@ -28,7 +28,7 @@ INCLUDE "data/events/hidden_item_coords.asm"
|
|||
FoundHiddenItemText::
|
||||
text_far _FoundHiddenItemText
|
||||
text_asm
|
||||
ld a, [wHiddenObjectFunctionArgument] ; item ID
|
||||
ld a, [wHiddenEventFunctionArgument] ; item ID
|
||||
ld b, a
|
||||
ld c, 1
|
||||
call GiveItem
|
||||
|
|
@ -75,7 +75,7 @@ HiddenCoins:
|
|||
ldh [hUnusedCoinsByte], a
|
||||
ldh [hCoins], a
|
||||
ldh [hCoins + 1], a
|
||||
ld a, [wHiddenObjectFunctionArgument]
|
||||
ld a, [wHiddenEventFunctionArgument]
|
||||
sub COIN
|
||||
cp 10
|
||||
jr z, .bcd10
|
||||
|
|
@ -143,9 +143,9 @@ DroppedHiddenCoinsText::
|
|||
text_end
|
||||
|
||||
FindHiddenItemOrCoinsIndex:
|
||||
ld a, [wHiddenObjectY]
|
||||
ld a, [wHiddenEventY]
|
||||
ld d, a
|
||||
ld a, [wHiddenObjectX]
|
||||
ld a, [wHiddenEventX]
|
||||
ld e, a
|
||||
ld a, [wCurMap]
|
||||
ld b, a
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ InGameTrade_DoTrade:
|
|||
jr nz, .tradeFailed ; jump if the selected mon's species is not the required one
|
||||
ld a, [wWhichPokemon]
|
||||
ld hl, wPartyMon1Level
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld a, [hl]
|
||||
ld [wCurEnemyLevel], a
|
||||
|
|
@ -178,7 +178,7 @@ InGameTrade_PrepareTradeData:
|
|||
ld de, wLinkEnemyTrainerName
|
||||
call InGameTrade_CopyData
|
||||
ld hl, wPartyMon1OTID
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
ld a, [wWhichPokemon]
|
||||
call AddNTimes
|
||||
ld de, wTradedPlayerMonOTID
|
||||
|
|
@ -211,10 +211,10 @@ InGameTrade_CopyDataToReceivedMon:
|
|||
ld bc, NAME_LENGTH
|
||||
call CopyData
|
||||
ld hl, wPartyMon1OTID
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call InGameTrade_GetReceivedMonPointer
|
||||
ld hl, wTradedEnemyMonOTID
|
||||
ld bc, $2
|
||||
ld bc, 2
|
||||
jp CopyData
|
||||
|
||||
; the received mon's index is (partyCount - 1),
|
||||
|
|
|
|||
|
|
@ -3,19 +3,19 @@ PickUpItem:
|
|||
|
||||
ldh a, [hSpriteIndex]
|
||||
ld b, a
|
||||
ld hl, wMissableObjectList
|
||||
.missableObjectsListLoop
|
||||
ld hl, wToggleableObjectList
|
||||
.toggleableObjectsListLoop
|
||||
ld a, [hli]
|
||||
cp $ff
|
||||
ret z
|
||||
cp b
|
||||
jr z, .isMissable
|
||||
jr z, .isToggleable
|
||||
inc hl
|
||||
jr .missableObjectsListLoop
|
||||
jr .toggleableObjectsListLoop
|
||||
|
||||
.isMissable
|
||||
.isToggleable
|
||||
ld a, [hl]
|
||||
ldh [hMissableObjectIndex], a
|
||||
ldh [hToggleableObjectIndex], a
|
||||
|
||||
ld hl, wMapSpriteExtraData
|
||||
ldh a, [hSpriteIndex]
|
||||
|
|
@ -30,8 +30,8 @@ PickUpItem:
|
|||
call GiveItem
|
||||
jr nc, .BagFull
|
||||
|
||||
ldh a, [hMissableObjectIndex]
|
||||
ld [wMissableObjectIndex], a
|
||||
ldh a, [hToggleableObjectIndex]
|
||||
ld [wToggleableObjectIndex], a
|
||||
predef HideObject
|
||||
ld a, 1
|
||||
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ ApplyOutOfBattlePoisonDamage:
|
|||
ld a, [de]
|
||||
inc a
|
||||
jr z, .applyDamageLoopDone
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
add hl, bc
|
||||
push hl
|
||||
ld hl, wWhichPokemon
|
||||
|
|
@ -95,7 +95,7 @@ ApplyOutOfBattlePoisonDamage:
|
|||
and 1 << PSN
|
||||
or e
|
||||
ld e, a
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
add hl, bc
|
||||
dec d
|
||||
jr nz, .countPoisonedLoop
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ DisplayPokemartDialogue_::
|
|||
dec a
|
||||
jr z, .sellMenuLoop
|
||||
|
||||
.sellItem
|
||||
; sell item
|
||||
ld a, [wBoughtOrSoldItemInMart]
|
||||
and a
|
||||
jr nz, .skipSettingFlag1
|
||||
|
|
@ -177,7 +177,7 @@ DisplayPokemartDialogue_::
|
|||
dec a
|
||||
jr z, .buyMenuLoop
|
||||
|
||||
.buyItem
|
||||
; buy item
|
||||
call .isThereEnoughMoney
|
||||
jr c, .notEnoughMoney
|
||||
ld hl, wNumBagItems
|
||||
|
|
|
|||
|
|
@ -196,7 +196,7 @@ HandlePrizeChoice:
|
|||
.getMonName
|
||||
call GetMonName
|
||||
.givePrize
|
||||
ld hl, SoYouWantPrizeTextPtr
|
||||
ld hl, SoYouWantPrizeText
|
||||
call PrintText
|
||||
call YesNoChoice
|
||||
ld a, [wCurrentMenuItem] ; yes/no answer (Y=0, N=1)
|
||||
|
|
@ -244,25 +244,25 @@ HandlePrizeChoice:
|
|||
predef SubBCDPredef
|
||||
jp PrintPrizePrice
|
||||
.bagFull
|
||||
ld hl, PrizeRoomBagIsFullTextPtr
|
||||
ld hl, PrizeRoomBagIsFullText
|
||||
jp PrintText
|
||||
.notEnoughCoins
|
||||
ld hl, SorryNeedMoreCoinsText
|
||||
jp PrintText
|
||||
.printOhFineThen
|
||||
ld hl, OhFineThenTextPtr
|
||||
ld hl, OhFineThenText
|
||||
jp PrintText
|
||||
|
||||
UnknownPrizeData:
|
||||
; XXX what's this?
|
||||
db $00,$01,$00,$01,$00,$01,$00,$00,$01
|
||||
|
||||
HereYouGoTextPtr:
|
||||
HereYouGoText: ; unreferenced
|
||||
text_far _HereYouGoText
|
||||
text_waitbutton
|
||||
text_end
|
||||
|
||||
SoYouWantPrizeTextPtr:
|
||||
SoYouWantPrizeText:
|
||||
text_far _SoYouWantPrizeText
|
||||
text_end
|
||||
|
||||
|
|
@ -271,12 +271,12 @@ SorryNeedMoreCoinsText:
|
|||
text_waitbutton
|
||||
text_end
|
||||
|
||||
PrizeRoomBagIsFullTextPtr:
|
||||
PrizeRoomBagIsFullText:
|
||||
text_far _OopsYouDontHaveEnoughRoomText
|
||||
text_waitbutton
|
||||
text_end
|
||||
|
||||
OhFineThenTextPtr:
|
||||
OhFineThenText:
|
||||
text_far _OhFineThenText
|
||||
text_waitbutton
|
||||
text_end
|
||||
|
|
|
|||
|
|
@ -43,10 +43,10 @@ FlagAction:
|
|||
ld a, b
|
||||
and a
|
||||
jr z, .reset
|
||||
cp 2
|
||||
cp FLAG_TEST
|
||||
jr z, .read
|
||||
|
||||
.set
|
||||
; set
|
||||
ld b, [hl]
|
||||
ld a, d
|
||||
or b
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ LoadPokedexTilePatterns:
|
|||
call LoadHpBarAndStatusTilePatterns
|
||||
ld de, PokedexTileGraphics
|
||||
ld hl, vChars2 tile $60
|
||||
lb bc, BANK(PokedexTileGraphics), (PokedexTileGraphicsEnd - PokedexTileGraphics) / $10
|
||||
lb bc, BANK(PokedexTileGraphics), (PokedexTileGraphicsEnd - PokedexTileGraphics) / TILE_SIZE
|
||||
call CopyVideoData
|
||||
ld de, PokeballTileGraphics
|
||||
ld hl, vChars2 tile $72
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ GetAnimationSpeed:
|
|||
push bc
|
||||
ld hl, wMonPartySpritesSavedOAM
|
||||
ld de, wShadowOAM
|
||||
ld bc, $60
|
||||
ld bc, OBJ_SIZE * 4 * PARTY_LENGTH
|
||||
call CopyData
|
||||
pop bc
|
||||
xor a
|
||||
|
|
@ -52,7 +52,7 @@ GetAnimationSpeed:
|
|||
.animateSprite
|
||||
push bc
|
||||
ld hl, wShadowOAMSprite00TileID
|
||||
ld bc, $10
|
||||
ld bc, OBJ_SIZE * 4
|
||||
ld a, [wCurrentMenuItem]
|
||||
call AddNTimes
|
||||
ld c, ICONOFFSET
|
||||
|
|
@ -68,8 +68,8 @@ GetAnimationSpeed:
|
|||
ld c, $1 ; amount to increase the y coord by
|
||||
; otherwise, load a second sprite frame
|
||||
.editTileIDS
|
||||
ld b, $4
|
||||
ld de, $4
|
||||
ld b, 4
|
||||
ld de, OBJ_SIZE
|
||||
.loop
|
||||
ld a, [hl]
|
||||
add c
|
||||
|
|
@ -266,7 +266,7 @@ WriteMonPartySpriteOAM:
|
|||
.makeCopy
|
||||
ld hl, wShadowOAM
|
||||
ld de, wMonPartySpritesSavedOAM
|
||||
ld bc, $60
|
||||
ld bc, OBJ_SIZE * 4 * PARTY_LENGTH
|
||||
jp CopyData
|
||||
|
||||
GetPartyMonSpriteID:
|
||||
|
|
|
|||
|
|
@ -1071,7 +1071,7 @@ CopySGBBorderTiles:
|
|||
ld b, 128
|
||||
.tileLoop
|
||||
; Copy bit planes 1 and 2 of the tile data.
|
||||
ld c, 16
|
||||
ld c, TILE_SIZE
|
||||
.copyLoop
|
||||
ld a, [hli]
|
||||
ld [de], a
|
||||
|
|
|
|||
|
|
@ -141,12 +141,12 @@ PrepareOAMData::
|
|||
.asm_4a41
|
||||
ld a, [wMovementFlags]
|
||||
bit BIT_LEDGE_OR_FISHING, a
|
||||
ld c, $a0
|
||||
ld c, LOW(wShadowOAMEnd)
|
||||
jr z, .clear
|
||||
|
||||
; Don't clear the last 4 entries because they are used for the shadow in the
|
||||
; jumping down ledge animation and the rod in the fishing animation.
|
||||
ld c, $90
|
||||
ld c, LOW(wShadowOAMSprite36)
|
||||
|
||||
.clear
|
||||
ldh a, [hOAMBufferOffset]
|
||||
|
|
|
|||
|
|
@ -119,7 +119,6 @@ RemoveItemFromInventory_::
|
|||
jr nz, .skipMovingUpSlots
|
||||
; if the remaining quantity is 0,
|
||||
; remove the emptied item slot and move up all the following item slots
|
||||
.moveSlotsUp
|
||||
ld e, l
|
||||
ld d, h
|
||||
inc de
|
||||
|
|
|
|||
|
|
@ -669,7 +669,7 @@ ItemUseBicycle:
|
|||
jp z, ItemUseNotTime
|
||||
dec a ; is player already bicycling?
|
||||
jr nz, .tryToGetOnBike
|
||||
.getOffBike
|
||||
; get off bike
|
||||
call ItemUseReloadOverworldData
|
||||
xor a
|
||||
ld [wWalkBikeSurfState], a ; change player state to walking
|
||||
|
|
@ -702,13 +702,13 @@ ItemUseSurfboard:
|
|||
ld [wWalkBikeSurfStateCopy], a
|
||||
cp 2 ; is the player already surfing?
|
||||
jr z, .tryToStopSurfing
|
||||
.tryToSurf
|
||||
; try to Surf
|
||||
call IsNextTileShoreOrWater
|
||||
jp nc, SurfingAttemptFailed
|
||||
ld hl, TilePairCollisionsWater
|
||||
call CheckForTilePairCollisions
|
||||
jp c, SurfingAttemptFailed
|
||||
.surf
|
||||
; surfing
|
||||
call .makePlayerMoveForward
|
||||
ld hl, wStatusFlags5
|
||||
set BIT_SCRIPTED_MOVEMENT_STATE, [hl]
|
||||
|
|
@ -923,7 +923,7 @@ ItemUseMedicine:
|
|||
.getPartyMonDataAddress
|
||||
jp c, .canceledItemUse
|
||||
ld hl, wPartyMons
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
ld a, [wWhichPokemon]
|
||||
call AddNTimes
|
||||
ld a, [wWhichPokemon]
|
||||
|
|
@ -965,7 +965,7 @@ ItemUseMedicine:
|
|||
jr nc, .healHP ; if it's a Full Restore or one of the potions
|
||||
; fall through if it's one of the status-specific healing items
|
||||
.cureStatusAilment
|
||||
ld bc, wPartyMon1Status - wPartyMon1
|
||||
ld bc, MON_STATUS
|
||||
add hl, bc ; hl now points to status
|
||||
ld a, [wCurItem]
|
||||
lb bc, ANTIDOTE_MSG, 1 << PSN
|
||||
|
|
@ -1003,7 +1003,7 @@ ItemUseMedicine:
|
|||
ld hl, wPlayerBattleStatus3
|
||||
res BADLY_POISONED, [hl] ; heal Toxic status
|
||||
pop hl
|
||||
ld bc, wPartyMon1Stats - wPartyMon1Status
|
||||
ld bc, MON_STATS - MON_STATUS
|
||||
add hl, bc ; hl now points to party stats
|
||||
ld de, wBattleMonStats
|
||||
ld bc, NUM_STATS * 2
|
||||
|
|
@ -1021,7 +1021,7 @@ ItemUseMedicine:
|
|||
ld [wHPBarOldHP], a ; current HP stored at wHPBarOldHP (2 bytes, big-endian)
|
||||
or b
|
||||
jr nz, .notFainted
|
||||
.fainted
|
||||
; fainted
|
||||
ld a, [wCurItem]
|
||||
cp REVIVE
|
||||
jr z, .updateInBattleFaintedData
|
||||
|
|
@ -1078,7 +1078,7 @@ ItemUseMedicine:
|
|||
.compareCurrentHPToMaxHP
|
||||
push hl
|
||||
push bc
|
||||
ld bc, wPartyMon1MaxHP - (wPartyMon1HP + 1)
|
||||
ld bc, MON_MAXHP - (MON_HP + 1)
|
||||
add hl, bc ; hl now points to max HP
|
||||
pop bc
|
||||
ld a, [hli]
|
||||
|
|
@ -1089,7 +1089,7 @@ ItemUseMedicine:
|
|||
.skipComparingLSB
|
||||
pop hl
|
||||
jr nz, .notFullHP
|
||||
.fullHP ; if the pokemon's current HP equals its max HP
|
||||
; if the pokemon's current HP equals its max HP
|
||||
ld a, [wCurItem]
|
||||
cp FULL_RESTORE
|
||||
jp nz, .healingItemNoEffect
|
||||
|
|
@ -1111,7 +1111,7 @@ ItemUseMedicine:
|
|||
ld [wChannelSoundIDs + CHAN5], a
|
||||
push hl
|
||||
push de
|
||||
ld bc, wPartyMon1MaxHP - (wPartyMon1HP + 1)
|
||||
ld bc, MON_MAXHP - (MON_HP + 1)
|
||||
add hl, bc ; hl now points to max HP
|
||||
ld a, [hli]
|
||||
ld [wHPBarMaxHP+1], a
|
||||
|
|
@ -1132,7 +1132,7 @@ ItemUseMedicine:
|
|||
push af
|
||||
ld hl, wPartyMon1MaxHP
|
||||
ld a, [wWhichPokemon]
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld a, [hli]
|
||||
ld [wHPBarMaxHP + 1], a
|
||||
|
|
@ -1144,7 +1144,7 @@ ItemUseMedicine:
|
|||
ldh [hDivisor], a
|
||||
ld b, 2 ; number of bytes
|
||||
call Divide ; get 1/5 of max HP of pokemon that used Softboiled
|
||||
ld bc, (wPartyMon1HP + 1) - (wPartyMon1MaxHP + 1)
|
||||
ld bc, (MON_HP + 1) - (MON_MAXHP + 1)
|
||||
add hl, bc ; hl now points to LSB of current HP of pokemon that used Softboiled
|
||||
; subtract 1/5 of max HP from current HP of pokemon that used Softboiled
|
||||
ldh a, [hQuotient + 3]
|
||||
|
|
@ -1224,7 +1224,7 @@ ItemUseMedicine:
|
|||
inc hl
|
||||
ld d, h
|
||||
ld e, l ; de now points to current HP
|
||||
ld hl, (wPartyMon1MaxHP + 1) - (wPartyMon1HP + 1)
|
||||
ld hl, (MON_MAXHP + 1) - (MON_HP + 1)
|
||||
add hl, de ; hl now points to max HP
|
||||
ld a, [wCurItem]
|
||||
cp REVIVE
|
||||
|
|
@ -1273,7 +1273,7 @@ ItemUseMedicine:
|
|||
ld a, [wCurItem]
|
||||
cp FULL_RESTORE
|
||||
jr nz, .updateInBattleData
|
||||
ld bc, wPartyMon1Status - (wPartyMon1MaxHP + 1)
|
||||
ld bc, MON_STATUS - (MON_MAXHP + 1)
|
||||
add hl, bc
|
||||
xor a
|
||||
ld [hl], a ; remove the status ailment in the party data
|
||||
|
|
@ -1381,7 +1381,7 @@ ItemUseMedicine:
|
|||
ld a, [hl]
|
||||
ld [wCurSpecies], a
|
||||
ld [wPokedexNum], a
|
||||
ld bc, wPartyMon1Level - wPartyMon1
|
||||
ld bc, MON_LEVEL
|
||||
add hl, bc ; hl now points to level
|
||||
ld a, [hl] ; a = level
|
||||
ld [wCurEnemyLevel], a ; store level
|
||||
|
|
@ -1398,7 +1398,7 @@ ItemUseMedicine:
|
|||
push hl
|
||||
sub HP_UP
|
||||
add a
|
||||
ld bc, wPartyMon1HPExp - wPartyMon1
|
||||
ld bc, MON_HP_EXP
|
||||
add hl, bc
|
||||
add l
|
||||
ld l, a
|
||||
|
|
@ -1427,14 +1427,14 @@ ItemUseMedicine:
|
|||
.statNameInnerLoop
|
||||
ld a, [hli]
|
||||
ld b, a
|
||||
ld a, $50
|
||||
ld a, '@'
|
||||
cp b
|
||||
jr nz, .statNameInnerLoop
|
||||
jr .statNameLoop
|
||||
|
||||
.gotStatName
|
||||
ld de, wStringBuffer
|
||||
ld bc, 10
|
||||
ld bc, STAT_NAME_LENGTH
|
||||
call CopyData ; copy the stat's name to wStringBuffer
|
||||
ld a, SFX_HEAL_AILMENT
|
||||
call PlaySound
|
||||
|
|
@ -1449,17 +1449,17 @@ ItemUseMedicine:
|
|||
jp GBPalWhiteOut
|
||||
|
||||
.recalculateStats
|
||||
ld bc, wPartyMon1Stats - wPartyMon1
|
||||
ld bc, MON_STATS
|
||||
add hl, bc
|
||||
ld d, h
|
||||
ld e, l ; de now points to stats
|
||||
ld bc, (wPartyMon1Exp + 2) - wPartyMon1Stats
|
||||
ld bc, (MON_EXP + 2) - MON_STATS
|
||||
add hl, bc ; hl now points to LSB of experience
|
||||
ld b, 1
|
||||
jp CalcStats ; recalculate stats
|
||||
.useRareCandy
|
||||
push hl
|
||||
ld bc, wPartyMon1Level - wPartyMon1
|
||||
ld bc, MON_LEVEL
|
||||
add hl, bc ; hl now points to level
|
||||
ld a, [hl] ; a = level
|
||||
cp MAX_LEVEL
|
||||
|
|
@ -1473,7 +1473,7 @@ ItemUseMedicine:
|
|||
callfar CalcExperience ; calculate experience for next level and store it at hExperience
|
||||
pop de
|
||||
pop hl
|
||||
ld bc, wPartyMon1Exp - wPartyMon1Level
|
||||
ld bc, MON_EXP - MON_LEVEL
|
||||
add hl, bc ; hl now points to MSB of experience
|
||||
; update experience to minimum for new level
|
||||
ldh a, [hExperience]
|
||||
|
|
@ -1489,7 +1489,7 @@ ItemUseMedicine:
|
|||
push af
|
||||
push de
|
||||
push hl
|
||||
ld bc, wPartyMon1MaxHP - wPartyMon1
|
||||
ld bc, MON_MAXHP
|
||||
add hl, bc ; hl now points to MSB of max HP
|
||||
ld a, [hli]
|
||||
ld b, a
|
||||
|
|
@ -1499,7 +1499,7 @@ ItemUseMedicine:
|
|||
push hl
|
||||
call .recalculateStats
|
||||
pop hl
|
||||
ld bc, (wPartyMon1MaxHP + 1) - wPartyMon1
|
||||
ld bc, (MON_MAXHP + 1)
|
||||
add hl, bc ; hl now points to LSB of max HP
|
||||
pop bc
|
||||
ld a, [hld]
|
||||
|
|
@ -1509,7 +1509,7 @@ ItemUseMedicine:
|
|||
sbc b
|
||||
ld b, a ; bc = the amount of max HP gained from leveling up
|
||||
; add the amount gained to the current HP
|
||||
ld de, (wPartyMon1HP + 1) - wPartyMon1MaxHP
|
||||
ld de, (MON_HP + 1) - MON_MAXHP
|
||||
add hl, de ; hl now points to LSB of current HP
|
||||
ld a, [hl]
|
||||
add c
|
||||
|
|
@ -1528,12 +1528,12 @@ ItemUseMedicine:
|
|||
xor a ; PLAYER_PARTY_DATA
|
||||
ld [wMonDataLocation], a
|
||||
call LoadMonData
|
||||
ld d, $01
|
||||
callfar PrintStatsBox ; display new stats text box
|
||||
call WaitForTextScrollButtonPress ; wait for button press
|
||||
ld d, LEVEL_UP_STATS_BOX
|
||||
callfar PrintStatsBox
|
||||
call WaitForTextScrollButtonPress
|
||||
xor a ; PLAYER_PARTY_DATA
|
||||
ld [wMonDataLocation], a
|
||||
predef LearnMoveFromLevelUp ; learn level up move, if any
|
||||
predef LearnMoveFromLevelUp
|
||||
|
||||
xor a
|
||||
ld [wForceEvolution], a
|
||||
|
|
@ -1542,7 +1542,7 @@ ItemUseMedicine:
|
|||
push af
|
||||
ld a, [wUsedItemOnWhichPokemon]
|
||||
ld [wWhichPokemon], a
|
||||
callfar RespawnOverworldPikachu ; evolve pokemon, if appropriate
|
||||
callfar RespawnOverworldPikachu
|
||||
pop af
|
||||
ld [wWhichPokemon], a
|
||||
|
||||
|
|
@ -1571,11 +1571,11 @@ INCLUDE "data/battle/stat_names.asm"
|
|||
ItemUseBait:
|
||||
ld hl, ThrewBaitText
|
||||
call PrintText
|
||||
ld hl, wEnemyMonActualCatchRate ; catch rate
|
||||
ld hl, wEnemyMonActualCatchRate
|
||||
srl [hl] ; halve catch rate
|
||||
ld a, BAIT_ANIM
|
||||
ld hl, wSafariBaitFactor ; bait factor
|
||||
ld de, wSafariEscapeFactor ; escape factor
|
||||
ld hl, wSafariBaitFactor
|
||||
ld de, wSafariEscapeFactor
|
||||
jr BaitRockCommon
|
||||
|
||||
; for CASCADEBADGE when used from the
|
||||
|
|
@ -1584,7 +1584,7 @@ ItemUseBait:
|
|||
ItemUseRock:
|
||||
ld hl, ThrewRockText
|
||||
call PrintText
|
||||
ld hl, wEnemyMonActualCatchRate ; catch rate
|
||||
ld hl, wEnemyMonActualCatchRate
|
||||
ld a, [hl]
|
||||
add a ; double catch rate
|
||||
jr nc, .noCarry
|
||||
|
|
@ -1592,8 +1592,8 @@ ItemUseRock:
|
|||
.noCarry
|
||||
ld [hl], a
|
||||
ld a, ROCK_ANIM
|
||||
ld hl, wSafariEscapeFactor ; escape factor
|
||||
ld de, wSafariBaitFactor ; bait factor
|
||||
ld hl, wSafariEscapeFactor
|
||||
ld de, wSafariBaitFactor
|
||||
|
||||
BaitRockCommon:
|
||||
ld [wAnimationID], a
|
||||
|
|
@ -1954,8 +1954,8 @@ ItemUsePokeFlute:
|
|||
; OUTPUT:
|
||||
; [wWereAnyMonsAsleep]: set to 1 if any pokemon were asleep
|
||||
WakeUpEntireParty:
|
||||
ld de, 44
|
||||
ld c, 6
|
||||
ld de, PARTYMON_STRUCT_LENGTH
|
||||
ld c, PARTY_LENGTH
|
||||
.loop
|
||||
ld a, [hl]
|
||||
push af
|
||||
|
|
@ -2221,7 +2221,7 @@ ItemUsePPRestore:
|
|||
ld [wPlayerMoveListIndex], a
|
||||
jr nz, .chooseMon
|
||||
ld hl, wPartyMon1Moves
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call GetSelectedMoveOffset
|
||||
push hl
|
||||
ld a, [hl]
|
||||
|
|
@ -2232,8 +2232,8 @@ ItemUsePPRestore:
|
|||
ld a, [wPPRestoreItem]
|
||||
cp ETHER
|
||||
jr nc, .useEther ; if Ether or Max Ether
|
||||
.usePPUp
|
||||
ld bc, wPartyMon1PP - wPartyMon1Moves
|
||||
; use PP Up
|
||||
ld bc, MON_PP - MON_MOVES
|
||||
add hl, bc
|
||||
ld a, [hl] ; move PP
|
||||
cp 3 << 6 ; have 3 PP Ups already been used?
|
||||
|
|
@ -2267,10 +2267,10 @@ ItemUsePPRestore:
|
|||
cp b ; is the pokemon whose PP was restored active in battle?
|
||||
jr nz, .skipUpdatingInBattleData
|
||||
ld hl, wPartyMon1PP
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld de, wBattleMonPP
|
||||
ld bc, 4
|
||||
ld bc, NUM_MOVES
|
||||
call CopyData ; copy party data to in-battle data
|
||||
.skipUpdatingInBattleData
|
||||
ld a, SFX_HEAL_AILMENT
|
||||
|
|
@ -2291,9 +2291,9 @@ ItemUsePPRestore:
|
|||
ld [wMonDataLocation], a
|
||||
call GetMaxPP
|
||||
ld hl, wPartyMon1Moves
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call GetSelectedMoveOffset
|
||||
ld bc, wPartyMon1PP - wPartyMon1Moves
|
||||
ld bc, MON_PP - MON_MOVES
|
||||
add hl, bc ; hl now points to move's PP
|
||||
ld a, [wMaxPP]
|
||||
ld b, a
|
||||
|
|
@ -2343,7 +2343,7 @@ ItemUsePPRestore:
|
|||
.elixirLoop
|
||||
push bc
|
||||
ld hl, wPartyMon1Moves
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call GetSelectedMoveOffset
|
||||
ld a, [hl]
|
||||
and a ; does the current slot have a move?
|
||||
|
|
@ -2441,7 +2441,7 @@ ItemUseTMHM:
|
|||
.chooseMon
|
||||
ld hl, wStringBuffer
|
||||
ld de, wTempMoveNameBuffer
|
||||
ld bc, ITEM_NAME_LENGTH + 1
|
||||
ld bc, MOVE_NAME_LENGTH
|
||||
call CopyData ; save the move name because DisplayPartyMenu will overwrite it
|
||||
ld a, $ff
|
||||
ld [wUpdateSpritesEnabled], a
|
||||
|
|
@ -2451,7 +2451,7 @@ ItemUseTMHM:
|
|||
push af
|
||||
ld hl, wTempMoveNameBuffer
|
||||
ld de, wStringBuffer
|
||||
ld bc, ITEM_NAME_LENGTH + 1
|
||||
ld bc, MOVE_NAME_LENGTH
|
||||
call CopyData
|
||||
pop af
|
||||
jr nc, .checkIfAbleToLearnMove
|
||||
|
|
@ -2656,14 +2656,14 @@ GotOffBicycleText:
|
|||
; [wCurrentMenuItem] = index of move (when using a PP Up)
|
||||
RestoreBonusPP:
|
||||
ld hl, wPartyMon1Moves
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
ld a, [wWhichPokemon]
|
||||
call AddNTimes
|
||||
push hl
|
||||
ld de, wNormalMaxPPList - 1
|
||||
predef LoadMovePPs ; loads the normal max PP of each of the pokemon's moves to wNormalMaxPPList
|
||||
pop hl
|
||||
ld c, wPartyMon1PP - wPartyMon1Moves
|
||||
ld c, MON_PP - MON_MOVES
|
||||
ld b, 0
|
||||
add hl, bc ; hl now points to move 1 PP
|
||||
ld de, wNormalMaxPPList
|
||||
|
|
@ -2749,13 +2749,13 @@ GetMaxPP:
|
|||
ld a, [wMonDataLocation]
|
||||
and a
|
||||
ld hl, wPartyMon1Moves
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
jr z, .sourceWithMultipleMon
|
||||
ld hl, wEnemyMon1Moves
|
||||
dec a
|
||||
jr z, .sourceWithMultipleMon
|
||||
ld hl, wBoxMon1Moves
|
||||
ld bc, wBoxMon2 - wBoxMon1
|
||||
ld bc, BOXMON_STRUCT_LENGTH
|
||||
dec a
|
||||
jr z, .sourceWithMultipleMon
|
||||
ld hl, wDayCareMonMoves
|
||||
|
|
@ -2783,7 +2783,7 @@ GetMaxPP:
|
|||
ld b, a ; b = normal max PP
|
||||
pop hl
|
||||
push bc
|
||||
ld bc, wPartyMon1PP - wPartyMon1Moves ; PP offset if not player's in-battle pokemon data
|
||||
ld bc, MON_PP - MON_MOVES ; PP offset if not player's in-battle pokemon data
|
||||
ld a, [wMonDataLocation]
|
||||
cp 4 ; player's in-battle pokemon?
|
||||
jr nz, .addPPOffset
|
||||
|
|
@ -2928,29 +2928,33 @@ IsKeyItem_::
|
|||
|
||||
INCLUDE "data/items/key_items.asm"
|
||||
|
||||
; store the new mon in the first slot, shifting all existing box data down
|
||||
SendNewMonToBox:
|
||||
ld de, wBoxCount
|
||||
ld a, [de]
|
||||
inc a
|
||||
ld [de], a
|
||||
|
||||
ld a, [wCurPartySpecies]
|
||||
ld [wCurSpecies], a
|
||||
ld c, a
|
||||
.loop
|
||||
.shiftSpeciesLoop
|
||||
inc de
|
||||
ld a, [de]
|
||||
ld b, a
|
||||
ld a, c
|
||||
ld c, b
|
||||
ld [de], a
|
||||
cp $ff
|
||||
jr nz, .loop
|
||||
cp -1
|
||||
jr nz, .shiftSpeciesLoop
|
||||
|
||||
call GetMonHeader
|
||||
ld hl, wBoxMonOT
|
||||
ld bc, NAME_LENGTH
|
||||
ld a, [wBoxCount]
|
||||
dec a
|
||||
jr z, .skip
|
||||
jr z, .skipOTshift ; if the box was empty, there is nothing to shift
|
||||
|
||||
dec a
|
||||
call AddNTimes
|
||||
push hl
|
||||
|
|
@ -2962,7 +2966,7 @@ SendNewMonToBox:
|
|||
ld a, [wBoxCount]
|
||||
dec a
|
||||
ld b, a
|
||||
.loop2
|
||||
.shiftMonOTLoop
|
||||
push bc
|
||||
push hl
|
||||
ld bc, NAME_LENGTH
|
||||
|
|
@ -2974,15 +2978,18 @@ SendNewMonToBox:
|
|||
add hl, bc
|
||||
pop bc
|
||||
dec b
|
||||
jr nz, .loop2
|
||||
.skip
|
||||
jr nz, .shiftMonOTLoop
|
||||
|
||||
.skipOTshift
|
||||
ld hl, wPlayerName
|
||||
ld de, wBoxMonOT
|
||||
ld de, wBoxMon1OT
|
||||
ld bc, NAME_LENGTH
|
||||
call CopyData
|
||||
|
||||
ld a, [wBoxCount]
|
||||
dec a
|
||||
jr z, .skip2
|
||||
jr z, .skipNickShift
|
||||
|
||||
ld hl, wBoxMonNicks
|
||||
ld bc, NAME_LENGTH
|
||||
dec a
|
||||
|
|
@ -2996,7 +3003,7 @@ SendNewMonToBox:
|
|||
ld a, [wBoxCount]
|
||||
dec a
|
||||
ld b, a
|
||||
.loop3
|
||||
.shiftNickLoop
|
||||
push bc
|
||||
push hl
|
||||
ld bc, NAME_LENGTH
|
||||
|
|
@ -3008,21 +3015,24 @@ SendNewMonToBox:
|
|||
add hl, bc
|
||||
pop bc
|
||||
dec b
|
||||
jr nz, .loop3
|
||||
.skip2
|
||||
ld hl, wBoxMonNicks
|
||||
jr nz, .shiftNickLoop
|
||||
|
||||
.skipNickShift
|
||||
ld hl, wBoxMon1Nick
|
||||
ld a, NAME_MON_SCREEN
|
||||
ld [wNamingScreenType], a
|
||||
predef AskName
|
||||
|
||||
ld a, [wBoxCount]
|
||||
dec a
|
||||
jr z, .skip3
|
||||
jr z, .skipMonDataShift
|
||||
|
||||
ld hl, wBoxMons
|
||||
ld bc, wBoxMon2 - wBoxMon1
|
||||
ld bc, BOXMON_STRUCT_LENGTH
|
||||
dec a
|
||||
call AddNTimes
|
||||
push hl
|
||||
ld bc, wBoxMon2 - wBoxMon1
|
||||
ld bc, BOXMON_STRUCT_LENGTH
|
||||
add hl, bc
|
||||
ld d, h
|
||||
ld e, l
|
||||
|
|
@ -3030,20 +3040,21 @@ SendNewMonToBox:
|
|||
ld a, [wBoxCount]
|
||||
dec a
|
||||
ld b, a
|
||||
.loop4
|
||||
.shiftMonDataLoop
|
||||
push bc
|
||||
push hl
|
||||
ld bc, wBoxMon2 - wBoxMon1
|
||||
ld bc, BOXMON_STRUCT_LENGTH
|
||||
call CopyData
|
||||
pop hl
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld bc, wBoxMon1 - wBoxMon2
|
||||
ld bc, -BOXMON_STRUCT_LENGTH
|
||||
add hl, bc
|
||||
pop bc
|
||||
dec b
|
||||
jr nz, .loop4
|
||||
.skip3
|
||||
jr nz, .shiftMonDataLoop
|
||||
|
||||
.skipMonDataShift
|
||||
ld a, [wEnemyMonLevel]
|
||||
ld [wEnemyMonBoxLevel], a
|
||||
ld hl, wEnemyMon
|
||||
|
|
@ -3073,11 +3084,12 @@ SendNewMonToBox:
|
|||
inc de
|
||||
xor a
|
||||
ld b, NUM_STATS * 2
|
||||
.loop5
|
||||
.statLoop
|
||||
ld [de], a
|
||||
inc de
|
||||
dec b
|
||||
jr nz, .loop5
|
||||
jr nz, .statLoop
|
||||
|
||||
ld hl, wEnemyMonDVs
|
||||
ld a, [hli]
|
||||
ld [de], a
|
||||
|
|
@ -3086,12 +3098,12 @@ SendNewMonToBox:
|
|||
ld [de], a
|
||||
ld hl, wEnemyMonPP
|
||||
ld b, NUM_MOVES
|
||||
.loop6
|
||||
.movePPLoop
|
||||
ld a, [hli]
|
||||
inc de
|
||||
ld [de], a
|
||||
dec b
|
||||
jr nz, .loop6
|
||||
jr nz, .movePPLoop
|
||||
ld a, [wCurPartySpecies]
|
||||
cp KADABRA
|
||||
jr nz, .notKadabra
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
CheckIfMoveIsKnown:
|
||||
ld a, [wWhichPokemon]
|
||||
ld hl, wPartyMon1Moves
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld a, [wMoveNum]
|
||||
ld b, a
|
||||
|
|
|
|||
|
|
@ -20,11 +20,11 @@ DisplayTownMap:
|
|||
call PlaceString
|
||||
ld hl, wShadowOAMSprite00
|
||||
ld de, wShadowOAMBackupSprite00
|
||||
ld bc, 4 * 4
|
||||
ld bc, OBJ_SIZE * 4
|
||||
call CopyData
|
||||
ld hl, vSprites tile BIRD_BASE_TILE
|
||||
ld de, TownMapCursor
|
||||
lb bc, BANK(TownMapCursor), (TownMapCursorEnd - TownMapCursor) / $8
|
||||
lb bc, BANK(TownMapCursor), (TownMapCursorEnd - TownMapCursor) / TILE_1BPP_SIZE
|
||||
call CopyVideoDataDouble
|
||||
xor a
|
||||
ld [wWhichTownMapLocation], a
|
||||
|
|
@ -64,7 +64,7 @@ DisplayTownMap:
|
|||
call PlaceString
|
||||
ld hl, wShadowOAMSprite04
|
||||
ld de, wShadowOAMBackupSprite04
|
||||
ld bc, 4 * 4
|
||||
ld bc, OBJ_SIZE * 4
|
||||
call CopyData
|
||||
.inputLoop
|
||||
call TownMapSpriteBlinkingAnimation
|
||||
|
|
@ -159,7 +159,7 @@ LoadTownMap_Fly::
|
|||
call CopyVideoData
|
||||
ld de, TownMapUpArrow
|
||||
ld hl, vChars1 tile $6d
|
||||
lb bc, BANK(TownMapUpArrow), (TownMapUpArrowEnd - TownMapUpArrow) / $8
|
||||
lb bc, BANK(TownMapUpArrow), (TownMapUpArrowEnd - TownMapUpArrow) / TILE_1BPP_SIZE
|
||||
call CopyVideoDataDouble
|
||||
call BuildFlyLocationsList
|
||||
ld hl, wUpdateSpritesEnabled
|
||||
|
|
@ -618,11 +618,11 @@ TownMapSpriteBlinkingAnimation::
|
|||
xor a
|
||||
jr .done
|
||||
.hideSprites
|
||||
ld hl, wShadowOAM
|
||||
ld hl, wShadowOAMSprite00YCoord
|
||||
ld b, OAM_COUNT - 4
|
||||
ld de, $4
|
||||
ld de, OBJ_SIZE
|
||||
.hideSpritesLoop
|
||||
ld [hl], $a0
|
||||
ld [hl], SCREEN_HEIGHT_PX + OAM_Y_OFS
|
||||
add hl, de
|
||||
dec b
|
||||
jr nz, .hideSpritesLoop
|
||||
|
|
|
|||
|
|
@ -679,7 +679,7 @@ TradeCenter_PrintPartyListNames:
|
|||
pop de
|
||||
inc de
|
||||
pop hl
|
||||
ld bc, 20
|
||||
ld bc, SCREEN_WIDTH
|
||||
add hl, bc
|
||||
pop bc
|
||||
inc c
|
||||
|
|
@ -766,9 +766,9 @@ TradeCenter_Trade:
|
|||
call CopyData
|
||||
ld hl, wPartyMon1Species
|
||||
ld a, [wTradingWhichPlayerMon]
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld bc, wPartyMon1OTID - wPartyMon1
|
||||
ld bc, MON_OTID
|
||||
add hl, bc
|
||||
ld a, [hli]
|
||||
ld [wTradedPlayerMonOTID], a
|
||||
|
|
@ -782,9 +782,9 @@ TradeCenter_Trade:
|
|||
call CopyData
|
||||
ld hl, wEnemyMons
|
||||
ld a, [wTradingWhichEnemyMon]
|
||||
ld bc, wEnemyMon2 - wEnemyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld bc, wEnemyMon1OTID - wEnemyMon1
|
||||
ld bc, MON_OTID
|
||||
add hl, bc
|
||||
ld a, [hli]
|
||||
ld [wTradedEnemyMonOTID], a
|
||||
|
|
@ -813,10 +813,10 @@ TradeCenter_Trade:
|
|||
ld [wCurPartySpecies], a
|
||||
ld hl, wEnemyMons
|
||||
ld a, c
|
||||
ld bc, wEnemyMon2 - wEnemyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld de, wLoadedMon
|
||||
ld bc, wEnemyMon2 - wEnemyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call CopyData
|
||||
call AddEnemyMonToPlayerParty
|
||||
ld a, [wPartyCount]
|
||||
|
|
@ -983,5 +983,5 @@ CableClub_DrawHorizontalLine:
|
|||
LoadTrainerInfoTextBoxTiles:
|
||||
ld de, TrainerInfoTextBoxTileGraphics
|
||||
ld hl, vChars2 tile $76
|
||||
lb bc, BANK(TrainerInfoTextBoxTileGraphics), (TrainerInfoTextBoxTileGraphicsEnd - TrainerInfoTextBoxTileGraphics) / $10
|
||||
lb bc, BANK(TrainerInfoTextBoxTileGraphics), (TrainerInfoTextBoxTileGraphicsEnd - TrainerInfoTextBoxTileGraphics) / TILE_SIZE
|
||||
jp CopyVideoData
|
||||
|
|
|
|||
|
|
@ -40,8 +40,8 @@ DisplayTextIDInit::
|
|||
; this is done because when you talk to an NPC, they turn to look your way
|
||||
; the original direction they were facing must be restored after the dialogue is over
|
||||
ld hl, wSprite01StateData1FacingDirection
|
||||
ld c, $0f
|
||||
ld de, $10
|
||||
ld c, NUM_SPRITESTATEDATA_STRUCTS - 1
|
||||
ld de, SPRITESTATEDATA1_LENGTH
|
||||
.spriteFacingDirectionCopyLoop
|
||||
ld a, [hl] ; x#SPRITESTATEDATA1_FACINGDIRECTION
|
||||
inc h
|
||||
|
|
@ -53,7 +53,8 @@ DisplayTextIDInit::
|
|||
; loop to force all the sprites in the middle of animation to stand still
|
||||
; (so that they don't like they're frozen mid-step during the dialogue)
|
||||
ld hl, wSpritePlayerStateData1ImageIndex
|
||||
ld de, $10
|
||||
ld de, SPRITESTATEDATA1_LENGTH
|
||||
ASSERT NUM_SPRITESTATEDATA_STRUCTS == SPRITESTATEDATA1_LENGTH
|
||||
ld c, e
|
||||
.spriteStandStillLoop
|
||||
ld a, [hl]
|
||||
|
|
|
|||
|
|
@ -239,11 +239,11 @@ DisplayNamingScreen:
|
|||
cp NAME_MON_SCREEN
|
||||
jr nc, .checkMonNameLength
|
||||
ld a, [wNamingScreenNameLength]
|
||||
cp $7 ; max length of player/rival names
|
||||
cp PLAYER_NAME_LENGTH - 1
|
||||
jr .checkNameLength
|
||||
.checkMonNameLength
|
||||
ld a, [wNamingScreenNameLength]
|
||||
cp $a ; max length of pokemon nicknames
|
||||
cp NAME_LENGTH - 1
|
||||
.checkNameLength
|
||||
jr c, .addLetter
|
||||
ret
|
||||
|
|
@ -394,12 +394,13 @@ PrintNicknameAndUnderscores:
|
|||
hlcoord 10, 3
|
||||
ld a, [wNamingScreenType]
|
||||
cp NAME_MON_SCREEN
|
||||
jr nc, .pokemon1
|
||||
ld b, 7 ; player or rival max name length
|
||||
jr .playerOrRival1
|
||||
.pokemon1
|
||||
ld b, 10 ; pokemon max name length
|
||||
.playerOrRival1
|
||||
jr nc, .pokemon
|
||||
; player or rival
|
||||
ld b, PLAYER_NAME_LENGTH - 1
|
||||
jr .gotUnderscoreCount
|
||||
.pokemon
|
||||
ld b, NAME_LENGTH - 1
|
||||
.gotUnderscoreCount
|
||||
ld a, $76 ; underscore tile id
|
||||
.placeUnderscoreLoop
|
||||
ld [hli], a
|
||||
|
|
@ -409,13 +410,15 @@ PrintNicknameAndUnderscores:
|
|||
cp NAME_MON_SCREEN
|
||||
ld a, [wNamingScreenNameLength]
|
||||
jr nc, .pokemon2
|
||||
cp 7 ; player or rival max name length
|
||||
jr .playerOrRival2
|
||||
; player or rival
|
||||
cp PLAYER_NAME_LENGTH - 1
|
||||
jr .checkEmptySpaces
|
||||
.pokemon2
|
||||
cp 10 ; pokemon max name length
|
||||
.playerOrRival2
|
||||
jr nz, .emptySpacesRemaining
|
||||
; when all spaces are filled, force the cursor onto the ED tile
|
||||
cp NAME_LENGTH - 1
|
||||
.checkEmptySpaces
|
||||
jr nz, .placeRaisedUnderscore ; jump if empty spaces remain
|
||||
; when all spaces are filled, force the cursor onto the ED tile,
|
||||
; and keep the last underscore raised
|
||||
call EraseMenuCursor
|
||||
ld a, $11 ; "ED" x coord
|
||||
ld [wTopMenuItemX], a
|
||||
|
|
@ -423,11 +426,10 @@ PrintNicknameAndUnderscores:
|
|||
ld [wCurrentMenuItem], a
|
||||
ld a, [wNamingScreenType]
|
||||
cp NAME_MON_SCREEN
|
||||
ld a, 9 ; keep the last underscore raised
|
||||
jr nc, .pokemon3
|
||||
ld a, 6 ; keep the last underscore raised
|
||||
.pokemon3
|
||||
.emptySpacesRemaining
|
||||
ld a, NAME_LENGTH - 2
|
||||
jr nc, .placeRaisedUnderscore
|
||||
ld a, PLAYER_NAME_LENGTH - 2
|
||||
.placeRaisedUnderscore
|
||||
ld c, a
|
||||
ld b, $0
|
||||
hlcoord 10, 3
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user