Merge with master

This commit is contained in:
DizzyEggg
2019-08-14 11:48:08 +02:00
96 changed files with 4081 additions and 6854 deletions

2
.gitattributes vendored
View File

@@ -1,5 +1,5 @@
*.pal text eol=crlf
*.sh text eol=lf
*.s text eol=lf
*.txt text eol=lf
Makefile text eol=lf

View File

@@ -9,6 +9,8 @@ open(my $file, $ARGV[0])
my $src = 0;
my $asm = 0;
my $srcdata = 0;
my $data = 0;
while (my $line = <$file>)
{
if ($line =~ /^ \.(\w+)\s+0x[0-9a-f]+\s+(0x[0-9a-f]+) (\w+)\/.+\.o/)
@@ -28,9 +30,22 @@ while (my $line = <$file>)
$asm += $size;
}
}
elsif ($section =~ /rodata/)
{
if ($dir eq 'src')
{
$srcdata += $size;
}
elsif ($dir eq 'data')
{
$data += $size;
}
}
}
}
(my $elffname = $ARGV[0]) =~ s/\.map/.elf/;
# Note that the grep filters out all branch labels. It also requires a minimum
# line length of 5, to filter out a ton of generated symbols (like AcCn). No
# settings to nm seem to remove these symbols. Finally, nm prints out a separate
@@ -40,7 +55,7 @@ while (my $line = <$file>)
#
# You'd expect this to take a while, because of uniq. It runs in under a second,
# though. Uniq is pretty fast!
my $base_cmd = "nm pokeemerald.elf | awk '{print \$3}' | grep '^[^_].\\{4\\}' | uniq";
my $base_cmd = "nm $elffname | awk '{print \$3}' | grep '^[^_].\\{4\\}' | uniq";
# This looks for Unknown_, Unknown_, or sub_, followed by just numbers. Note that
# it matches even if stuff precedes the unknown, like sUnknown/gUnknown.
@@ -118,3 +133,11 @@ print "$total_syms total symbols\n";
print "$documented symbols documented ($docPct%)\n";
print "$partial_documented symbols partially documented ($partialPct%)\n";
print "$undocumented symbols undocumented ($undocPct%)\n";
print "\n";
my $dataTotal = $srcdata + $data;
my $srcDataPct = sprintf("%.4f", 100 * $srcdata / $dataTotal);
my $dataPct = sprintf("%.4f", 100 * $data / $dataTotal);
print "$dataTotal total bytes of data\n";
print "$srcdata bytes of data in src ($srcDataPct%)\n";
print "$data bytes of data in data ($dataPct%)\n";

View File

@@ -1,116 +1,90 @@
Follow the OS-specific instructions below.
# Prerequisites
# Linux
| Linux | macOS | Windows 10 (build 18917+) | Windows 10 (1709+) | Windows Vista, 7, 8, 8.1, and 10 (1507, 1511, 1607, and 1703)
| ----- | ----- | ------------------------- | ------------------ | ---------------------------------------------------------
| none | [Xcode Command Line Tools package][xcode] | [Windows Subsystem for Linux 2][wsl2] | [Windows Subsystem for Linux][wsl] | MSYS2 (see below)
Install [**devkitARM**](http://devkitpro.org/wiki/Getting_Started/devkitARM).
[xcode]: https://developer.apple.com/library/archive/technotes/tn2339/_index.html#//apple_ref/doc/uid/DTS40014588-CH1-DOWNLOADING_COMMAND_LINE_TOOLS_IS_NOT_AVAILABLE_IN_XCODE_FOR_MACOS_10_9__HOW_CAN_I_INSTALL_THEM_ON_MY_MACHINE_
[wsl2]: https://docs.microsoft.com/windows/wsl/wsl2-install
[wsl]: https://docs.microsoft.com/windows/wsl/install-win10
Make sure that there is an environment variable called DEVKITARM with the path of the directory before the "bin" directory containing "arm-none-eabi-as", "arm-none-eabi-cpp", "arm-none-eabi-ld" and "arm-none-eabi-objcopy".
The [prerelease version of the Linux subsystem](https://docs.microsoft.com/windows/wsl/install-legacy) available in the 1607 and 1703 releases of Windows 10 is obsolete so consider uninstalling it.
Then get the compiler from https://github.com/pret/agbcc and run the following commands.
Make sure that the `build-essential`, `git`, and `libpng-dev` packages are installed. The `build-essential` package includes the `make`, `gcc-core`, and `g++` packages so they do not have to be obtained separately. MSYS2 does not include `libpng-dev` so it must be built from source.
```
./build.sh
./install.sh PATH_OF_POKEEMERALD_DIRECTORY
```
Install the **devkitARM** toolchain of [devkitPro](https://devkitpro.org/wiki/Getting_Started) and add its environment variables. For Windows versions without the Linux subsystem, the devkitPro [graphical installer](https://github.com/devkitPro/installer/releases) includes a preconfigured MSYS2 environment, thus the steps below are not required.
Finally, build the rom.
```
make
```
# Windows
Install [**devkitARM**](http://devkitpro.org/wiki/Getting_Started/devkitARM).
Then get the compiled tools from https://github.com/pret/pokeruby-tools. Copy the `tools/` folder over the `tools/` folder in your pokeemerald directory.
You can then build pokeemerald using `make` in the MSYS environment provided with devkitARM.
# Mac
Installing pokeemerald on a Mac requires macOS >= 10.12 (Sierra or higher).
Download a [devkitPRO pacman](https://github.com/devkitPro/pacman/releases/tag/v1.0.0)
Run the following commands in Terminal:
export DEVKITPRO=/opt/devkitpro
echo "export DEVKITPRO=$DEVKITPRO" >> ~/.bashrc
export DEVKITARM=$DEVKITPRO/devkitARM
echo "export DEVKITARM=$DEVKITARM" >> ~/.bashrc
```
xcode-select --install
# Installation
sudo dkp-pacman -S devkitARM
To set up the repository:
export DEVKITPRO=/opt/devkitpro
echo "export DEVKITPRO=$DEVKITPRO" >> ~/.bashrc
export DEVKITARM=$DEVKITPRO/devkitARM
echo "export DEVKITARM=$DEVKITARM" >> ~/.bashrc
echo "if [ -f ~/.bashrc ]; then . ~/.bashrc; fi" >> ~/.bash_profile
git clone https://github.com/pret/pokeemerald
git clone https://github.com/pret/agbcc
git clone https://github.com/pret/pokeemerald
git clone https://github.com/pret/agbcc
cd ./agbcc
./build.sh
./install.sh ../pokeemerald
cd agbcc/
./build.sh
./install.sh ../pokeemerald
cd ../pokeemerald
cd ../pokeemerald
./build_tools.sh
```
To build **pokeemerald.gba** and confirm it matches the official ROM image:
And build the ROM with `make`.
make compare
If the step `./build.sh` in the above list of commands fails with the error `Makefile:1: /opt/devkitpro/devkitARM/base_tools: No such file or directory`, then try installing the pacman package `devkitarm-rules` by executing the command
## Notes
```
sudo dkp-pacman -S devkitarm-rules
```
* If the base tools are not found on macOS in new Terminal sessions after the first successful build, run `echo "if [ -f ~/.bashrc ]; then . ~/.bashrc; fi" >> ~/.bash_profile` once to prevent the issue from occurring again. Verify that the `devkitarm-rules` package is installed as well; if not, install it by running `sudo dkp-pacman -S devkitarm-rules`.
Executing `./build.sh` again should now succeed.
* If the repository was previously set up using Cygwin, delete the `.exe` files in the subfolders of the `tools` folder except for `agbcc` and try building again. [Learn the differences between MSYS2 and Cygwin.](https://github.com/msys2/msys2/wiki/How-does-MSYS2-differ-from-Cygwin)
# Faster builds
# Guidance
After the first build, subsequent builds are faster. You can further speed up the build:
To build **pokeemerald.gba** with your changes:
## Parallel build
make
This significantly speeds up the build on modern machines.
## Parallel builds
By default `make` only runs a single thread. You can tell `make` to run on multiple threads with `make -j`. See the manfile for usage (`man make`).
See [the GNU docs](https://www.gnu.org/software/make/manual/html_node/Parallel.html) and [this Stack Exchange thread](https://unix.stackexchange.com/questions/208568) for more information.
The optimal value for `-j` is the number of logical cores on your machine. You can run `nproc` to see the exact number.
To speed up building, run:
```
$ nproc
8
```
make -j$(nproc)
If you have 8 cores, run: `make -j8`
`nproc` is not available on macOS. The alternative is `sysctl -n hw.ncpu` ([relevant Stack Overflow thread](https://stackoverflow.com/questions/1715580)).
`-j` on its own will spawn a new thread for each job. A clean build will have thousands of jobs, which will be slower than not using -j at all.
## Building without dependency scanning
## Disable the dependency scanning
If only `.c` or `.s` files were changed, turn off the dependency scanning temporarily. Changes to any other files will be ignored and the build will either fail or not reflect those changes.
If you've only changed `.c` or `.s` files, you can turn off the dependency scanning temporarily. Changes to any other files will be ignored, and the build will either fail or not reflect those changes.
make NODEP=1
`make NODEP=1`
## Building with devkitARM's C compiler
# Building with devkitARM's C compiler
This project supports the `arm-none-eabi-gcc` compiler included with devkitARM r52. To build this target, simply run:
This project supports the `arm-none-eabi-gcc` compiler which ships with devkitARM r52. To build this target, simply run:
make modern
make modern
## Building with other toolchains
# Building with your own toolchain
To build using a toolchain other than devkitARM, override the `TOOLCHAIN` environment variable with the path to your toolchain, which must contain the subdirectory `bin`.
To build Pokemon Emerald with a toolchain other than devkitARM, override the `TOOLCHAIN` environment variable with the path to your toolchain. Example:
make TOOLCHAIN="/path/to/toolchain/here"
make compare TOOLCHAIN=/usr/local/arm-none-eabi
The following is an example:
The path you pass to the `TOOLCHAIN` variable must contain the subdirectory `bin`. If you compile the `modern` target with this toolchain, the subdirectories `lib`, `include`, and `arm-none-eabi` must also be present.
make TOOLCHAIN="/usr/local/arm-none-eabi"
# Building with debug info
To compile the `modern` target with this toolchain, the subdirectories `lib`, `include`, and `arm-none-eabi` must also be present.
To build the ELF file with enhanced debug info, use the `DINFO` variable:
## Building with debug info
make compare DINFO=1
To build **pokeemerald.elf** with enhanced debug info, use the `DINFO` variable.
make DINFO=1

View File

@@ -1,4 +1,17 @@
TOOLCHAIN := $(DEVKITARM)
ifeq ($(CC),)
HOSTCC := gcc
else
HOSTCC := $(CC)
endif
ifeq ($(CXX),)
HOSTCXX := g++
else
HOSTCXX := $(CXX)
endif
ifneq (,$(wildcard $(TOOLCHAIN)/base_tools))
include $(TOOLCHAIN)/base_tools
else
@@ -136,7 +149,7 @@ all: rom
tools: $(TOOLDIRS)
$(TOOLDIRS):
@$(MAKE) -C $@
@$(MAKE) -C $@ CC=$(HOSTCC) CXX=$(HOSTCXX)
rom: $(ROM)
@@ -165,6 +178,10 @@ ifeq ($(MODERN),0)
@$(MAKE) tidy MODERN=1
endif
ifneq ($(MODERN),0)
$(C_BUILDDIR)/berry_crush.o: override CFLAGS += -Wno-address-of-packed-member
endif
include graphics_file_rules.mk
include map_data_rules.mk
include spritesheet_rules.mk

View File

@@ -2,37 +2,35 @@
[![Build Status][travis-badge]][travis]
This is a disassembly of Pokémon Emerald.
[travis]: https://travis-ci.org/pret/pokeemerald
[travis-badge]: https://travis-ci.org/pret/pokeemerald.svg?branch=master
It builds the following rom:
This is a decompilation of Pokémon Emerald.
* pokeemerald.gba `sha1: f3ae088181bf583e55daf962a92bb46f4f1d07b7`
It builds the following ROM:
* [**pokeemerald.gba**](https://datomatic.no-intro.org/index.php?page=show_record&s=23&n=1961) `sha1: f3ae088181bf583e55daf962a92bb46f4f1d07b7`
To set up the repository, see [INSTALL.md](INSTALL.md).
## See also
* Disassembly of [**Pokémon Red/Blue**][pokered]
* Disassembly of [**Pokémon Yellow**][pokeyellow]
* Disassembly of [**Pokémon Gold**][pokegold]
* Disassembly of [**Pokémon Crystal**][pokecrystal]
* Disassembly of [**Pokémon Pinball**][pokepinball]
* Disassembly of [**Pokémon TCG**][poketcg]
* Disassembly of [**Pokémon Ruby**][pokeruby]
* Disassembly of [**Pokémon Fire Red**][pokefirered]
* Discord: [**pret**][Discord]
* irc: **irc.freenode.net** [**#pret**][irc]
Other disassembly and/or decompilation projects:
* [**Pokémon Red and Blue**](https://github.com/pret/pokered)
* [**Pokémon Gold and Silver (Space World '97 demo)**](https://github.com/pret/pokegold-spaceworld)
* [**Pokémon Yellow**](https://github.com/pret/pokeyellow)
* [**Pokémon Trading Card Game**](https://github.com/pret/poketcg)
* [**Pokémon Pinball**](https://github.com/pret/pokepinball)
* [**Pokémon Stadium**](https://github.com/pret/pokestadium)
* [**Pokémon Gold and Silver**](https://github.com/pret/pokegold)
* [**Pokémon Crystal**](https://github.com/pret/pokecrystal)
* [**Pokémon Ruby and Sapphire**](https://github.com/pret/pokeruby)
* [**Pokémon Pinball: Ruby & Sapphire**](https://github.com/pret/pokepinballrs)
* [**Pokémon FireRed and LeafGreen**](https://github.com/pret/pokefirered)
* [**Pokémon Mystery Dungeon: Red Rescue Team**](https://github.com/pret/pmd-red)
[pokered]: https://github.com/pret/pokered
[pokeyellow]: https://github.com/pret/pokeyellow
[pokegold]: https://github.com/pret/pokegold
[pokecrystal]: https://github.com/pret/pokecrystal
[pokepinball]: https://github.com/pret/pokepinball
[poketcg]: https://github.com/pret/poketcg
[pokeruby]: https://github.com/pret/pokeruby
[pokefirered]: https://github.com/pret/pokefirered
[Discord]: https://discord.gg/6EuWgX9
[irc]: https://kiwiirc.com/client/irc.freenode.net/?#pret
[travis]: https://travis-ci.org/pret/pokeemerald
[travis-badge]: https://travis-ci.org/pret/pokeemerald.svg?branch=master
## Contacts
You can find us on [Discord](https://discord.gg/6EuWgX9) and [IRC](https://kiwiirc.com/client/irc.freenode.net/?#pret).

View File

@@ -5,9 +5,6 @@
.text
thumb_func_start sub_8021A28
sub_8021A28: @ 8021A28
push {r4-r7,lr}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1118,7 +1118,7 @@ EverGrandeCity_HallOfFame_EventScript_2717C1:: @ 82717C1
call_if_unset FLAG_RECEIVED_BELDUM, EverGrandeCity_HallOfFame_EventScript_27183F
setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_BEDROOM
setflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_BEDROOM
compare VAR_0x40D3, 0
compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 0
call_if_eq EverGrandeCity_HallOfFame_EventScript_271851
return
@@ -1145,7 +1145,7 @@ EverGrandeCity_HallOfFame_EventScript_271843:: @ 8271843
return
EverGrandeCity_HallOfFame_EventScript_271851:: @ 8271851
setvar VAR_0x40D3, 1
setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1
return
EventScript_WhiteOut:: @ 8271857

View File

@@ -52,7 +52,7 @@ CaveOfOrigin_B1F_EventScript_23584D:: @ 823584D
playse SE_KAIDAN
fadescreenspeed 1, 4
setflag FLAG_WALLACE_GOES_TO_SKY_PILLAR
setvar VAR_RAYQUAZA_STATE, 3
setvar VAR_SOOTOPOLIS_CITY_STATE, 3
removeobject 1
clearflag FLAG_HIDE_SKY_PILLAR_WALLACE
fadescreen 0

View File

@@ -138,7 +138,7 @@ DewfordTown_EventScript_1E9660:: @ 81E9660
clearflag FLAG_HIDE_ROUTE_104_MR_BRINEY_BOAT
setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD_TOWN
hideobjectat 4, MAP_DEWFORD_TOWN
setvar VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE, 2
setvar VAR_BOARD_BRINEY_BOAT_STATE, 2
resetobjectpriority EVENT_OBJ_ID_PLAYER, MAP_DEWFORD_TOWN
warp MAP_ROUTE104_MR_BRINEYS_HOUSE, 255, 5, 4
copyvar VAR_BRINEY_LOCATION, VAR_0x8008

View File

@@ -9,9 +9,9 @@ LavaridgeTown_OnTransition: @ 81EA4DE
call_if_set FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, LavaridgeTown_EventScript_1EA53F
call Common_EventScript_SetupRivalGender
call Common_EventScript_SetupRivalOnBikeGender
compare VAR_LAVARIDGE_RIVAL_STATE, 1
compare VAR_LAVARIDGE_TOWN_STATE, 1
call_if_eq LavaridgeTown_EventScript_1EA518
compare VAR_LAVARIDGE_RIVAL_STATE, 1
compare VAR_LAVARIDGE_TOWN_STATE, 1
call_if_eq LavaridgeTown_EventScript_1EA543
end
@@ -41,7 +41,7 @@ LavaridgeTown_EventScript_1EA543:: @ 81EA543
return
LavaridgeTown_MapScript2_1EA547: @ 81EA547
map_script_2 VAR_LAVARIDGE_RIVAL_STATE, 1, LavaridgeTown_EventScript_1EA551
map_script_2 VAR_LAVARIDGE_TOWN_STATE, 1, LavaridgeTown_EventScript_1EA551
.2byte 0
LavaridgeTown_EventScript_1EA551:: @ 81EA551
@@ -94,7 +94,7 @@ LavaridgeTown_EventScript_1EA5FF:: @ 81EA5FF
compare VAR_0x8008, 9
call_if_ne LavaridgeTown_EventScript_1EA6C9
removeobject 7
setvar VAR_LAVARIDGE_RIVAL_STATE, 2
setvar VAR_LAVARIDGE_TOWN_STATE, 2
clearflag FLAG_HIDE_MAP_NAME_POPUP
savebgm MUS_DUMMY
fadedefaultbgm

View File

@@ -82,7 +82,7 @@ LavaridgeTown_Gym_1F_EventScript_1FE7C1:: @ 81FE7C1
setvar VAR_0x8008, 4
call LavaridgeTown_Gym_1F_EventScript_271F43
setflag FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WALLY
setvar VAR_LAVARIDGE_RIVAL_STATE, 1
setvar VAR_LAVARIDGE_TOWN_STATE, 1
call LavaridgeTown_Gym_1F_EventScript_1FE841
closemessage
delay 30

View File

@@ -3,9 +3,9 @@ LilycoveCity_DepartmentStore_5F_MapScripts:: @ 821FF7A
.byte 0
LilycoveCity_DepartmentStore_5F_MapScript2_21FF80: @ 821FF80
map_script_2 VAR_RAYQUAZA_STATE, 1, LilycoveCity_DepartmentStore_5F_EventScript_21FF9A
map_script_2 VAR_RAYQUAZA_STATE, 2, LilycoveCity_DepartmentStore_5F_EventScript_21FF9A
map_script_2 VAR_RAYQUAZA_STATE, 3, LilycoveCity_DepartmentStore_5F_EventScript_21FF9A
map_script_2 VAR_SOOTOPOLIS_CITY_STATE, 1, LilycoveCity_DepartmentStore_5F_EventScript_21FF9A
map_script_2 VAR_SOOTOPOLIS_CITY_STATE, 2, LilycoveCity_DepartmentStore_5F_EventScript_21FF9A
map_script_2 VAR_SOOTOPOLIS_CITY_STATE, 3, LilycoveCity_DepartmentStore_5F_EventScript_21FF9A
.2byte 0
LilycoveCity_DepartmentStore_5F_EventScript_21FF9A:: @ 821FF9A
@@ -125,9 +125,9 @@ LilycoveCity_DepartmentStore_5F_EventScript_220075:: @ 8220075
lockall
applymovement 7, Common_Movement_FacePlayer
waitmovement 0
compare VAR_RAYQUAZA_STATE, 0
compare VAR_SOOTOPOLIS_CITY_STATE, 0
goto_if_eq LilycoveCity_DepartmentStore_5F_EventScript_22009C
compare VAR_RAYQUAZA_STATE, 4
compare VAR_SOOTOPOLIS_CITY_STATE, 4
goto_if_ge LilycoveCity_DepartmentStore_5F_EventScript_22009C
goto LilycoveCity_DepartmentStore_5F_EventScript_2200A7
end

View File

@@ -154,7 +154,7 @@
"x": 10,
"y": 1,
"elevation": 3,
"var": "VAR_0x4050",
"var": "VAR_LITTLEROOT_TOWN_STATE",
"var_value": "0",
"script": "LittlerootTown_EventScript_1E8091"
},
@@ -163,7 +163,7 @@
"x": 11,
"y": 1,
"elevation": 3,
"var": "VAR_0x4050",
"var": "VAR_LITTLEROOT_TOWN_STATE",
"var_value": "0",
"script": "LittlerootTown_EventScript_1E80EF"
},
@@ -172,7 +172,7 @@
"x": 11,
"y": 1,
"elevation": 3,
"var": "VAR_0x4050",
"var": "VAR_LITTLEROOT_TOWN_STATE",
"var_value": "1",
"script": "LittlerootTown_EventScript_1E811F"
},
@@ -181,7 +181,7 @@
"x": 8,
"y": 9,
"elevation": 3,
"var": "VAR_0x4050",
"var": "VAR_LITTLEROOT_TOWN_STATE",
"var_value": "3",
"script": "LittlerootTown_EventScript_1E81F9"
},
@@ -190,7 +190,7 @@
"x": 9,
"y": 9,
"elevation": 3,
"var": "VAR_0x4050",
"var": "VAR_LITTLEROOT_TOWN_STATE",
"var_value": "3",
"script": "LittlerootTown_EventScript_1E8205"
},
@@ -199,7 +199,7 @@
"x": 10,
"y": 9,
"elevation": 3,
"var": "VAR_0x4050",
"var": "VAR_LITTLEROOT_TOWN_STATE",
"var_value": "3",
"script": "LittlerootTown_EventScript_1E81E1"
},
@@ -208,7 +208,7 @@
"x": 11,
"y": 9,
"elevation": 3,
"var": "VAR_0x4050",
"var": "VAR_LITTLEROOT_TOWN_STATE",
"var_value": "3",
"script": "LittlerootTown_EventScript_1E81ED"
},
@@ -217,7 +217,7 @@
"x": 10,
"y": 2,
"elevation": 3,
"var": "VAR_0x4050",
"var": "VAR_LITTLEROOT_TOWN_STATE",
"var_value": "3",
"script": "LittlerootTown_EventScript_1E81BB"
},
@@ -226,7 +226,7 @@
"x": 11,
"y": 2,
"elevation": 3,
"var": "VAR_0x4050",
"var": "VAR_LITTLEROOT_TOWN_STATE",
"var_value": "3",
"script": "LittlerootTown_EventScript_1E81CE"
}
@@ -265,4 +265,4 @@
"script": "LittlerootTown_EventScript_1E818F"
}
]
}
}

View File

@@ -10,24 +10,24 @@ LittlerootTown_MapScript1_1E7DDB: @ 81E7DDB
compare VAR_LITTLEROOT_INTRO_STATE, 2
call_if_eq LittlerootTown_EventScript_1E7E67
call_if_unset FLAG_RESCUED_BIRCH, LittlerootTown_EventScript_1E7E6F
compare VAR_0x4050, 3
compare VAR_LITTLEROOT_TOWN_STATE, 3
call_if_eq LittlerootTown_EventScript_1E7E92
compare VAR_LITTLEROOT_HOUSES_STATE, 4
call_if_eq LittlerootTown_EventScript_1E7E5C
compare VAR_LITTLEROOT_HOUSES_STATE_2, 4
call_if_eq LittlerootTown_EventScript_1E7E5C
compare VAR_OLDALE_STATE, 1
compare VAR_OLDALE_RIVAL_STATE, 1
call_if_eq LittlerootTown_EventScript_1E7E53
compare VAR_LITTLEROOT_RIVAL_STATE, 3
call_if_eq LittlerootTown_EventScript_1E7E4F
compare VAR_0x40D3, 1
compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1
call_if_eq LittlerootTown_EventScript_1E7E4B
compare VAR_0x40D3, 2
compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2
call_if_eq LittlerootTown_EventScript_1E7E45
end
LittlerootTown_EventScript_1E7E45:: @ 81E7E45
setvar VAR_0x40D3, 3
setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 3
return
LittlerootTown_EventScript_1E7E4B:: @ 81E7E4B
@@ -39,7 +39,7 @@ LittlerootTown_EventScript_1E7E4F:: @ 81E7E4F
return
LittlerootTown_EventScript_1E7E53:: @ 81E7E53
setvar VAR_OLDALE_STATE, 2
setvar VAR_OLDALE_RIVAL_STATE, 2
setflag FLAG_HIDE_OLDALE_TOWN_RIVAL
return
@@ -53,7 +53,7 @@ LittlerootTown_EventScript_1E7E67:: @ 81E7E67
return
LittlerootTown_EventScript_1E7E6F:: @ 81E7E6F
compare VAR_0x4050, 0
compare VAR_LITTLEROOT_TOWN_STATE, 0
goto_if_eq LittlerootTown_EventScript_1E7E86
setobjectxyperm 1, 10, 1
setobjectmovementtype 1, MOVEMENT_TYPE_FACE_UP
@@ -85,7 +85,7 @@ LittlerootTown_EventScript_1E7EB9:: @ 81E7EB9
LittlerootTown_MapScript2_1E7EC1: @ 81E7EC1
map_script_2 VAR_LITTLEROOT_INTRO_STATE, 1, LittlerootTown_EventScript_1E7EDB
map_script_2 VAR_LITTLEROOT_INTRO_STATE, 2, LittlerootTown_EventScript_1E7EF9
map_script_2 VAR_0x40D3, 1, LittlerootTown_EventScript_1E7FB1
map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1, LittlerootTown_EventScript_1E7FB1
.2byte 0
LittlerootTown_EventScript_1E7EDB:: @ 81E7EDB
@@ -201,7 +201,7 @@ LittlerootTown_EventScript_1E7FB1:: @ 81E7FB1
end
LittlerootTown_MapScript2_1E7FE2: @ 81E7FE2
map_script_2 VAR_0x40D3, 1, LittlerootTown_EventScript_1E7FEC
map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1, LittlerootTown_EventScript_1E7FEC
.2byte 0
LittlerootTown_EventScript_1E7FEC:: @ 81E7FEC
@@ -236,7 +236,7 @@ LittlerootTown_EventScript_1E8034:: @ 81E8034
faceplayer
goto_if_set FLAG_ADVENTURE_STARTED, LittlerootTown_EventScript_1E8087
goto_if_set FLAG_RESCUED_BIRCH, LittlerootTown_EventScript_1E807A
compare VAR_0x4050, 0
compare VAR_LITTLEROOT_TOWN_STATE, 0
goto_if_ne LittlerootTown_EventScript_1E805D
msgbox LittlerootTown_Text_1E8BB8, MSGBOX_DEFAULT
release
@@ -248,7 +248,7 @@ LittlerootTown_EventScript_1E805D:: @ 81E805D
closemessage
applymovement 1, Common_Movement_FaceOriginalDirection
waitmovement 0
setvar VAR_0x4050, 2
setvar VAR_LITTLEROOT_TOWN_STATE, 2
release
end
@@ -366,7 +366,7 @@ LittlerootTown_EventScript_1E811F:: @ 81E811F
closemessage
applymovement 1, Common_Movement_FaceOriginalDirection
waitmovement 0
setvar VAR_0x4050, 2
setvar VAR_LITTLEROOT_TOWN_STATE, 2
releaseall
end
@@ -909,7 +909,7 @@ LittlerootTown_EventScript_1E863D:: @ 81E863D
LittlerootTown_EventScript_1E8686:: @ 81E8686
removeobject 4
setflag FLAG_SYS_B_DASH
setvar VAR_0x4050, 4
setvar VAR_LITTLEROOT_TOWN_STATE, 4
release
end

View File

@@ -174,7 +174,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_1F78E2:: @ 81F78E2
clearflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_BEDROOM
delay 30
setvar VAR_LITTLEROOT_RIVAL_STATE, 3
setvar VAR_0x4050, 1
setvar VAR_LITTLEROOT_TOWN_STATE, 1
savebgm MUS_DUMMY
fadedefaultbgm
releaseall

View File

@@ -24,7 +24,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_1F8433:: @ 81F8433
checkplayergender
compare VAR_RESULT, 0
goto_if_eq LittlerootTown_BrendansHouse_2F_EventScript_1F8456
compare VAR_0x40D3, 2
compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2
goto_if_ge LittlerootTown_BrendansHouse_2F_EventScript_1F9309
setobjectxyperm 1, 0, 2
setobjectmovementtype 1, MOVEMENT_TYPE_FACE_UP
@@ -84,7 +84,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_1F8497:: @ 81F8497
setvar VAR_LITTLEROOT_RIVAL_STATE, 3
setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F_POKE_BALL
clearflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_BEDROOM
setvar VAR_0x4050, 1
setvar VAR_LITTLEROOT_TOWN_STATE, 1
savebgm MUS_DUMMY
fadedefaultbgm
releaseall

View File

@@ -211,7 +211,7 @@ LittlerootTown_MaysHouse_1F_EventScript_1F8A8B:: @ 81F8A8B
clearflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_BEDROOM
delay 30
setvar VAR_LITTLEROOT_RIVAL_STATE, 3
setvar VAR_0x4050, 1
setvar VAR_LITTLEROOT_TOWN_STATE, 1
savebgm MUS_DUMMY
fadedefaultbgm
releaseall

View File

@@ -24,7 +24,7 @@ LittlerootTown_MaysHouse_2F_EventScript_1F92E6:: @ 81F92E6
checkplayergender
compare VAR_RESULT, 1
goto_if_eq LittlerootTown_MaysHouse_2F_EventScript_1F9309
compare VAR_0x40D3, 2
compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2
goto_if_ge LittlerootTown_MaysHouse_2F_EventScript_1F9309
setobjectxyperm 1, 8, 2
setobjectmovementtype 1, MOVEMENT_TYPE_FACE_UP
@@ -85,7 +85,7 @@ LittlerootTown_MaysHouse_2F_EventScript_1F934A:: @ 81F934A
setvar VAR_LITTLEROOT_RIVAL_STATE, 3
setflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_2F_POKE_BALL
clearflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_BEDROOM
setvar VAR_0x4050, 1
setvar VAR_LITTLEROOT_TOWN_STATE, 1
savebgm MUS_DUMMY
fadedefaultbgm
releaseall

View File

@@ -7,11 +7,11 @@ LittlerootTown_ProfessorBirchsLab_MapScripts:: @ 81F9C91
LittlerootTown_ProfessorBirchsLab_MapScript1_1F9CA1: @ 81F9CA1
call Common_EventScript_SetupRivalGender
call LittlerootTown_ProfessorBirchsLab_EventScript_2720AD
compare VAR_0x40D3, 6
compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6
goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_1F9CF7
compare VAR_0x40D3, 4
compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 4
goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_1F9CF3
compare VAR_0x40D3, 3
compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 3
goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_1F9CCD
end
@@ -24,7 +24,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9CCD:: @ 81F9CCD
end
LittlerootTown_ProfessorBirchsLab_EventScript_1F9CE9:: @ 81F9CE9
setvar VAR_0x40D3, 4
setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 4
goto LittlerootTown_ProfessorBirchsLab_EventScript_1F9CF3
LittlerootTown_ProfessorBirchsLab_EventScript_1F9CF3:: @ 81F9CF3
@@ -39,12 +39,12 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9CF7:: @ 81F9CF7
LittlerootTown_ProfessorBirchsLab_MapScript2_1F9D06: @ 81F9D06
map_script_2 VAR_BIRCH_LAB_STATE, 2, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D40
map_script_2 VAR_0x40D3, 1, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D45
map_script_2 VAR_0x40D3, 2, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D45
map_script_2 VAR_0x40D3, 3, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D71
map_script_2 VAR_0x40D3, 6, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D71
map_script_2 VAR_0x40D3, 4, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D75
map_script_2 VAR_0x40D3, 5, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D75
map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D45
map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D45
map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 3, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D71
map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D71
map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 4, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D75
map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 5, LittlerootTown_ProfessorBirchsLab_EventScript_1F9D75
.2byte 0
LittlerootTown_ProfessorBirchsLab_EventScript_1F9D40:: @ 81F9D40
@@ -87,8 +87,8 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9D75:: @ 81F9D75
LittlerootTown_ProfessorBirchsLab_MapScript2_1F9DB9: @ 81F9DB9
map_script_2 VAR_BIRCH_LAB_STATE, 2, LittlerootTown_ProfessorBirchsLab_EventScript_1F9DDB
map_script_2 VAR_BIRCH_LAB_STATE, 4, LittlerootTown_ProfessorBirchsLab_EventScript_1F9E67
map_script_2 VAR_0x40D3, 1, LittlerootTown_ProfessorBirchsLab_EventScript_1F9E80
map_script_2 VAR_0x40D3, 4, LittlerootTown_ProfessorBirchsLab_EventScript_1F9F62
map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1, LittlerootTown_ProfessorBirchsLab_EventScript_1F9E80
map_script_2 VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 4, LittlerootTown_ProfessorBirchsLab_EventScript_1F9F62
.2byte 0
LittlerootTown_ProfessorBirchsLab_EventScript_1F9DDB:: @ 81F9DDB
@@ -194,7 +194,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9E80:: @ 81F9E80
closemessage
setflag FLAG_HIDE_LITTLEROOT_TOWN_BIRCH
setflag FLAG_HIDE_LITTLEROOT_TOWN_RIVAL
setvar VAR_0x40D3, 2
setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2
setvar VAR_SCOTT_CALL_STEP_COUNTER, 0
setflag FLAG_SCOTT_CALL_NATIONAL_DEX
releaseall
@@ -247,7 +247,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9F62:: @ 81F9F62
applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_ProfessorBirchsLab_Movement_1F9F7C
waitmovement 0
msgbox LittlerootTown_ProfessorBirchsLab_Text_1FB5F9, MSGBOX_DEFAULT
setvar VAR_0x40D3, 5
setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 5
releaseall
end
@@ -284,7 +284,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9FB1:: @ 81F9FB1
LittlerootTown_ProfessorBirchsLab_EventScript_1F9FBB:: @ 81F9FBB
release
compare VAR_0x40D3, 6
compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6
goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_1FA057
applymovement 2, Common_Movement_WalkInPlaceRight
waitmovement 0
@@ -297,7 +297,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9FBB:: @ 81F9FBB
LittlerootTown_ProfessorBirchsLab_EventScript_1F9FEF:: @ 81F9FEF
release
compare VAR_0x40D3, 6
compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6
goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_1FA057
applymovement 2, Common_Movement_WalkInPlaceRight
waitmovement 0
@@ -310,7 +310,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9FEF:: @ 81F9FEF
LittlerootTown_ProfessorBirchsLab_EventScript_1FA023:: @ 81FA023
release
compare VAR_0x40D3, 6
compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6
goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_1FA057
applymovement 2, Common_Movement_WalkInPlaceRight
waitmovement 0
@@ -373,7 +373,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA0F2:: @ 81FA0F2
LittlerootTown_ProfessorBirchsLab_EventScript_1FA0FD:: @ 81FA0FD
erasemonpic
msgbox LittlerootTown_ProfessorBirchsLab_Text_1FBA2C, MSGBOX_DEFAULT
setvar VAR_0x40D3, 6
setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6
releaseall
end
@@ -418,7 +418,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA193:: @ 81FA193
LittlerootTown_ProfessorBirchsLab_EventScript_1FA19E:: @ 81FA19E
erasemonpic
msgbox LittlerootTown_ProfessorBirchsLab_Text_1FBA2C, MSGBOX_DEFAULT
setvar VAR_0x40D3, 6
setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6
releaseall
end
@@ -463,7 +463,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA234:: @ 81FA234
LittlerootTown_ProfessorBirchsLab_EventScript_1FA23F:: @ 81FA23F
erasemonpic
msgbox LittlerootTown_ProfessorBirchsLab_Text_1FBA2C, MSGBOX_DEFAULT
setvar VAR_0x40D3, 6
setvar VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6
releaseall
end
@@ -477,9 +477,9 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA24F:: @ 81FA24F
LittlerootTown_ProfessorBirchsLab_EventScript_1FA25A:: @ 81FA25A
lock
faceplayer
compare VAR_0x40D3, 5
compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 5
goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_1FA28A
compare VAR_0x40D3, 2
compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2
goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_1FA294
goto_if_unset FLAG_HAS_MATCH_CALL, LittlerootTown_ProfessorBirchsLab_EventScript_1FA29E
goto_if_unset FLAG_ENABLE_PROF_BIRCH_MATCH_CALL, LittlerootTown_ProfessorBirchsLab_EventScript_1FA2D2
@@ -498,9 +498,9 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA294:: @ 81FA294
LittlerootTown_ProfessorBirchsLab_EventScript_1FA29E:: @ 81FA29E
goto_if_unset FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_UNKNOWN_0x380, LittlerootTown_ProfessorBirchsLab_EventScript_272141
compare VAR_0x40D3, 3
compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 3
goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_272141
compare VAR_0x40D3, 6
compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6
goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_272141
compare VAR_BIRCH_LAB_STATE, 5
goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_1FA3C4
@@ -519,7 +519,7 @@ Route101_EventScript_1FA2D2:: @ 81FA2D2
closemessage
delay 30
setflag FLAG_ENABLE_PROF_BIRCH_MATCH_CALL
setvar VAR_0x40DA, 2
setvar VAR_REGISTER_BIRCH_STATE, 2
release
end
@@ -539,9 +539,9 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA2F8:: @ 81FA2F8
call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_1FA37F
setvar VAR_BIRCH_LAB_STATE, 5
setflag FLAG_ADVENTURE_STARTED
setvar VAR_ROUTE102_ACCESSIBLE, 1
setvar VAR_OLDALE_TOWN_STATE, 1
setvar VAR_LITTLEROOT_RIVAL_STATE, 4
setvar VAR_0x4050, 3
setvar VAR_LITTLEROOT_TOWN_STATE, 3
releaseall
end
@@ -598,11 +598,11 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA3E3:: @ 81FA3E3
LittlerootTown_ProfessorBirchsLab_EventScript_1FA3EC:: @ 81FA3EC
lock
faceplayer
compare VAR_0x40D3, 5
compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 5
goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_1FA43A
compare VAR_0x40D3, 6
compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6
goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_1FA465
compare VAR_0x40D3, 2
compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2
goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_1FA490
checkplayergender
compare VAR_RESULT, MALE

View File

@@ -62,7 +62,7 @@ MagmaHideout_4F_EventScript_23A560:: @ 823A560
closemessage
clearflag FLAG_HIDE_SLATEPORT_CITY_CAPTAIN_STERN
clearflag FLAG_HIDE_SLATEPORT_CITY_GABBY_AND_TY
setvar VAR_SLATEPORT_STATE, 1
setvar VAR_SLATEPORT_CITY_STATE, 1
setflag FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT
setvar VAR_SLATEPORT_HARBOR_STATE, 1
fadescreen 1

View File

@@ -52,7 +52,7 @@ MirageTower_4F_EventScript_23ADCA:: @ 823ADCA
waitstate
special DoMirageTowerCeilingCrumble
waitstate
setvar VAR_ROUTE_111_STATE, 1
setvar VAR_MIRAGE_TOWER_STATE, 1
clearflag FLAG_LANDMARK_MIRAGE_TOWER
warp MAP_ROUTE111, 255, 19, 59
waitstate

View File

@@ -366,7 +366,7 @@
"x": 42,
"y": 21,
"elevation": 5,
"var": "VAR_MOSSDEEP_STATE",
"var": "VAR_MOSSDEEP_CITY_STATE",
"var_value": "1",
"script": "MossdeepCity_EventScript_1E4B41"
},
@@ -375,7 +375,7 @@
"x": 41,
"y": 22,
"elevation": 5,
"var": "VAR_MOSSDEEP_STATE",
"var": "VAR_MOSSDEEP_CITY_STATE",
"var_value": "1",
"script": "MossdeepCity_EventScript_1E4B41"
},
@@ -384,7 +384,7 @@
"x": 41,
"y": 23,
"elevation": 5,
"var": "VAR_MOSSDEEP_STATE",
"var": "VAR_MOSSDEEP_CITY_STATE",
"var_value": "1",
"script": "MossdeepCity_EventScript_1E4B41"
},
@@ -393,7 +393,7 @@
"x": 41,
"y": 24,
"elevation": 5,
"var": "VAR_MOSSDEEP_STATE",
"var": "VAR_MOSSDEEP_CITY_STATE",
"var_value": "1",
"script": "MossdeepCity_EventScript_1E4B41"
},
@@ -402,7 +402,7 @@
"x": 40,
"y": 25,
"elevation": 5,
"var": "VAR_MOSSDEEP_STATE",
"var": "VAR_MOSSDEEP_CITY_STATE",
"var_value": "1",
"script": "MossdeepCity_EventScript_1E4B41"
},
@@ -411,7 +411,7 @@
"x": 40,
"y": 26,
"elevation": 5,
"var": "VAR_MOSSDEEP_STATE",
"var": "VAR_MOSSDEEP_CITY_STATE",
"var_value": "1",
"script": "MossdeepCity_EventScript_1E4B41"
}
@@ -482,4 +482,4 @@
"script": "MossdeepCity_EventScript_1E4B14"
}
]
}
}

View File

@@ -94,7 +94,7 @@ MossdeepCity_EventScript_1E4B41:: @ 81E4B41
removeobject 12
removeobject 13
delay 30
setvar VAR_MOSSDEEP_STATE, 2
setvar VAR_MOSSDEEP_CITY_STATE, 2
setflag FLAG_HIDE_MOSSDEEP_CITY_TEAM_MAGMA
releaseall
end

View File

@@ -71,7 +71,7 @@ MossdeepCity_Gym_EventScript_2208D1:: @ 82208D1
clearflag FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_1F_TEAM_MAGMA
clearflag FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_2F_TEAM_MAGMA
clearflag FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_2F_STEVEN
setvar VAR_MOSSDEEP_STATE, 1
setvar VAR_MOSSDEEP_CITY_STATE, 1
setflag FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_1F_STEVEN
setvar VAR_MOSSDEEP_SPACE_CENTER_STATE_2, 1
call MossdeepCity_Gym_EventScript_22095B

View File

@@ -4,7 +4,7 @@ MossdeepCity_SpaceCenter_1F_MapScripts:: @ 8222F41
.byte 0
MossdeepCity_SpaceCenter_1F_OnTransition: @ 8222F4C
compare VAR_MOSSDEEP_STATE, 2
compare VAR_MOSSDEEP_CITY_STATE, 2
goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_222F58
end
@@ -39,7 +39,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_222FBA:: @ 8222FBA
end
MossdeepCity_SpaceCenter_1F_MapScript1_222FC2: @ 8222FC2
compare VAR_MOSSDEEP_STATE, 2
compare VAR_MOSSDEEP_CITY_STATE, 2
goto_if_le MossdeepCity_SpaceCenter_1F_EventScript_222FCE
end
@@ -50,7 +50,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_222FCE:: @ 8222FCE
MossdeepCity_SpaceCenter_1F_EventScript_222FD8:: @ 8222FD8
lock
faceplayer
compare VAR_MOSSDEEP_STATE, 2
compare VAR_MOSSDEEP_CITY_STATE, 2
goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_223024
dotimebasedevents
specialvar VAR_RESULT, GetWeekCount
@@ -98,7 +98,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_22305A:: @ 822305A
MossdeepCity_SpaceCenter_1F_EventScript_223063:: @ 8223063
lock
faceplayer
compare VAR_MOSSDEEP_STATE, 2
compare VAR_MOSSDEEP_CITY_STATE, 2
goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_22307A
msgbox MossdeepCity_SpaceCenter_1F_Text_2233D3, MSGBOX_DEFAULT
release
@@ -114,7 +114,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_22307A:: @ 822307A
MossdeepCity_SpaceCenter_1F_EventScript_22308E:: @ 822308E
lock
faceplayer
compare VAR_MOSSDEEP_STATE, 2
compare VAR_MOSSDEEP_CITY_STATE, 2
goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_2230DA
goto_if_set FLAG_RECEIVED_SUN_STONE_MOSSDEEP, MossdeepCity_SpaceCenter_1F_EventScript_2230D0
msgbox MossdeepCity_SpaceCenter_1F_Text_223540, MSGBOX_DEFAULT
@@ -155,9 +155,9 @@ MossdeepCity_SpaceCenter_1F_EventScript_22312D:: @ 822312D
lock
faceplayer
goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_1F_EventScript_223154
compare VAR_MOSSDEEP_STATE, 2
compare VAR_MOSSDEEP_CITY_STATE, 2
goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_22315E
compare VAR_MOSSDEEP_STATE, 2
compare VAR_MOSSDEEP_CITY_STATE, 2
goto_if_lt MossdeepCity_SpaceCenter_1F_EventScript_223154
goto MossdeepCity_SpaceCenter_1F_EventScript_22315E
end
@@ -176,9 +176,9 @@ MossdeepCity_SpaceCenter_1F_EventScript_223168:: @ 8223168
lock
faceplayer
goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_1F_EventScript_22318F
compare VAR_MOSSDEEP_STATE, 2
compare VAR_MOSSDEEP_CITY_STATE, 2
goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_2231A4
compare VAR_MOSSDEEP_STATE, 2
compare VAR_MOSSDEEP_CITY_STATE, 2
goto_if_lt MossdeepCity_SpaceCenter_1F_EventScript_22318F
goto MossdeepCity_SpaceCenter_1F_EventScript_2231A4
end

View File

@@ -4,7 +4,7 @@ MossdeepCity_SpaceCenter_2F_MapScripts:: @ 8223D58
.byte 0
MossdeepCity_SpaceCenter_2F_OnTransition: @ 8223D63
compare VAR_MOSSDEEP_STATE, 2
compare VAR_MOSSDEEP_CITY_STATE, 2
call_if_eq MossdeepCity_SpaceCenter_2F_EventScript_223D7A
compare VAR_MOSSDEEP_SPACE_CENTER_STATE_2, 2
call_if_eq MossdeepCity_SpaceCenter_2F_EventScript_223D9F
@@ -98,9 +98,9 @@ MossdeepCity_SpaceCenter_2F_EventScript_223E8D:: @ 8223E8D
lock
faceplayer
goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_2F_EventScript_223EB4
compare VAR_MOSSDEEP_STATE, 2
compare VAR_MOSSDEEP_CITY_STATE, 2
goto_if_eq MossdeepCity_SpaceCenter_2F_EventScript_223EBE
compare VAR_MOSSDEEP_STATE, 2
compare VAR_MOSSDEEP_CITY_STATE, 2
goto_if_lt MossdeepCity_SpaceCenter_2F_EventScript_223EB4
goto MossdeepCity_SpaceCenter_2F_EventScript_223EBE
end
@@ -119,9 +119,9 @@ MossdeepCity_SpaceCenter_2F_EventScript_223EC8:: @ 8223EC8
lock
faceplayer
goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_2F_EventScript_223EEF
compare VAR_MOSSDEEP_STATE, 2
compare VAR_MOSSDEEP_CITY_STATE, 2
goto_if_eq MossdeepCity_SpaceCenter_2F_EventScript_223EF9
compare VAR_MOSSDEEP_STATE, 2
compare VAR_MOSSDEEP_CITY_STATE, 2
goto_if_lt MossdeepCity_SpaceCenter_2F_EventScript_223EEF
goto MossdeepCity_SpaceCenter_2F_EventScript_223EF9
end
@@ -140,9 +140,9 @@ MossdeepCity_SpaceCenter_2F_EventScript_223F03:: @ 8223F03
lock
faceplayer
goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_2F_EventScript_223F2A
compare VAR_MOSSDEEP_STATE, 2
compare VAR_MOSSDEEP_CITY_STATE, 2
goto_if_eq MossdeepCity_SpaceCenter_2F_EventScript_223F34
compare VAR_MOSSDEEP_STATE, 2
compare VAR_MOSSDEEP_CITY_STATE, 2
goto_if_lt MossdeepCity_SpaceCenter_2F_EventScript_223F2A
goto MossdeepCity_SpaceCenter_2F_EventScript_223F34
end
@@ -287,7 +287,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_224071:: @ 8224071
delay 20
msgbox MossdeepCity_SpaceCenter_2F_Text_2249DC, MSGBOX_DEFAULT
closemessage
setvar VAR_MOSSDEEP_STATE, 3
setvar VAR_MOSSDEEP_CITY_STATE, 3
fadedefaultbgm
fadescreen 1
setvar VAR_MOSSDEEP_SPACE_CENTER_STATE_2, 3

View File

@@ -119,7 +119,7 @@
"x": 0,
"y": 10,
"elevation": 3,
"var": "VAR_ROUTE102_ACCESSIBLE",
"var": "VAR_OLDALE_TOWN_STATE",
"var_value": "0",
"script": "OldaleTown_EventScript_1E903F"
},
@@ -128,7 +128,7 @@
"x": 8,
"y": 19,
"elevation": 3,
"var": "VAR_OLDALE_STATE",
"var": "VAR_OLDALE_RIVAL_STATE",
"var_value": "1",
"script": "OldaleTown_EventScript_1E9086"
},
@@ -137,7 +137,7 @@
"x": 9,
"y": 19,
"elevation": 3,
"var": "VAR_OLDALE_STATE",
"var": "VAR_OLDALE_RIVAL_STATE",
"var_value": "1",
"script": "OldaleTown_EventScript_1E90A6"
},
@@ -146,7 +146,7 @@
"x": 10,
"y": 19,
"elevation": 3,
"var": "VAR_OLDALE_STATE",
"var": "VAR_OLDALE_RIVAL_STATE",
"var_value": "1",
"script": "OldaleTown_EventScript_1E90C6"
}
@@ -193,4 +193,4 @@
"script": "Common_EventScript_ShowPokemartSign"
}
]
}
}

View File

@@ -11,7 +11,7 @@ OldaleTown_OnTransition: @ 81E8EA8
end
OldaleTown_EventScript_1E8ECC:: @ 81E8ECC
setvar VAR_ROUTE102_ACCESSIBLE, 1
setvar VAR_OLDALE_TOWN_STATE, 1
return
OldaleTown_EventScript_1E8ED2:: @ 81E8ED2
@@ -280,7 +280,7 @@ OldaleTown_EventScript_1E911A:: @ 81E911A
applymovement 4, OldaleTown_Movement_1E9177
waitmovement 0
removeobject 4
setvar VAR_OLDALE_STATE, 2
setvar VAR_OLDALE_RIVAL_STATE, 2
setflag FLAG_HIDE_OLDALE_TOWN_RIVAL
releaseall
end

View File

@@ -193,7 +193,7 @@
"x": 8,
"y": 10,
"elevation": 3,
"var": "VAR_PETALBURG_STATE",
"var": "VAR_PETALBURG_CITY_STATE",
"var_value": "0",
"script": "PetalburgCity_EventScript_1DC49A"
},
@@ -202,7 +202,7 @@
"x": 8,
"y": 11,
"elevation": 3,
"var": "VAR_PETALBURG_STATE",
"var": "VAR_PETALBURG_CITY_STATE",
"var_value": "0",
"script": "PetalburgCity_EventScript_1DC4A6"
},
@@ -211,7 +211,7 @@
"x": 8,
"y": 12,
"elevation": 3,
"var": "VAR_PETALBURG_STATE",
"var": "VAR_PETALBURG_CITY_STATE",
"var_value": "0",
"script": "PetalburgCity_EventScript_1DC4B2"
},
@@ -220,7 +220,7 @@
"x": 8,
"y": 13,
"elevation": 3,
"var": "VAR_PETALBURG_STATE",
"var": "VAR_PETALBURG_CITY_STATE",
"var_value": "0",
"script": "PetalburgCity_EventScript_1DC4BE"
},
@@ -327,4 +327,4 @@
"flag": "FLAG_HIDDEN_ITEM_PETALBURG_CITY_RARE_CANDY"
}
]
}
}

View File

@@ -5,11 +5,11 @@ PetalburgCity_MapScripts::
PetalburgCity_OnTransition: @ 81DC2D7
setflag FLAG_VISITED_PETALBURG_CITY
compare VAR_PETALBURG_STATE, 0
compare VAR_PETALBURG_CITY_STATE, 0
call_if_eq PetalburgCity_EventScript_1DC307
compare VAR_PETALBURG_STATE, 2
compare VAR_PETALBURG_CITY_STATE, 2
call_if_eq PetalburgCity_EventScript_1DC30F
compare VAR_PETALBURG_STATE, 4
compare VAR_PETALBURG_CITY_STATE, 4
call_if_eq PetalburgCity_EventScript_1DC30F
compare VAR_PETALBURG_GYM_STATE, 8
call_if_eq PetalburgCity_EventScript_1DC316
@@ -29,8 +29,8 @@ PetalburgCity_EventScript_1DC316:: @ 81DC316
return
PetalburgCity_MapScript2_1DC31C: @ 81DC31C
map_script_2 VAR_PETALBURG_STATE, 2, PetalburgCity_EventScript_1DC32E
map_script_2 VAR_PETALBURG_STATE, 4, PetalburgCity_EventScript_1DC390
map_script_2 VAR_PETALBURG_CITY_STATE, 2, PetalburgCity_EventScript_1DC32E
map_script_2 VAR_PETALBURG_CITY_STATE, 4, PetalburgCity_EventScript_1DC390
.2byte 0
PetalburgCity_EventScript_1DC32E:: @ 81DC32E
@@ -49,7 +49,7 @@ PetalburgCity_EventScript_1DC32E:: @ 81DC32E
msgbox PetalburgCity_Text_1EC297, MSGBOX_DEFAULT
closemessage
clearflag FLAG_HIDE_MAP_NAME_POPUP
setvar VAR_PETALBURG_STATE, 3
setvar VAR_PETALBURG_CITY_STATE, 3
fadedefaultbgm
clearflag FLAG_SPECIAL_FLAG_0x4001
special LoadPlayerParty

View File

@@ -217,7 +217,7 @@ PetalburgCity_Gym_EventScript_204AAC:: @ 8204AAC
removeobject 10
setflag FLAG_HIDE_PETALBURG_CITY_WALLYS_AUNT
setvar VAR_PETALBURG_GYM_STATE, 1
setvar VAR_PETALBURG_STATE, 2
setvar VAR_PETALBURG_CITY_STATE, 2
clearflag FLAG_HIDE_PETALBURG_CITY_WALLY
clearflag FLAG_HIDE_PETALBURG_GYM_WALLY
setflag FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_RIVAL
@@ -496,7 +496,7 @@ PetalburgCity_Gym_EventScript_204F13:: @ 8204F13
compare VAR_0x8008, 3
call_if_eq PetalburgCity_Gym_EventScript_20506C
removeobject 11
setvar VAR_PETALBURG_STATE, 4
setvar VAR_PETALBURG_CITY_STATE, 4
clearflag FLAG_HIDE_PETALBURG_CITY_WALLYS_UNCLE
warp MAP_PETALBURG_CITY, 255, 15, 8
waitstate

View File

@@ -4,7 +4,7 @@ PetalburgCity_WallysHouse_MapScripts:: @ 8204229
.byte 0
PetalburgCity_WallysHouse_MapScript2_204234: @ 8204234
map_script_2 VAR_PETALBURG_STATE, 4, PetalburgCity_WallysHouse_EventScript_20423E
map_script_2 VAR_PETALBURG_CITY_STATE, 4, PetalburgCity_WallysHouse_EventScript_20423E
.2byte 0
PetalburgCity_WallysHouse_EventScript_20423E:: @ 820423E
@@ -13,7 +13,7 @@ PetalburgCity_WallysHouse_EventScript_20423E:: @ 820423E
end
PetalburgCity_WallysHouse_MapScript2_204247: @ 8204247
map_script_2 VAR_PETALBURG_STATE, 4, PetalburgCity_WallysHouse_EventScript_204251
map_script_2 VAR_PETALBURG_CITY_STATE, 4, PetalburgCity_WallysHouse_EventScript_204251
.2byte 0
PetalburgCity_WallysHouse_EventScript_204251:: @ 8204251
@@ -22,7 +22,7 @@ PetalburgCity_WallysHouse_EventScript_204251:: @ 8204251
giveitem_std ITEM_HM03
setflag FLAG_RECEIVED_HM03
msgbox PetalburgCity_WallysHouse_Text_20461A, MSGBOX_DEFAULT
setvar VAR_PETALBURG_STATE, 5
setvar VAR_PETALBURG_CITY_STATE, 5
releaseall
end

View File

@@ -143,7 +143,7 @@ Route103_EventScript_1EC5A2:: @ 81EC5A2
setvar VAR_BIRCH_LAB_STATE, 4
clearflag FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_RIVAL
setflag FLAG_DEFEATED_RIVAL_ROUTE103
setvar VAR_OLDALE_STATE, 1
setvar VAR_OLDALE_RIVAL_STATE, 1
clearflag FLAG_HIDE_OLDALE_TOWN_RIVAL
savebgm MUS_DUMMY
fadedefaultbgm

View File

@@ -537,7 +537,7 @@
"x": 17,
"y": 51,
"elevation": 3,
"var": "VAR_0x4063",
"var": "VAR_ROUTE104_STATE",
"var_value": "1",
"script": "Route104_EventScript_1ECCB3"
}
@@ -624,4 +624,4 @@
"flag": "FLAG_HIDDEN_ITEM_ROUTE_104_HEART_SCALE"
}
]
}
}

View File

@@ -4,7 +4,7 @@ Route104_MapScripts:: @ 81ECC32
.byte 0
Route104_MapScript2_1ECC3D: @ 81ECC3D
map_script_2 VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE, 1, Route104_EventScript_1ECC47
map_script_2 VAR_BOARD_BRINEY_BOAT_STATE, 1, Route104_EventScript_1ECC47
.2byte 0
Route104_EventScript_1ECC47:: @ 81ECC47
@@ -29,7 +29,7 @@ Route104_EventScript_1ECC74:: @ 81ECC74
return
Route104_EventScript_1ECC78:: @ 81ECC78
compare VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE, 1
compare VAR_BOARD_BRINEY_BOAT_STATE, 1
goto_if_ge Route104_EventScript_1ECC9D
goto_if_set FLAG_MET_RIVAL_RUSTBORO, Route104_EventScript_1ECC9D
goto_if_unset FLAG_REGISTER_RIVAL_POKENAV, Route104_EventScript_1ECC9D
@@ -49,8 +49,8 @@ Route104_EventScript_1ECC9E:: @ 81ECC9E
Route104_EventScript_1ECCB3:: @ 81ECCB3
lockall
setflag FLAG_HIDE_RUSBORO_CITY_RIVAL
setvar VAR_RUSTBORO_STATE, 8
setvar VAR_0x4063, 2
setvar VAR_RUSTBORO_CITY_STATE, 8
setvar VAR_ROUTE104_STATE, 2
applymovement EVENT_OBJ_ID_PLAYER, Common_Movement_WalkInPlaceUp
waitmovement 0
delay 10
@@ -417,7 +417,7 @@ Route104_EventScript_1ED139:: @ 81ED139
resetobjectpriority EVENT_OBJ_ID_PLAYER, MAP_ROUTE104
resetobjectpriority 2, MAP_DEWFORD_TOWN
moveobjectoffscreen 2
setvar VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE, 0
setvar VAR_BOARD_BRINEY_BOAT_STATE, 0
goto_if_unset FLAG_DELIVERED_STEVEN_LETTER, Route104_EventScript_1ED1B4
goto_if_set FLAG_DELIVERED_STEVEN_LETTER, Route104_EventScript_1ED1BE
end

View File

@@ -75,12 +75,12 @@ Route104_MrBrineysHouse_EventScript_229E1D:: @ 8229E1D
Route104_MrBrineysHouse_EventScript_229E27:: @ 8229E27
msgbox Route104_MrBrineysHouse_Text_229FE9, MSGBOX_DEFAULT
call Route104_MrBrineysHouse_EventScript_271E95
setvar VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE, 1
setvar VAR_BOARD_BRINEY_BOAT_STATE, 1
clearflag FLAG_HIDE_ROUTE_104_MR_BRINEY
setflag FLAG_HIDE_BRINEYS_HOUSE_MR_BRINEY
setflag FLAG_HIDE_BRINEYS_HOUSE_PEEKO
setvar VAR_RUSTBORO_STATE, 8
setvar VAR_0x4063, 2
setvar VAR_RUSTBORO_CITY_STATE, 8
setvar VAR_ROUTE104_STATE, 2
setflag FLAG_HIDE_RUSBORO_CITY_RIVAL
setflag FLAG_HIDE_ROUTE_104_RIVAL
warp MAP_ROUTE104, 255, 13, 51

View File

@@ -594,7 +594,7 @@
"x": 7,
"y": 85,
"elevation": 3,
"var": "VAR_0x40DA",
"var": "VAR_REGISTER_BIRCH_STATE",
"var_value": "1",
"script": "Route110_EventScript_1EF9CB"
},
@@ -603,7 +603,7 @@
"x": 8,
"y": 85,
"elevation": 3,
"var": "VAR_0x40DA",
"var": "VAR_REGISTER_BIRCH_STATE",
"var_value": "1",
"script": "Route110_EventScript_1EF9D6"
},
@@ -612,7 +612,7 @@
"x": 9,
"y": 85,
"elevation": 3,
"var": "VAR_0x40DA",
"var": "VAR_REGISTER_BIRCH_STATE",
"var_value": "1",
"script": "Route110_EventScript_1EF9E1"
},
@@ -621,7 +621,7 @@
"x": 10,
"y": 85,
"elevation": 3,
"var": "VAR_0x40DA",
"var": "VAR_REGISTER_BIRCH_STATE",
"var_value": "1",
"script": "Route110_EventScript_1EF9EC"
}
@@ -762,4 +762,4 @@
"script": "Route110_EventScript_1EF34A"
}
]
}
}

View File

@@ -660,7 +660,7 @@ Route110_EventScript_1EF9F7:: @ 81EF9F7
compare VAR_0x8008, 4
call_if_eq Route110_EventScript_1EFB25
removeobject 36
setvar VAR_0x40DA, 2
setvar VAR_REGISTER_BIRCH_STATE, 2
releaseall
end

View File

@@ -7,7 +7,7 @@ Route111_MapScripts:: @ 81F0CA7
Route111_MapScript1_1F0CBC: @ 81F0CBC
call_if_unset FLAG_REGI_DOORS_OPENED, Route111_EventScript_1F0CD1
compare VAR_ROUTE_111_STATE, 1
compare VAR_MIRAGE_TOWER_STATE, 1
call_if_eq Route111_EventScript_1F0CE4
end
@@ -41,9 +41,9 @@ Route111_OnTransition: @ 81F0D87
setvar VAR_TRAINER_HILL_IS_ACTIVE, 0
special SetMirageTowerVisibility
call_if_unset FLAG_MIRAGE_TOWER_VISIBLE, Route111_EventScript_1F0E3C
compare VAR_ROUTE_111_STATE, 1
compare VAR_MIRAGE_TOWER_STATE, 1
call_if_eq Route111_EventScript_1F0DC2
compare VAR_ROUTE_111_STATE, 2
compare VAR_MIRAGE_TOWER_STATE, 2
call_if_eq Route111_EventScript_1F0E40
call Route111_EventScript_1F0DE6
call Route111_EventScript_28CCC7
@@ -101,11 +101,11 @@ Route111_EventScript_1F0E3C:: @ 81F0E3C
return
Route111_EventScript_1F0E40:: @ 81F0E40
setvar VAR_ROUTE_111_STATE, 3
setvar VAR_MIRAGE_TOWER_STATE, 3
return
Route111_MapScript2_1F0E46: @ 81F0E46
map_script_2 VAR_ROUTE_111_STATE, 1, Route111_EventScript_1F0E50
map_script_2 VAR_MIRAGE_TOWER_STATE, 1, Route111_EventScript_1F0E50
.2byte 0
Route111_EventScript_1F0E50:: @ 81F0E50
@@ -113,7 +113,7 @@ Route111_EventScript_1F0E50:: @ 81F0E50
end
Route111_MapScript2_1F0E56: @ 81F0E56
map_script_2 VAR_ROUTE_111_STATE, 1, Route111_EventScript_1F0E60
map_script_2 VAR_MIRAGE_TOWER_STATE, 1, Route111_EventScript_1F0E60
.2byte 0
Route111_EventScript_1F0E60:: @ 81F0E60
@@ -134,7 +134,7 @@ Route111_EventScript_1F0E60:: @ 81F0E60
waitstate
special StartMirageTowerFossilFallAndSink
waitstate
setvar VAR_ROUTE_111_STATE, 2
setvar VAR_MIRAGE_TOWER_STATE, 2
clearflag FLAG_HIDE_DESERT_UNDERPASS_FOSSIL
goto_if_set FLAG_CHOSE_ROOT_FOSSIL, Route111_EventScript_1F0EA7
msgbox Route111_Text_1F1C74, MSGBOX_DEFAULT
@@ -411,9 +411,9 @@ Route111_EventScript_1F1192:: @ 81F1192
Route111_EventScript_1F119B:: @ 81F119B
lock
faceplayer
compare VAR_ROUTE_111_STATE, 3
compare VAR_MIRAGE_TOWER_STATE, 3
goto_if_eq Route111_EventScript_1F11C6
compare VAR_ROUTE_111_STATE, 2
compare VAR_MIRAGE_TOWER_STATE, 2
goto_if_eq Route111_EventScript_1F11D0
goto_if_set FLAG_MIRAGE_TOWER_VISIBLE, Route111_EventScript_1F11DA
msgbox Route111_Text_1F1A22, MSGBOX_DEFAULT

View File

@@ -14,7 +14,7 @@ Route129_MapScript1_1F7294: @ 81F7294
Route129_OnTransition: @ 81F72AB
compare VAR_SHOULD_END_UNUSUAL_WEATHER, 1
call_if_eq Route129_EventScript_273D13
compare VAR_RAYQUAZA_STATE, 4
compare VAR_SOOTOPOLIS_CITY_STATE, 4
call_if_ge Route129_EventScript_1F72D8
compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_129_WEST
call_if_eq UnusualWeather_StartKyogreWeather

View File

@@ -3,7 +3,7 @@ Route130_MapScripts:: @ 81F735F
.byte 0
Route130_OnTransition: @ 81F7365
compare VAR_RAYQUAZA_STATE, 4
compare VAR_SOOTOPOLIS_CITY_STATE, 4
call_if_ge Route130_EventScript_1F73B5
specialvar VAR_RESULT, IsMirageIslandPresent
compare VAR_RESULT, 1

View File

@@ -3,7 +3,7 @@ Route131_MapScripts:: @ 81F7404
.byte 0
Route131_OnTransition: @ 81F740A
compare VAR_RAYQUAZA_STATE, 4
compare VAR_SOOTOPOLIS_CITY_STATE, 4
call_if_ge Route131_EventScript_1F741F
call Route131_EventScript_1F741B
end

View File

@@ -331,7 +331,7 @@
"x": 23,
"y": 20,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "1",
"script": "RustboroCity_EventScript_1E095A"
},
@@ -340,7 +340,7 @@
"x": 23,
"y": 21,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "1",
"script": "RustboroCity_EventScript_1E0971"
},
@@ -349,7 +349,7 @@
"x": 23,
"y": 22,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "1",
"script": "RustboroCity_EventScript_1E0988"
},
@@ -358,7 +358,7 @@
"x": 23,
"y": 23,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "1",
"script": "RustboroCity_EventScript_1E099F"
},
@@ -367,7 +367,7 @@
"x": 23,
"y": 24,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "1",
"script": "RustboroCity_EventScript_1E09B6"
},
@@ -376,7 +376,7 @@
"x": 30,
"y": 9,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "2",
"script": "RustboroCity_EventScript_1E0AFE"
},
@@ -385,7 +385,7 @@
"x": 29,
"y": 10,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "2",
"script": "RustboroCity_EventScript_1E0B0A"
},
@@ -394,7 +394,7 @@
"x": 30,
"y": 11,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "2",
"script": "RustboroCity_EventScript_1E0B16"
},
@@ -403,7 +403,7 @@
"x": 30,
"y": 12,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "2",
"script": "RustboroCity_EventScript_1E0B22"
},
@@ -412,7 +412,7 @@
"x": 30,
"y": 9,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "4",
"script": "RustboroCity_EventScript_1E0C2B"
},
@@ -421,7 +421,7 @@
"x": 31,
"y": 10,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "4",
"script": "RustboroCity_EventScript_1E0C37"
},
@@ -430,7 +430,7 @@
"x": 30,
"y": 11,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "4",
"script": "RustboroCity_EventScript_1E0C43"
},
@@ -439,7 +439,7 @@
"x": 30,
"y": 12,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "4",
"script": "RustboroCity_EventScript_1E0C4F"
},
@@ -448,7 +448,7 @@
"x": 12,
"y": 53,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "7",
"script": "RustboroCity_EventScript_1E0DF3"
},
@@ -457,7 +457,7 @@
"x": 13,
"y": 53,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "7",
"script": "RustboroCity_EventScript_1E0E33"
},
@@ -466,7 +466,7 @@
"x": 14,
"y": 53,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "7",
"script": "RustboroCity_EventScript_1E0E73"
},
@@ -475,7 +475,7 @@
"x": 15,
"y": 53,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "7",
"script": "RustboroCity_EventScript_1E0EB3"
},
@@ -484,7 +484,7 @@
"x": 16,
"y": 53,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "7",
"script": "RustboroCity_EventScript_1E0EF3"
},
@@ -493,7 +493,7 @@
"x": 17,
"y": 53,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "7",
"script": "RustboroCity_EventScript_1E0F33"
},
@@ -502,7 +502,7 @@
"x": 18,
"y": 53,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "7",
"script": "RustboroCity_EventScript_1E0F73"
},
@@ -511,7 +511,7 @@
"x": 19,
"y": 53,
"elevation": 3,
"var": "VAR_RUSTBORO_STATE",
"var": "VAR_RUSTBORO_CITY_STATE",
"var_value": "7",
"script": "RustboroCity_EventScript_1E0FB3"
}
@@ -598,4 +598,4 @@
"script": "RustboroCity_EventScript_1E0919"
}
]
}
}

View File

@@ -6,10 +6,10 @@ RustboroCity_MapScripts:: @ 81E06BD
RustboroCity_OnTransition: @ 81E06C8
setflag FLAG_VISITED_RUSTBORO_CITY
call Common_EventScript_SetupRivalGender
compare VAR_RUSTBORO_STATE, 6
compare VAR_RUSTBORO_CITY_STATE, 6
call_if_eq RustboroCity_EventScript_1E0707
getplayerxy VAR_TEMP_0, VAR_TEMP_1
compare VAR_RUSTBORO_STATE, 6
compare VAR_RUSTBORO_CITY_STATE, 6
goto_if_eq RustboroCity_EventScript_1E06EC
end
@@ -28,12 +28,12 @@ RustboroCity_EventScript_1E0707:: @ 81E0707
return
RustboroCity_MapScript2_1E070B: @ 81E070B
map_script_2 VAR_RUSTBORO_STATE, 6, RustboroCity_EventScript_1E0715
map_script_2 VAR_RUSTBORO_CITY_STATE, 6, RustboroCity_EventScript_1E0715
.2byte 0
RustboroCity_EventScript_1E0715:: @ 81E0715
lockall
setvar VAR_0x4063, 1
setvar VAR_ROUTE104_STATE, 1
applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_1E0850
waitmovement 0
playse SE_KAIDAN
@@ -99,7 +99,7 @@ RustboroCity_EventScript_1E07BD:: @ 81E07BD
playse SE_KAIDAN
removeobject 15
setflag FLAG_HIDE_RUSTBORO_CITY_SCIENTIST
setvar VAR_RUSTBORO_STATE, 7
setvar VAR_RUSTBORO_CITY_STATE, 7
clearflag FLAG_HIDE_MAP_NAME_POPUP
releaseall
end
@@ -302,7 +302,7 @@ RustboroCity_EventScript_1E09CD:: @ 81E09CD
setobjectxyperm 9, 30, 10
clearflag FLAG_HIDE_RUSTBORO_CITY_DEVON_EMPLOYEE_1
setflag FLAG_DEVON_GOODS_STOLEN
setvar VAR_RUSTBORO_STATE, 2
setvar VAR_RUSTBORO_CITY_STATE, 2
setvar VAR_RUSTURF_TUNNEL_STATE, 2
setvar VAR_ROUTE116_STATE, 1
clearflag FLAG_HIDE_ROUTE_116_MR_BRINEY
@@ -493,7 +493,7 @@ RustboroCity_EventScript_1E0B2E:: @ 81E0B2E
compare VAR_TEMP_1, 3
call_if_eq RustboroCity_EventScript_1E0BF3
setflag FLAG_INTERACTED_WITH_DEVON_EMPLOYEE_GOODS_STOLEN
setvar VAR_RUSTBORO_STATE, 3
setvar VAR_RUSTBORO_CITY_STATE, 3
moveobjectoffscreen 9
msgbox RustboroCity_Text_1E183E, MSGBOX_DEFAULT
releaseall
@@ -596,7 +596,7 @@ RustboroCity_EventScript_1E0C5B:: @ 81E0C5B
closemessage
setflag FLAG_RETURNED_DEVON_GOODS
setflag FLAG_HIDE_RUSTBORO_CITY_DEVON_EMPLOYEE_1
setvar VAR_RUSTBORO_STATE, 5
setvar VAR_RUSTBORO_CITY_STATE, 5
delay 30
warp MAP_RUSTBORO_CITY_DEVON_CORP_3F, 255, 2, 2
waitstate
@@ -840,8 +840,8 @@ RustboroCity_EventScript_1E100B:: @ 81E100B
closemessage
delay 30
setflag FLAG_ENABLE_RIVAL_MATCH_CALL
setvar VAR_RUSTBORO_STATE, 8
setvar VAR_0x4063, 2
setvar VAR_RUSTBORO_CITY_STATE, 8
setvar VAR_ROUTE104_STATE, 2
setvar VAR_0x8008, 0
msgbox RustboroCity_Text_1E1AFA, MSGBOX_YESNO
compare VAR_RESULT, 1
@@ -911,8 +911,8 @@ RustboroCity_EventScript_1E1114:: @ 81E1114
closemessage
delay 30
setflag FLAG_ENABLE_RIVAL_MATCH_CALL
setvar VAR_RUSTBORO_STATE, 8
setvar VAR_0x4063, 2
setvar VAR_RUSTBORO_CITY_STATE, 8
setvar VAR_ROUTE104_STATE, 2
msgbox RustboroCity_Text_1E1E34, MSGBOX_YESNO
compare VAR_RESULT, 1
goto_if_eq RustboroCity_EventScript_1E1191

View File

@@ -281,7 +281,7 @@ RustboroCity_DevonCorp_2F_EventScript_211BCF:: @ 8211BCF
faceplayer
compare VAR_FOSSIL_RESURRECTION_STATE, 1
call_if_eq RustboroCity_DevonCorp_2F_EventScript_211869
compare VAR_RUSTBORO_STATE, 6
compare VAR_RUSTBORO_CITY_STATE, 6
goto_if_ge RustboroCity_DevonCorp_2F_EventScript_211BF1
msgbox RustboroCity_DevonCorp_2F_Text_212338, MSGBOX_DEFAULT
release

View File

@@ -68,7 +68,7 @@ RustboroCity_DevonCorp_3F_EventScript_21246E:: @ 821246E
setvar VAR_BRINEY_LOCATION, 1
clearflag FLAG_HIDE_RUSBORO_CITY_RIVAL
setvar VAR_DEVON_CORP_3F_STATE, 1
setvar VAR_RUSTBORO_STATE, 6
setvar VAR_RUSTBORO_CITY_STATE, 6
releaseall
end

View File

@@ -18,7 +18,7 @@ RustboroCity_Gym_EventScript_212F66:: @ 8212F66
msgbox RustboroCity_Gym_Text_213816, MSGBOX_DEFAULT
setflag FLAG_DEFEATED_RUSTBORO_GYM
setflag FLAG_BADGE01_GET
setvar VAR_RUSTBORO_STATE, 1
setvar VAR_RUSTBORO_CITY_STATE, 1
addvar VAR_PETALBURG_GYM_STATE, 1
setvar VAR_0x8008, 1
call RustboroCity_Gym_EventScript_271F43

View File

@@ -345,7 +345,7 @@ RusturfTunnel_EventScript_22D0C2:: @ 822D0C2
removeobject 7
clearflag FLAG_DEVON_GOODS_STOLEN
setflag FLAG_RECOVERED_DEVON_GOODS
setvar VAR_RUSTBORO_STATE, 4
setvar VAR_RUSTBORO_CITY_STATE, 4
setvar VAR_BRINEY_HOUSE_STATE, 1
setflag FLAG_HIDE_ROUTE_116_MR_BRINEY
release

View File

@@ -119,7 +119,7 @@ SeafloorCavern_Room9_EventScript_234DC9:: @ 8234DC9
waitmovement 0
msgbox SeafloorCavern_Room9_Text_235723, MSGBOX_DEFAULT
setvar VAR_ROUTE128_STATE, 1
setvar VAR_RAYQUAZA_STATE, 1
setvar VAR_SOOTOPOLIS_CITY_STATE, 1
clearflag FLAG_HIDE_SOOTOPOLIS_CITY_STEVEN
clearflag FLAG_HIDE_SOOTOPOLIS_CITY_ARCHIE
clearflag FLAG_HIDE_SOOTOPOLIS_CITY_MAXIE

View File

@@ -5,9 +5,9 @@ SkyPillar_Outside_MapScripts:: @ 82392A8
.byte 0
SkyPillar_Outside_OnTransition: @ 82392B8
compare VAR_RAYQUAZA_STATE, 3
compare VAR_SOOTOPOLIS_CITY_STATE, 3
call_if_eq SkyPillar_Outside_EventScript_2392CF
compare VAR_RAYQUAZA_STATE, 4
compare VAR_SOOTOPOLIS_CITY_STATE, 4
call_if_ge SkyPillar_Outside_EventScript_2392D3
end
@@ -29,7 +29,7 @@ SkyPillar_Outside_EventScript_2392E7:: @ 82392E7
return
SkyPillar_Outside_MapScript2_2392FA: @ 82392FA
map_script_2 VAR_RAYQUAZA_STATE, 3, SkyPillar_Outside_EventScript_239304
map_script_2 VAR_SOOTOPOLIS_CITY_STATE, 3, SkyPillar_Outside_EventScript_239304
.2byte 0
SkyPillar_Outside_EventScript_239304:: @ 8239304
@@ -82,7 +82,7 @@ SkyPillar_Outside_EventScript_239304:: @ 8239304
playse SE_KAIDAN
fadescreenswapbuffers 1
clearflag FLAG_HIDE_MAP_NAME_POPUP
setvar VAR_RAYQUAZA_STATE, 4
setvar VAR_SOOTOPOLIS_CITY_STATE, 4
removeobject 1
clearflag FLAG_HIDE_SOOTOPOLIS_CITY_WALLACE
fadescreenswapbuffers 0

View File

@@ -130,7 +130,7 @@ SkyPillar_Top_EventScript_23979A:: @ 823979A
applymovement EVENT_OBJ_ID_CAMERA, SkyPillar_Top_Movement_23985C
waitmovement 0
special RemoveCameraObject
setvar VAR_RAYQUAZA_STATE, 5
setvar VAR_SOOTOPOLIS_CITY_STATE, 5
setvar VAR_SKY_PILLAR_STATE, 1
setvar VAR_SKY_PILLAR_RAQUAZA_CRY_DONE, 1
releaseall

View File

@@ -6,7 +6,7 @@ SlateportCity_MapScripts:: @ 81DCC61
SlateportCity_OnTransition: @ 81DCC6C
setvar VAR_SLATEPORT_MUSEUM_1F_STATE, 0
call SlateportCity_EventScript_1DCC8D
compare VAR_SLATEPORT_STATE, 1
compare VAR_SLATEPORT_CITY_STATE, 1
call_if_eq SlateportCity_EventScript_1DCC99
compare VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE, 1
call_if_eq SlateportCity_EventScript_1DCCE7
@@ -170,7 +170,7 @@ SlateportCity_EventScript_1DCE38:: @ 81DCE38
SlateportCity_EventScript_1DCE42:: @ 81DCE42
lock
faceplayer
compare VAR_SLATEPORT_STATE, 1
compare VAR_SLATEPORT_CITY_STATE, 1
call_if_eq SlateportCity_EventScript_1DCE59
msgbox SlateportCity_Text_1DD81A, MSGBOX_DEFAULT
release
@@ -184,7 +184,7 @@ SlateportCity_EventScript_1DCE59:: @ 81DCE59
SlateportCity_EventScript_1DCE63:: @ 81DCE63
lock
faceplayer
compare VAR_SLATEPORT_STATE, 1
compare VAR_SLATEPORT_CITY_STATE, 1
call_if_eq SlateportCity_EventScript_1DCE7A
msgbox SlateportCity_Text_1DD8A6, MSGBOX_DEFAULT
release
@@ -198,7 +198,7 @@ SlateportCity_EventScript_1DCE7A:: @ 81DCE7A
SlateportCity_EventScript_1DCE84:: @ 81DCE84
lock
faceplayer
compare VAR_SLATEPORT_STATE, 1
compare VAR_SLATEPORT_CITY_STATE, 1
call_if_eq SlateportCity_EventScript_1DCEA4
goto_if_set FLAG_RECEIVED_SECRET_POWER, SlateportCity_EventScript_1DCEAE
msgbox SlateportCity_Text_1DD93D, MSGBOX_DEFAULT
@@ -218,7 +218,7 @@ SlateportCity_EventScript_1DCEAE:: @ 81DCEAE
SlateportCity_EventScript_1DCEB8:: @ 81DCEB8
lock
faceplayer
compare VAR_SLATEPORT_STATE, 1
compare VAR_SLATEPORT_CITY_STATE, 1
call_if_eq SlateportCity_EventScript_1DCECF
msgbox SlateportCity_Text_1DDA34, MSGBOX_DEFAULT
release
@@ -230,7 +230,7 @@ SlateportCity_EventScript_1DCECF:: @ 81DCECF
end
SlateportCity_EventScript_1DCED9:: @ 81DCED9
compare VAR_SLATEPORT_STATE, 1
compare VAR_SLATEPORT_CITY_STATE, 1
goto_if_eq SlateportCity_EventScript_1DCEED
msgbox SlateportCity_Text_1DDA9A, MSGBOX_NPC
end
@@ -242,7 +242,7 @@ SlateportCity_EventScript_1DCEED:: @ 81DCEED
SlateportCity_EventScript_1DCEF6:: @ 81DCEF6
lock
faceplayer
compare VAR_SLATEPORT_STATE, 1
compare VAR_SLATEPORT_CITY_STATE, 1
call_if_eq SlateportCity_EventScript_1DCF0D
msgbox SlateportCity_Text_1DDB21, MSGBOX_DEFAULT
release
@@ -323,7 +323,7 @@ SlateportCity_EventScript_1DCFB2:: @ 81DCFB2
SlateportCity_EventScript_1DCFBB:: @ 81DCFBB
lock
faceplayer
compare VAR_SLATEPORT_STATE, 1
compare VAR_SLATEPORT_CITY_STATE, 1
call_if_eq SlateportCity_EventScript_1DCFD2
msgbox SlateportCity_Text_1DE10E, MSGBOX_DEFAULT
release
@@ -609,7 +609,7 @@ SlateportCity_EventScript_1DD1F8:: @ 81DD1F8
clearflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_SUBMARINE_SHADOW
clearflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_AQUA_GRUNT
clearflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_ARCHIE
setvar VAR_SLATEPORT_STATE, 2
setvar VAR_SLATEPORT_CITY_STATE, 2
warp MAP_SLATEPORT_CITY_HARBOR, 255, 11, 14
waitstate
releaseall

View File

@@ -81,7 +81,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_20BB00:: @ 820BB00
special HealPlayerParty
removeobject 1
setflag FLAG_HIDE_ROUTE_110_TEAM_AQUA
compare VAR_0x40DA, 0
compare VAR_REGISTER_BIRCH_STATE, 0
call_if_eq SlateportCity_OceanicMuseum_2F_EventScript_20BC8C
setflag FLAG_DELIVERED_DEVON_GOODS
clearflag FLAG_HIDE_ROUTE_116_DEVON_EMPLOYEE
@@ -92,7 +92,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_20BB00:: @ 820BB00
end
SlateportCity_OceanicMuseum_2F_EventScript_20BC8C:: @ 820BC8C
setvar VAR_0x40DA, 1
setvar VAR_REGISTER_BIRCH_STATE, 1
return
SlateportCity_OceanicMuseum_2F_EventScript_20BC92:: @ 820BC92

View File

@@ -33,31 +33,31 @@ SootopolisCity_EventScript_1E56E5:: @ 81E56E5
SootopolisCity_OnTransition: @ 81E56EF
setflag FLAG_VISITED_SOOTOPOLIS_CITY
compare VAR_RAYQUAZA_STATE, 1
compare VAR_SOOTOPOLIS_CITY_STATE, 1
call_if_eq SootopolisCity_EventScript_1E5781
compare VAR_SKY_PILLAR_STATE, 1
call_if_eq SootopolisCity_EventScript_1E5781
call SootopolisCity_EventScript_1E5805
call SootopolisCity_EventScript_1E57B2
compare VAR_RAYQUAZA_STATE, 1
compare VAR_SOOTOPOLIS_CITY_STATE, 1
call_if_eq SootopolisCity_EventScript_1E5785
compare VAR_RAYQUAZA_STATE, 2
compare VAR_SOOTOPOLIS_CITY_STATE, 2
call_if_eq SootopolisCity_EventScript_1E5785
compare VAR_RAYQUAZA_STATE, 3
compare VAR_SOOTOPOLIS_CITY_STATE, 3
call_if_eq SootopolisCity_EventScript_1E5785
compare VAR_RAYQUAZA_STATE, 4
compare VAR_SOOTOPOLIS_CITY_STATE, 4
call_if_eq SootopolisCity_EventScript_1E5785
compare VAR_RAYQUAZA_STATE, 5
compare VAR_SOOTOPOLIS_CITY_STATE, 5
call_if_eq SootopolisCity_EventScript_1E5785
compare VAR_RAYQUAZA_STATE, 2
compare VAR_SOOTOPOLIS_CITY_STATE, 2
call_if_eq SootopolisCity_EventScript_1E5842
compare VAR_RAYQUAZA_STATE, 3
compare VAR_SOOTOPOLIS_CITY_STATE, 3
call_if_eq SootopolisCity_EventScript_1E5842
compare VAR_RAYQUAZA_STATE, 4
compare VAR_SOOTOPOLIS_CITY_STATE, 4
call_if_eq SootopolisCity_EventScript_1E585B
compare VAR_RAYQUAZA_STATE, 5
compare VAR_SOOTOPOLIS_CITY_STATE, 5
call_if_eq SootopolisCity_EventScript_1E5871
compare VAR_RAYQUAZA_STATE, 6
compare VAR_SOOTOPOLIS_CITY_STATE, 6
call_if_eq SootopolisCity_EventScript_1E58D3
end
@@ -77,17 +77,17 @@ SootopolisCity_EventScript_1E5785:: @ 81E5785
return
SootopolisCity_EventScript_1E57B2:: @ 81E57B2
compare VAR_RAYQUAZA_STATE, 0
compare VAR_SOOTOPOLIS_CITY_STATE, 0
goto_if_eq SootopolisCity_EventScript_1E5800
compare VAR_RAYQUAZA_STATE, 6
compare VAR_SOOTOPOLIS_CITY_STATE, 6
goto_if_ge SootopolisCity_EventScript_1E5800
compare VAR_RAYQUAZA_STATE, 1
compare VAR_SOOTOPOLIS_CITY_STATE, 1
goto_if_eq SootopolisCity_EventScript_1E5801
compare VAR_RAYQUAZA_STATE, 2
compare VAR_SOOTOPOLIS_CITY_STATE, 2
goto_if_eq SootopolisCity_EventScript_1E5801
compare VAR_RAYQUAZA_STATE, 3
compare VAR_SOOTOPOLIS_CITY_STATE, 3
goto_if_eq SootopolisCity_EventScript_1E5801
compare VAR_RAYQUAZA_STATE, 4
compare VAR_SOOTOPOLIS_CITY_STATE, 4
goto_if_eq SootopolisCity_EventScript_1E5801
compare VAR_SKY_PILLAR_STATE, 1
goto_if_le SootopolisCity_EventScript_1E5801
@@ -101,11 +101,11 @@ SootopolisCity_EventScript_1E5801:: @ 81E5801
return
SootopolisCity_EventScript_1E5805:: @ 81E5805
compare VAR_RAYQUAZA_STATE, 0
compare VAR_SOOTOPOLIS_CITY_STATE, 0
goto_if_eq SootopolisCity_EventScript_1E583D
compare VAR_RAYQUAZA_STATE, 6
compare VAR_SOOTOPOLIS_CITY_STATE, 6
goto_if_ge SootopolisCity_EventScript_1E583D
compare VAR_RAYQUAZA_STATE, 1
compare VAR_SOOTOPOLIS_CITY_STATE, 1
goto_if_eq SootopolisCity_EventScript_1E583E
compare VAR_SKY_PILLAR_STATE, 1
goto_if_eq SootopolisCity_EventScript_1E583E
@@ -140,11 +140,11 @@ SootopolisCity_EventScript_1E5871:: @ 81E5871
setobjectxyperm 7, 29, 33
setobjectxyperm 16, 33, 35
setobjectxyperm 17, 34, 35
compare VAR_SOOTOPOLIS_STATE, 0
compare VAR_SOOTOPOLIS_WALLACE_STATE, 0
call_if_eq SootopolisCity_EventScript_1E58AF
compare VAR_SOOTOPOLIS_STATE, 1
compare VAR_SOOTOPOLIS_WALLACE_STATE, 1
call_if_eq SootopolisCity_EventScript_1E58BB
compare VAR_SOOTOPOLIS_STATE, 2
compare VAR_SOOTOPOLIS_WALLACE_STATE, 2
call_if_eq SootopolisCity_EventScript_1E58C7
return
@@ -168,7 +168,7 @@ SootopolisCity_EventScript_1E58D3:: @ 81E58D3
return
SootopolisCity_MapScript2_1E58DB: @ 81E58DB
map_script_2 VAR_RAYQUAZA_STATE, 5, SootopolisCity_EventScript_1E58E5
map_script_2 VAR_SOOTOPOLIS_CITY_STATE, 5, SootopolisCity_EventScript_1E58E5
.2byte 0
SootopolisCity_EventScript_1E58E5:: @ 81E58E5
@@ -192,7 +192,7 @@ SootopolisCity_MapScript1_1E590B: @ 81E590B
end
SootopolisCity_MapScript2_1E5914: @ 81E5914
map_script_2 VAR_RAYQUAZA_STATE, 1, SootopolisCity_EventScript_1E5926
map_script_2 VAR_SOOTOPOLIS_CITY_STATE, 1, SootopolisCity_EventScript_1E5926
map_script_2 VAR_SKY_PILLAR_STATE, 1, SootopolisCity_EventScript_1E5BFE
.2byte 0
@@ -271,7 +271,7 @@ SootopolisCity_EventScript_1E5946:: @ 81E5946
applymovement EVENT_OBJ_ID_CAMERA, SootopolisCity_Movement_1E5A75
waitmovement 0
special RemoveCameraObject
setvar VAR_RAYQUAZA_STATE, 2
setvar VAR_SOOTOPOLIS_CITY_STATE, 2
clearflag FLAG_HIDE_MAP_NAME_POPUP
releaseall
end
@@ -371,7 +371,7 @@ SootopolisCity_EventScript_1E5A82:: @ 81E5A82
applymovement EVENT_OBJ_ID_CAMERA, SootopolisCity_Movement_1E5BAE
waitmovement 0
special RemoveCameraObject
setvar VAR_RAYQUAZA_STATE, 2
setvar VAR_SOOTOPOLIS_CITY_STATE, 2
clearflag FLAG_HIDE_MAP_NAME_POPUP
releaseall
end
@@ -694,11 +694,11 @@ SootopolisCity_Movement_1E5E7F: @ 81E5E7F
SootopolisCity_EventScript_1E5E8D:: @ 81E5E8D
lock
faceplayer
compare VAR_RAYQUAZA_STATE, 6
compare VAR_SOOTOPOLIS_CITY_STATE, 6
goto_if_ge SootopolisCity_EventScript_1E5EC4
compare VAR_RAYQUAZA_STATE, 5
compare VAR_SOOTOPOLIS_CITY_STATE, 5
goto_if_eq SootopolisCity_EventScript_1E5ECE
compare VAR_RAYQUAZA_STATE, 2
compare VAR_SOOTOPOLIS_CITY_STATE, 2
goto_if_ge SootopolisCity_EventScript_1E5EBA
msgbox SootopolisCity_Text_1E6D77, MSGBOX_DEFAULT
release
@@ -722,11 +722,11 @@ SootopolisCity_EventScript_1E5ECE:: @ 81E5ECE
SootopolisCity_EventScript_1E5ED8:: @ 81E5ED8
lock
faceplayer
compare VAR_RAYQUAZA_STATE, 1
compare VAR_SOOTOPOLIS_CITY_STATE, 1
goto_if_le SootopolisCity_EventScript_1E5F1B
compare VAR_RAYQUAZA_STATE, 6
compare VAR_SOOTOPOLIS_CITY_STATE, 6
goto_if_ge SootopolisCity_EventScript_1E5F1B
compare VAR_RAYQUAZA_STATE, 5
compare VAR_SOOTOPOLIS_CITY_STATE, 5
goto_if_eq SootopolisCity_EventScript_1E5F10
msgbox SootopolisCity_Text_1E6BFF, MSGBOX_DEFAULT
closemessage
@@ -794,7 +794,7 @@ SootopolisCity_EventScript_1E5FE2:: @ 81E5FE2
lockall
applymovement 2, Common_Movement_FacePlayer
waitmovement 0
compare VAR_RAYQUAZA_STATE, 5
compare VAR_SOOTOPOLIS_CITY_STATE, 5
goto_if_eq SootopolisCity_EventScript_1E600D
msgbox SootopolisCity_Text_1E71A1, MSGBOX_DEFAULT
closemessage
@@ -811,7 +811,7 @@ SootopolisCity_EventScript_1E600D:: @ 81E600D
SootopolisCity_EventScript_1E6017:: @ 81E6017
lock
faceplayer
compare VAR_RAYQUAZA_STATE, 6
compare VAR_SOOTOPOLIS_CITY_STATE, 6
goto_if_ge SootopolisCity_EventScript_1E602E
msgbox SootopolisCity_Text_1E6CCA, MSGBOX_DEFAULT
release
@@ -825,11 +825,11 @@ SootopolisCity_EventScript_1E602E:: @ 81E602E
SootopolisCity_EventScript_1E6038:: @ 81E6038
lock
faceplayer
compare VAR_RAYQUAZA_STATE, 6
compare VAR_SOOTOPOLIS_CITY_STATE, 6
goto_if_ge SootopolisCity_EventScript_1E607A
compare VAR_RAYQUAZA_STATE, 5
compare VAR_SOOTOPOLIS_CITY_STATE, 5
goto_if_eq SootopolisCity_EventScript_1E6084
compare VAR_RAYQUAZA_STATE, 2
compare VAR_SOOTOPOLIS_CITY_STATE, 2
goto_if_ge SootopolisCity_EventScript_1E6065
msgbox SootopolisCity_Text_1E6F90, MSGBOX_DEFAULT
release
@@ -857,11 +857,11 @@ SootopolisCity_EventScript_1E608E:: @ 81E608E
lockall
applymovement 4, Common_Movement_FacePlayer
waitmovement 0
compare VAR_RAYQUAZA_STATE, 5
compare VAR_SOOTOPOLIS_CITY_STATE, 5
goto_if_eq SootopolisCity_EventScript_1E60D9
compare VAR_RAYQUAZA_STATE, 6
compare VAR_SOOTOPOLIS_CITY_STATE, 6
goto_if_ge SootopolisCity_EventScript_1E60CF
compare VAR_RAYQUAZA_STATE, 1
compare VAR_SOOTOPOLIS_CITY_STATE, 1
goto_if_le SootopolisCity_EventScript_1E60CF
msgbox SootopolisCity_Text_1E690B, MSGBOX_DEFAULT
closemessage
@@ -884,12 +884,12 @@ SootopolisCity_EventScript_1E60E3:: @ 81E60E3
lockall
applymovement 5, Common_Movement_FacePlayer
waitmovement 0
compare VAR_RAYQUAZA_STATE, 5
compare VAR_SOOTOPOLIS_CITY_STATE, 5
goto_if_eq SootopolisCity_EventScript_1E612D
goto_if_set FLAG_SYS_GAME_CLEAR, SootopolisCity_EventScript_1E6137
compare VAR_RAYQUAZA_STATE, 6
compare VAR_SOOTOPOLIS_CITY_STATE, 6
goto_if_ge SootopolisCity_EventScript_1E6141
compare VAR_RAYQUAZA_STATE, 1
compare VAR_SOOTOPOLIS_CITY_STATE, 1
goto_if_le SootopolisCity_EventScript_1E6141
msgbox SootopolisCity_Text_1E6692, MSGBOX_DEFAULT
closemessage
@@ -930,11 +930,11 @@ SootopolisCity_EventScript_1E6166:: @ 81E6166
applymovement 7, Common_Movement_FacePlayer
waitmovement 0
call_if_unset FLAG_STEVEN_GUIDES_TO_CAVE_OF_ORIGIN, SootopolisCity_EventScript_1E61CC
compare VAR_RAYQUAZA_STATE, 2
compare VAR_SOOTOPOLIS_CITY_STATE, 2
goto_if_eq SootopolisCity_EventScript_1E61AE
compare VAR_RAYQUAZA_STATE, 3
compare VAR_SOOTOPOLIS_CITY_STATE, 3
goto_if_eq SootopolisCity_EventScript_1E61C2
compare VAR_RAYQUAZA_STATE, 4
compare VAR_SOOTOPOLIS_CITY_STATE, 4
goto_if_eq SootopolisCity_EventScript_1E61C2
goto_if_set FLAG_SOOTOPOLIS_ARCHIE_MAXIE_LEAVE, SootopolisCity_EventScript_1E61B8
msgbox SootopolisCity_Text_1E78E5, MSGBOX_DEFAULT
@@ -1263,7 +1263,7 @@ SootopolisCity_EventScript_1E635D:: @ 81E635D
lockall
applymovement 15, Common_Movement_FacePlayer
waitmovement 0
compare VAR_RAYQUAZA_STATE, 5
compare VAR_SOOTOPOLIS_CITY_STATE, 5
goto_if_eq SootopolisCity_EventScript_1E6388
msgbox SootopolisCity_Text_1E67DC, MSGBOX_DEFAULT
closemessage
@@ -1280,7 +1280,7 @@ SootopolisCity_EventScript_1E6388:: @ 81E6388
SootopolisCity_EventScript_1E6393:: @ 81E6393
lockall
compare VAR_RAYQUAZA_STATE, 5
compare VAR_SOOTOPOLIS_CITY_STATE, 5
goto_if_eq SootopolisCity_EventScript_1E63C7
msgbox SootopolisCity_Text_1E6936, MSGBOX_DEFAULT
closemessage
@@ -1304,7 +1304,7 @@ SootopolisCity_EventScript_1E63DB:: @ 81E63DB
lockall
applymovement 13, Common_Movement_FacePlayer
waitmovement 0
compare VAR_RAYQUAZA_STATE, 5
compare VAR_SOOTOPOLIS_CITY_STATE, 5
goto_if_eq SootopolisCity_EventScript_1E6406
msgbox SootopolisCity_Text_1E6C7C, MSGBOX_DEFAULT
closemessage
@@ -1323,7 +1323,7 @@ SootopolisCity_EventScript_1E6411:: @ 81E6411
lockall
applymovement 12, Common_Movement_FacePlayer
waitmovement 0
compare VAR_RAYQUAZA_STATE, 5
compare VAR_SOOTOPOLIS_CITY_STATE, 5
goto_if_eq SootopolisCity_EventScript_1E643C
msgbox SootopolisCity_Text_1E6A50, MSGBOX_DEFAULT
closemessage
@@ -1340,7 +1340,7 @@ SootopolisCity_EventScript_1E643C:: @ 81E643C
SootopolisCity_EventScript_1E6446:: @ 81E6446
lock
faceplayer
compare VAR_RAYQUAZA_STATE, 4
compare VAR_SOOTOPOLIS_CITY_STATE, 4
goto_if_eq SootopolisCity_EventScript_1E64D8
goto_if_set FLAG_RECEIVED_HM07, SootopolisCity_EventScript_1E64E2
goto_if_set FLAG_SOOTOPOLIS_ARCHIE_MAXIE_LEAVE, SootopolisCity_EventScript_1E646F
@@ -1367,14 +1367,14 @@ SootopolisCity_EventScript_1E64B2:: @ 81E64B2
applymovement 18, SootopolisCity_Movement_1E64EC
waitmovement 0
moveobjectoffscreen 18
setvar VAR_SOOTOPOLIS_STATE, 1
setvar VAR_SOOTOPOLIS_WALLACE_STATE, 1
return
SootopolisCity_EventScript_1E64C5:: @ 81E64C5
applymovement 18, SootopolisCity_Movement_1E64EF
waitmovement 0
moveobjectoffscreen 18
setvar VAR_SOOTOPOLIS_STATE, 2
setvar VAR_SOOTOPOLIS_WALLACE_STATE, 2
return
SootopolisCity_EventScript_1E64D8:: @ 81E64D8
@@ -1399,7 +1399,7 @@ SootopolisCity_Movement_1E64EF: @ 81E64EF
SootopolisCity_EventScript_1E64F2:: @ 81E64F2
lockall
compare VAR_RAYQUAZA_STATE, 5
compare VAR_SOOTOPOLIS_CITY_STATE, 5
goto_if_eq SootopolisCity_EventScript_1E6509
msgbox SootopolisCity_Text_1E72DB, MSGBOX_DEFAULT
closemessage
@@ -1415,7 +1415,7 @@ SootopolisCity_EventScript_1E6509:: @ 81E6509
SootopolisCity_EventScript_1E651F:: @ 81E651F
lockall
compare VAR_RAYQUAZA_STATE, 5
compare VAR_SOOTOPOLIS_CITY_STATE, 5
goto_if_eq SootopolisCity_EventScript_1E6536
msgbox SootopolisCity_Text_1E7460, MSGBOX_DEFAULT
closemessage

View File

@@ -106,7 +106,7 @@ SootopolisCity_Gym_1F_EventScript_224F82:: @ 8224F82
setflag FLAG_HIDE_SOOTOPOLIS_CITY_RESIDENTS
setflag FLAG_HIDE_SOOTOPOLIS_CITY_STEVEN
setflag FLAG_HIDE_SOOTOPOLIS_CITY_WALLACE
setvar VAR_RAYQUAZA_STATE, 6
setvar VAR_SOOTOPOLIS_CITY_STATE, 6
clearflag FLAG_HIDE_SOOTOPOLIS_CITY_MAN_1
setvar VAR_0x8008, 8
call SootopolisCity_Gym_1F_EventScript_271F43

View File

@@ -27,13 +27,13 @@ enum
struct BgTemplate
{
u32 bg:2; // 0x1, 0x2 -> 0x3
u32 charBaseIndex:2; // 0x4, 0x8 -> 0xC
u32 mapBaseIndex:5; // 0x10, 0x20, 0x40, 0x80, 0x100 -> 0x1F0
u32 screenSize:2; // 0x200, 0x400 -> 0x600
u32 paletteMode:1; // 0x800
u32 priority:2; // 0x1000, 0x2000 > 0x3000
u32 baseTile:10;
u16 bg:2; // 0x1, 0x2 -> 0x3
u16 charBaseIndex:2; // 0x4, 0x8 -> 0xC
u16 mapBaseIndex:5; // 0x10, 0x20, 0x40, 0x80, 0x100 -> 0x1F0
u16 screenSize:2; // 0x200, 0x400 -> 0x600
u16 paletteMode:1; // 0x800
u16 priority:2; // 0x1000, 0x2000 > 0x3000
u16 baseTile:10;
};
void ResetBgs(void);

View File

@@ -94,56 +94,56 @@
#define VAR_POKELOT_PRIZE_PLACE 0x404D
#define VAR_UNUSED_0x404E 0x404E // Unused Var
#define VAR_LOTAD_SIZE_RECORD 0x404F
#define VAR_0x4050 0x4050
#define VAR_ROUTE102_ACCESSIBLE 0x4051
#define VAR_UNUSED_0x4052 0x4052 // Unused Var
#define VAR_LAVARIDGE_RIVAL_STATE 0x4053
#define VAR_CURRENT_SECRET_BASE 0x4054
#define VAR_UNUSED_0x4055 0x4055 // Unused Var
#define VAR_UNUSED_0x4056 0x4056 // Unused Var
#define VAR_PETALBURG_STATE 0x4057
#define VAR_SLATEPORT_STATE 0x4058
#define VAR_UNUSED_0x4059 0x4059 // Unused Var
#define VAR_RUSTBORO_STATE 0x405A
#define VAR_UNUSED_0x405B 0x405B // Unused Var
#define VAR_UNUSED_0x405C 0x405C // Unused Var
#define VAR_MOSSDEEP_STATE 0x405D
#define VAR_RAYQUAZA_STATE 0x405E
#define VAR_UNUSED_0x405F 0x405F // Unused Var
#define VAR_LITTLEROOT_TOWN_STATE 0x4050
#define VAR_OLDALE_TOWN_STATE 0x4051
#define VAR_DEWFORD_TOWN_STATE 0x4052 // Unused Var
#define VAR_LAVARIDGE_TOWN_STATE 0x4053
#define VAR_CURRENT_SECRET_BASE 0x4054 // was probably allocated for VAR_FALLARBOR_TOWN_STATE at one point
#define VAR_VERDANTURF_TOWN_STATE 0x4055 // Unused Var
#define VAR_PACIFIDLOG_TOWN_STATE 0x4056 // Unused Var
#define VAR_PETALBURG_CITY_STATE 0x4057
#define VAR_SLATEPORT_CITY_STATE 0x4058
#define VAR_MAUVILLE_CITY_STATE 0x4059 // Unused Var
#define VAR_RUSTBORO_CITY_STATE 0x405A
#define VAR_FORTREE_CITY_STATE 0x405B // Unused Var
#define VAR_LILYCOVE_CITY_STATE 0x405C // Unused Var
#define VAR_MOSSDEEP_CITY_STATE 0x405D
#define VAR_SOOTOPOLIS_CITY_STATE 0x405E
#define VAR_EVER_GRANDE_CITY_STATE 0x405F // Unused Var
#define VAR_ROUTE101_STATE 0x4060
#define VAR_UNUSED_0x4061 0x4061 // Unused Var
#define VAR_UNUSED_0x4062 0x4062 // Unused Var
#define VAR_0x4063 0x4063
#define VAR_UNUSED_0x4064 0x4064 // Unused Var
#define VAR_UNUSED_0x4065 0x4065 // Unused Var
#define VAR_UNUSED_0x4066 0x4066 // Unused Var
#define VAR_UNUSED_0x4067 0x4067 // Unused Var
#define VAR_UNUSED_0x4068 0x4068 // Unused Var
#define VAR_ROUTE102_STATE 0x4061 // Unused Var
#define VAR_ROUTE103_STATE 0x4062 // Unused Var
#define VAR_ROUTE104_STATE 0x4063
#define VAR_ROUTE105_STATE 0x4064 // Unused Var
#define VAR_ROUTE106_STATE 0x4065 // Unused Var
#define VAR_ROUTE107_STATE 0x4066 // Unused Var
#define VAR_ROUTE108_STATE 0x4067 // Unused Var
#define VAR_ROUTE109_STATE 0x4068 // Unused Var
#define VAR_ROUTE110_STATE 0x4069
#define VAR_UNUSED_0x406A 0x406A // Unused Var
#define VAR_UNUSED_0x406B 0x406B // Unused Var
#define VAR_UNUSED_0x406C 0x406C // Unused Var
#define VAR_UNUSED_0x406D 0x406D // Unused Var
#define VAR_UNUSED_0x406E 0x406E // Unused Var
#define VAR_ROUTE111_STATE 0x406A // Unused Var
#define VAR_ROUTE112_STATE 0x406B // Unused Var
#define VAR_ROUTE113_STATE 0x406C // Unused Var
#define VAR_ROUTE114_STATE 0x406D // Unused Var
#define VAR_ROUTE115_STATE 0x406E // Unused Var
#define VAR_ROUTE116_STATE 0x406F
#define VAR_UNUSED_0x4070 0x4070 // Unused Var
#define VAR_ROUTE117_STATE 0x4070 // Unused Var
#define VAR_ROUTE118_STATE 0x4071
#define VAR_ROUTE119_STATE 0x4072
#define VAR_UNUSED_0x4073 0x4073 // Unused Var
#define VAR_ROUTE120_STATE 0x4073 // Unused Var
#define VAR_ROUTE121_STATE 0x4074
#define VAR_UNUSED_0x4075 0x4075 // Unused Var
#define VAR_UNUSED_0x4076 0x4076 // Unused Var
#define VAR_UNUSED_0x4077 0x4077 // Unused Var
#define VAR_UNUSED_0x4078 0x4078 // Unused Var
#define VAR_UNUSED_0x4079 0x4079 // Unused Var
#define VAR_UNUSED_0x407A 0x407A // Unused Var
#define VAR_ROUTE122_STATE 0x4075 // Unused Var
#define VAR_ROUTE123_STATE 0x4076 // Unused Var
#define VAR_ROUTE124_STATE 0x4077 // Unused Var
#define VAR_ROUTE125_STATE 0x4078 // Unused Var
#define VAR_ROUTE126_STATE 0x4079 // Unused Var
#define VAR_ROUTE127_STATE 0x407A // Unused Var
#define VAR_ROUTE128_STATE 0x407B
#define VAR_UNUSED_0x407C 0x407C // Unused Var
#define VAR_UNUSED_0x407D 0x407D // Unused Var
#define VAR_UNUSED_0x407E 0x407E // Unused Var
#define VAR_UNUSED_0x407F 0x407F // Unused Var
#define VAR_UNUSED_0x4080 0x4080 // Unused Var
#define VAR_UNUSED_0x4081 0x4081 // Unused Var
#define VAR_ROUTE129_STATE 0x407C // Unused Var
#define VAR_ROUTE130_STATE 0x407D // Unused Var
#define VAR_ROUTE131_STATE 0x407E // Unused Var
#define VAR_ROUTE132_STATE 0x407F // Unused Var
#define VAR_ROUTE133_STATE 0x4080 // Unused Var
#define VAR_ROUTE134_STATE 0x4081 // Unused Var
#define VAR_LITTLEROOT_HOUSES_STATE 0x4082
#define VAR_UNUSED_0x4083 0x4083 // Unused Var
#define VAR_BIRCH_LAB_STATE 0x4084
@@ -156,7 +156,7 @@
#define VAR_UNUSED_0x408B 0x408B // Unused Var
#define VAR_LITTLEROOT_HOUSES_STATE_2 0x408C
#define VAR_LITTLEROOT_RIVAL_STATE 0x408D
#define VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE 0x408E
#define VAR_BOARD_BRINEY_BOAT_STATE 0x408E
#define VAR_DEVON_CORP_3F_STATE 0x408F
#define VAR_BRINEY_HOUSE_STATE 0x4090
#define VAR_UNUSED_0x4091 0x4091 // Unused Var
@@ -165,7 +165,7 @@
#define VAR_LILYCOVE_MUSEUM_2F_STATE 0x4094
#define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095
#define VAR_BRINEY_LOCATION 0x4096
#define VAR_INIT_SECRET_BASE 0x4097
#define VAR_INIT_SECRET_BASE 0x4097
#define VAR_PETALBURG_WOODS_STATE 0x4098
#define VAR_LILYCOVE_CONTEST_LOBBY_STATE 0x4099
#define VAR_RUSTURF_TUNNEL_STATE 0x409A
@@ -213,11 +213,11 @@
#define VAR_FOSSIL_RESURRECTION_STATE 0x40C4
#define VAR_WHICH_FOSSIL_REVIVED 0x40C5
#define VAR_STEVENS_HOUSE_STATE 0x40C6
#define VAR_OLDALE_STATE 0x40C7
#define VAR_OLDALE_RIVAL_STATE 0x40C7
#define VAR_JAGGED_PASS_STATE 0x40C8
#define VAR_SCOTT_PETALBURG_ENCOUNTER 0x40C9
#define VAR_SKY_PILLAR_STATE 0x40CA
#define VAR_ROUTE_111_STATE 0x40CB
#define VAR_MIRAGE_TOWER_STATE 0x40CB
#define VAR_FOSSIL_MANIAC_STATE 0x40CC
#define VAR_CABLE_CLUB_TUTORIAL_STATE 0x40CD
#define VAR_FRONTIER_BATTLE_MODE 0x40CE
@@ -225,14 +225,14 @@
#define VAR_HAS_ENTERED_BATTLE_FRONTIER 0x40D0 // Var is used like a flag.
#define VAR_SCOTT_STATE 0x40D1
#define VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE 0x40D2
#define VAR_0x40D3 0x40D3
#define VAR_DEX_UPGRADE_JOHTO_STARTER_STATE 0x40D3
#define VAR_SS_TIDAL_SCOTT_STATE 0x40D4 // Always equal to FLAG_MET_SCOTT_ON_SS_TIDAL
#define VAR_ROAMER_POKEMON 0x40D5 // 0 = Latias, 1 = Latios
#define VAR_TRAINER_HILL_IS_ACTIVE 0x40D6
#define VAR_SKY_PILLAR_RAQUAZA_CRY_DONE 0x40D7
#define VAR_SOOTOPOLIS_STATE 0x40D8
#define VAR_SOOTOPOLIS_WALLACE_STATE 0x40D8
#define VAR_HAS_TALKED_TO_SEAFLOOR_CAVERN_ENTRANCE_GRUNT 0x40D9
#define VAR_0x40DA 0x40DA
#define VAR_REGISTER_BIRCH_STATE 0x40DA
#define VAR_UNUSED_0x40DB 0x40DB // Unused Var
#define VAR_UNUSED_0x40DC 0x40DC // Unused Var
#define VAR_EVENT_PICHU_SLOT 0x40DD

View File

@@ -19,16 +19,23 @@
#if defined (__APPLE__) || defined (__CYGWIN__) || defined (_MSC_VER)
#define _(x) x
#define __(x) x
#define INCBIN_U8 {0}
#define INCBIN_U16 {0}
#define INCBIN_U32 {0}
#define INCBIN_S8 {0}
#define INCBIN_S16 {0}
#define INCBIN_S32 {0}
// Fool CLion IDE
#define INCBIN(x) {0}
#define INCBIN_U8 INCBIN
#define INCBIN_U16 INCBIN
#define INCBIN_U32 INCBIN
#define INCBIN_S8 INCBIN
#define INCBIN_S16 INCBIN
#define INCBIN_S32 INCBIN
#endif // IDE support
#define ARRAY_COUNT(array) (size_t)(sizeof(array) / sizeof((array)[0]))
// GameFreak used a macro called "NELEMS", as evidenced by
// AgbAssert calls.
#define NELEMS(arr) (sizeof(arr)/sizeof(*(arr)))
#define SWAP(a, b, temp) \
{ \
temp = a; \

View File

@@ -4732,6 +4732,20 @@ extern const u32 gBattleAnimSpritePal_PowerGem[];
extern const u32 gBattleAnimSpritePal_StoneEdge[];
extern const u32 gBattleAnimSpritePal_StealthRock[];
extern const u32 gBattleAnimSpritePal_PoisonJab[];
// New Battle Anim Particles
extern const u32 gBattleAnimSpriteGfx_WhiteStreak[];
extern const u32 gBattleAnimSpritePal_WhiteStreak[];
extern const u32 gBattleAnimSpriteGfx_PurpleJab[];
extern const u32 gBattleAnimSpritePal_PurpleJab[];
extern const u32 gBattleAnimSpritePal_ToxicSpikes[];
extern const u32 gBattleAnimSpriteGfx_EnergyBall[];
extern const u32 gBattleAnimSpritePal_EnergyBall[];
extern const u32 gBattleAnimSpriteGfx_MegaStone[];
extern const u32 gBattleAnimSpritePal_MegaStone[];
extern const u32 gBattleAnimSpriteGfx_MegaParticles[];
extern const u32 gBattleAnimSpritePal_MegaParticles[];
extern const u32 gBattleAnimSpriteGfx_MegaSymbol[];
extern const u32 gBattleAnimSpritePal_MegaSymbol[];
extern const u32 gBattleAnimBgImage_Dark[];
extern const u32 gBattleAnimBgImage_Ghost[];
@@ -4993,19 +5007,11 @@ extern const u16 gUsePokeblockCondition_Pal[];
extern const u32 gUnknown_08DE34B8[];
extern const u16 gUnknown_08DE3398[];
// New Battle Anim Particles
extern const u32 gBattleAnimSpriteGfx_WhiteStreak[];
extern const u32 gBattleAnimSpritePal_WhiteStreak[];
extern const u32 gBattleAnimSpriteGfx_PurpleJab[];
extern const u32 gBattleAnimSpritePal_PurpleJab[];
extern const u32 gBattleAnimSpritePal_ToxicSpikes[];
extern const u32 gBattleAnimSpriteGfx_EnergyBall[];
extern const u32 gBattleAnimSpritePal_EnergyBall[];
extern const u32 gBattleAnimSpriteGfx_MegaStone[];
extern const u32 gBattleAnimSpritePal_MegaStone[];
extern const u32 gBattleAnimSpriteGfx_MegaParticles[];
extern const u32 gBattleAnimSpritePal_MegaParticles[];
extern const u32 gBattleAnimSpriteGfx_MegaSymbol[];
extern const u32 gBattleAnimSpritePal_MegaSymbol[];
// Pokenav
extern const u32 gPokenavMessageBox_Gfx[];
extern const u32 gPokenavMessageBox_Tilemap[];
extern const u16 gPokenavMessageBox_Pal[];
extern const u32 gPokenavOptions_Gfx[];
extern const u16 gPokenavOptions_Pal[];
#endif //GUARD_GRAPHICS_H

View File

@@ -7,16 +7,18 @@
typedef u32 (*LoopedTask)(s32 state);
struct PokenavMonList
{
u8 boxId;
u8 monId;
u16 unk6;
};
struct PokenavSub18
{
u16 unk0;
u16 unk2;
struct PokenavMonList
{
u8 boxId;
u8 monId;
u16 unk6;
} unk4[TOTAL_BOXES_COUNT * IN_BOX_COUNT + PARTY_SIZE];
struct PokenavMonList unk4[TOTAL_BOXES_COUNT * IN_BOX_COUNT + PARTY_SIZE];
};
// Return values of LoopedTask functions.
@@ -75,7 +77,7 @@ void SetVBlankCallback_(IntrCallback callback);
// pokenav_match_call_ui.c
struct MatchCallListTemplate
{
u32 unk0;
struct PokenavMonList * unk0;
u16 unk4;
u16 unk6;
u8 unk8;
@@ -85,9 +87,10 @@ struct MatchCallListTemplate
u8 unkC;
u8 unkD;
u8 unkE;
void (*unk10)(u32, u8 *a1);
void (*unk10)(struct PokenavMonList *, u8 *a1);
void (*unk14)(u16 a0, u32 a1, u32 a2);
};
u32 GetSelectedMatchCall(void);
bool32 sub_81C8224(void);
int MatchCall_MoveCursorUp(void);
@@ -138,44 +141,51 @@ void sub_81C7B40(void);
struct Sprite *PauseSpinningPokenavSprite(void);
void ResumeSpinningPokenavSprite(void);
void sub_81C7E14(u32 arg0);
void sub_81C7FC4(u32 arg0, bool32 arg1);
void sub_81C7880(void);
void sub_81C7990(u32 a0, u16 a1);
u32 PokenavMainMenuLoopedTaskIsActive(void);
bool32 WaitForPokenavShutdownFade(void);
void sub_81C7834(void *func1, void *func2);
void ShutdownPokenav(void);
// pokenav_unk_1.c
bool32 sub_81C9298(void);
bool32 sub_81C92CC(void);
bool32 sub_81C9304(void);
bool32 sub_81C9338(void);
bool32 sub_81C9368(void);
bool32 PokenavCallback_Init_0(void);
bool32 PokenavCallback_Init_4(void);
bool32 PokenavCallback_Init_5(void);
bool32 PokenavCallback_Init_2(void);
bool32 PokenavCallback_Init_3(void);
u32 sub_81C941C(void);
void sub_81C9430(void);
int sub_81C9894(void);
const u8 *sub_81CAF78(int index, u8 *arg1);
int sub_81C98A4(void);
int sub_81C98B4(void);
u16 sub_81C98C4(void);
// pokenav_unk_2.c
bool32 sub_81C9924(void);
bool32 sub_81C9940(void);
void sub_81C9990(s32 ltIdx);
bool32 sub_81C99C0(void);
void sub_81C99D4(void);
void sub_81CAADC(void);
// pokenav_unk_3.c
struct Pokenav3Struct_Unk1C
{
u8 unk0;
u8 unk1;
u16 unk2;
};
bool32 sub_81CAAE8(void);
bool32 PokenavCallback_Init_11(void);
u32 sub_81CAB24(void);
void sub_81CAB38(void);
int sub_81CAE28(void);
int sub_81CAE38(void);
int sub_81CAE48(void);
struct Pokenav3Struct_Unk1C *sub_81CAE94(void);
struct PokenavMonList *sub_81CAE94(void);
u16 sub_81CAEA4(int);
bool32 sub_81CAEBC(int index);
int sub_81CAF04(int index);
const u8 *sub_81CAFD8(int index, int textType);
u16 sub_81CB01C(void);
u16 sub_81CB02C(int arg0);
void sub_81CB050(u32 arg0, u8 *str);
void sub_81CB050(struct PokenavMonList * arg0, u8 *str);
u8 sub_81CB0C8(int rematchIndex);
int sub_81CB0E4(int index);
bool32 sub_81CAE08(int);
@@ -183,21 +193,25 @@ int sub_81CB128(int index);
// pokenav_unk_4.c
bool32 sub_81CB260(void);
void sub_81CB29C(int index);
void sub_81CB29C(s32 index);
u32 sub_81CB2CC(void);
void sub_81CB2E0(void);
void sub_81CBD48(u16 windowId, u32 a1);
// pokenav_unk_5.c
u32 sub_81CC4D4(void);
u32 PokenavCallback_Init_6(void);
void sub_81CC524(void);
u32 sub_81CC554(void);
bool32 sub_81CC5F4(void);
void sub_81CC62C(int);
void sub_81CC62C(s32);
u32 sub_81CC65C(void);
void sub_81CC670(void);
// pokenav_unk_6.c
u32 PokenavCallback_Init_7(void);
u32 PokenavCallback_Init_9(void);
u32 sub_81CD070(void);
void sub_81CD1C0(void);
bool32 sub_81CD3C4(void);
bool32 sub_81CDD5C(void);
struct UnknownStruct_81D1ED4 *sub_81CDC70(void);
@@ -213,6 +227,41 @@ void *sub_81CDCB4(u8 id);
void *sub_81CDCD4(u8 id);
// pokenav_unk_7.c
bool32 sub_81CDDD4(void);
void sub_81CDE2C(s32);
u32 sub_81CDE64(void);
void sub_81CECA0(void);
u8 sub_81CEF14(void);
// pokenav_unk_8.c
u32 PokenavCallback_Init_8(void);
u32 PokenavCallback_Init_10(void);
u32 sub_81CEFDC(void);
void sub_81CEFF0(void);
bool32 sub_81CF330(void);
bool32 sub_81CF368(void);
void sub_81CF3A0(s32);
u32 sub_81CF3D0(void);
void sub_81CF3F8(void);
// pokenav_unk_9.c
u32 PokenavCallback_Init_12(void);
u32 PokenavCallback_Init_14(void);
u32 sub_81CFA34(void);
void sub_81CFA48(void);
bool32 sub_81CFDD0(void);
bool32 sub_81CFE08(void);
void sub_81CFE40(s32);
u32 sub_81CFE70(void);
void sub_81CFE98(void);
// pokenav_unk_10.c
u32 PokenavCallback_Init_13(void);
u32 sub_81D04A0(void);
void sub_81D04B8(void);
bool32 sub_81D0978(void);
void sub_81D09B0(s32);
u32 sub_81D09E0(void);
void sub_81D09F4(void);
#endif // GUARD_POKENAV_H

View File

@@ -2766,12 +2766,16 @@ extern const u8 gUnknown_085EBE06[];
extern const u8 gUnknown_085EBE19[];
extern const u8 gUnknown_085EBE2D[];
extern const u8 gUnknown_085EBE41[];
extern const u8 gText_NoRibbonWinners[];
// pokenav_unk_4
extern const u8 gUnknown_085EC017[];
extern const u8 gUnknown_085EC01C[];
extern const u8 gUnknown_085EC022[];
// pokenav_unk_8
extern const u8 gText_NumberF700[];
// pokenav_unk_10
extern const u8 gText_RibbonsF700[];

View File

@@ -24,7 +24,7 @@ const struct WarpEvent* sub_81D6134(u8 warpEventId);
u16 LocalIdToHillTrainerId(u8 localId);
bool8 GetHillTrainerFlag(u8 eventObjectId);
void SetHillTrainerFlag(void);
const u8 *sub_81D62AC(void);
const u8 *GetTrainerHillTrainerScript(void);
void FillHillTrainerParty(void);
void FillHillTrainersParties(void);
u32 sub_81D63C4(void);

View File

@@ -47,292 +47,290 @@ SECTIONS {
.text :
ALIGN(4)
{
asm/crt0.o(.text*);
src/main.o(.text*);
src/alloc.o(.text*);
src/dma3_manager.o(.text*);
src/gpu_regs.o(.text*);
src/bg.o(.text*);
src/blit.o(.text*);
src/window.o(.text*);
src/text.o(.text*);
src/sprite.o(.text*);
src/string_util.o(.text*);
src/link.o(.text*);
src/link_rfu.o(.text*);
src/union_room.o(.text*);
src/mystery_gift.o(.text*);
src/union_room_player_avatar.o(.text*);
src/union_room_battle.o(.text*);
src/mevent2.o(.text*);
src/mevent_801BAAC.o(.text*);
src/mevent_server.o(.text*);
src/mevent_client.o(.text*);
src/mevent_server_helpers.o(.text*);
src/mevent_news.o(.text*);
src/union_room_chat.o(.text*);
src/berry_crush.o(.text*);
asm/berry_crush.o(.text*);
src/berry_powder.o(.text*);
src/dodrio_berry_picking.o(.text*);
src/pokemon_jump.o(.text*);
src/rtc.o(.text*);
src/main_menu.o(.text*);
src/battle_controllers.o(.text*);
src/decompress.o(.text*);
src/rom_8034C54.o(.text*);
src/battle_bg.o(.text*);
src/battle_main.o(.text*);
src/battle_util.o(.text*);
src/battle_script_commands.o(.text*);
src/battle_util2.o(.text*);
src/battle_controller_player.o(.text*);
src/battle_gfx_sfx_util.o(.text*);
src/battle_controller_opponent.o(.text*);
src/battle_ai_switch_items.o(.text*);
src/battle_controller_link_opponent.o(.text*);
src/pokemon.o(.text*);
src/trig.o(.text*);
src/random.o(.text*);
src/util.o(.text*);
src/daycare.o(.text*);
src/egg_hatch.o(.text*);
src/battle_interface.o(.text*);
src/smokescreen.o(.text*);
src/pokeball.o(.text*);
src/load_save.o(.text*);
src/trade.o(.text*);
src/berry_blender.o(.text*);
src/play_time.o(.text*);
src/new_game.o(.text*);
src/overworld.o(.text*);
src/fieldmap.o(.text*);
src/metatile_behavior.o(.text*);
src/field_camera.o(.text*);
src/field_door.o(.text*);
src/field_player_avatar.o(.text*);
src/event_object_movement.o(.text*);
src/field_message_box.o(.text*);
src/event_obj_lock.o(.text*);
src/text_window.o(.text*);
src/script.o(.text*);
src/scrcmd.o(.text*);
src/field_control_avatar.o(.text*);
src/event_data.o(.text*);
src/coord_event_weather.o(.text*);
src/field_tasks.o(.text*);
src/clock.o(.text*);
src/reset_rtc_screen.o(.text*);
src/start_menu.o(.text*);
src/tileset_anims.o(.text*);
src/palette.o(.text*);
src/sound.o(.text*);
src/battle_anim.o(.text*);
src/battle_anim_mons.o(.text*);
src/task.o(.text*);
src/reshow_battle_screen.o(.text*);
src/battle_anim_status_effects.o(.text*);
src/title_screen.o(.text*);
src/field_weather.o(.text*);
src/field_weather_effect.o(.text*);
src/field_screen_effect.o(.text*);
src/battle_setup.o(.text*);
src/cable_club.o(.text*);
src/trainer_see.o(.text*);
src/wild_encounter.o(.text*);
src/field_effect.o(.text*);
src/scanline_effect.o(.text*);
src/option_menu.o(.text*);
src/pokedex.o(.text*);
src/trainer_card.o(.text*);
src/frontier_pass.o(.text*);
src/pokemon_storage_system.o(.text*);
src/pokemon_icon.o(.text*);
src/script_movement.o(.text*);
src/fldeff_cut.o(.text*);
src/mail_data.o(.text*);
src/map_name_popup.o(.text*);
src/item_menu_icons.o(.text*);
src/battle_anim_mon_movement.o(.text*);
src/item.o(.text*);
src/contest.o(.text*);
src/shop.o(.text*);
src/fldeff_escalator.o(.text*);
src/berry.o(.text*);
src/script_menu.o(.text*);
src/naming_screen.o(.text*);
src/money.o(.text*);
src/contest_effect.o(.text*);
src/record_mixing.o(.text*);
src/secret_base.o(.text*);
src/tv.o(.text*);
src/contest_link_80F57C4.o(.text*);
src/script_pokemon_util_80F87D8.o(.text*);
src/field_poison.o(.text*);
src/pokemon_size_record.o(.text*);
src/fldeff_misc.o(.text*);
src/field_special_scene.o(.text*);
src/rotating_gate.o(.text*);
src/safari_zone.o(.text*);
src/contest_link_80FC4F4.o(.text*);
src/item_use.o(.text*);
src/battle_anim_effects_1.o(.text*);
src/battle_anim_effects_2.o(.text*);
src/water.o(.text*);
src/fire.o(.text*);
src/electric.o(.text*);
src/ice.o(.text*);
src/fight.o(.text*);
src/poison.o(.text*);
src/flying.o(.text*);
src/psychic.o(.text*);
src/bug.o(.text*);
src/rock.o(.text*);
src/ghost.o(.text*);
src/dragon.o(.text*);
src/dark.o(.text*);
src/ground.o(.text*);
src/normal.o(.text*);
src/battle_anim_utility_funcs.o(.text*);
src/battle_intro.o(.text*);
src/bike.o(.text*);
src/easy_chat.o(.text*);
src/mon_markings.o(.text*);
src/mauville_old_man.o(.text*);
src/mail.o(.text*);
src/menu_helpers.o(.text*);
src/dewford_trend.o(.text*);
src/heal_location.o(.text*);
src/region_map.o(.text*);
src/contest_painting_effects.o(.text*);
src/decoration.o(.text*);
src/slot_machine.o(.text*);
src/contest_painting.o(.text*);
src/battle_ai_script_commands.o(.text*);
src/trader.o(.text*);
src/starter_choose.o(.text*);
src/wallclock.o(.text*);
src/fldeff_rocksmash.o(.text*);
src/fldeff_dig.o(.text*);
src/pokeblock.o(.text*);
src/fldeff_flash.o(.text*);
src/post_battle_event_funcs.o(.text*);
src/time_events.o(.text*);
src/birch_pc.o(.text*);
src/hof_pc.o(.text*);
src/field_specials.o(.text*);
src/battle_records.o(.text*);
src/pokedex_area_screen.o(.text*);
src/evolution_scene.o(.text*);
src/roulette.o(.text*);
src/pokedex_cry_screen.o(.text*);
src/coins.o(.text*);
src/landmark.o(.text*);
src/fldeff_strength.o(.text*);
src/battle_transition.o(.text*);
src/battle_controller_link_partner.o(.text*);
src/battle_message.o(.text*);
src/cable_car.o(.text*);
src/math_util.o(.text*);
src/roulette_util.o(.text*);
src/rom_81520A8.o(.text*);
src/save.o(.text*);
src/mystery_event_script.o(.text*);
src/field_effect_helpers.o(.text*);
src/contest_ai.o(.text*);
src/battle_anim_sound_tasks.o(.text*);
src/battle_controller_safari.o(.text*);
src/fldeff_sweetscent.o(.text*);
src/battle_anim_effects_3.o(.text*);
src/move_relearner.o(.text*);
src/fldeff_softboiled.o(.text*);
src/decoration_inventory.o(.text*);
src/roamer.o(.text*);
src/battle_tower.o(.text*);
src/use_pokeblock.o(.text*);
src/battle_controller_wally.o(.text*);
src/player_pc.o(.text*);
src/intro.o(.text*);
src/reset_save_heap.o(.text*);
src/field_region_map.o(.text*);
src/battle_anim_special.o(.text*);
src/hall_of_fame.o(.text*);
src/credits.o(.text*);
src/lottery_corner.o(.text*);
src/diploma.o(.text*);
src/berry_tag_screen.o(.text*);
src/mystery_event_menu.o(.text*);
src/save_failed_screen.o(.text*);
src/braille_puzzles.o(.text*);
src/pokeblock_feed.o(.text*);
src/clear_save_data_screen.o(.text*);
src/intro_credits_graphics.o(.text*);
src/evolution_graphics.o(.text*);
src/bard_music.o(.text*);
src/fldeff_teleport.o(.text*);
src/battle_tv.o(.text*);
src/pokemon_animation.o(.text*);
src/recorded_battle.o(.text*);
src/battle_controller_recorded_opponent.o(.text*);
src/battle_controller_recorded_player.o(.text*);
src/trainer_pokemon_sprites.o(.text*);
src/lilycove_lady.o(.text*);
src/battle_dome.o(.text*);
src/battle_palace.o(.text*);
src/match_call.o(.text*);
src/menu.o(.text*);
src/battle_factory_screen.o(.text*);
src/apprentice.o(.text*);
src/frontier_util.o(.text*);
src/battle_arena.o(.text*);
src/battle_factory.o(.text*);
src/battle_pike.o(.text*);
src/mossdeep_gym.o(.text*);
src/battle_pyramid.o(.text*);
src/item_menu.o(.text*);
src/list_menu.o(.text*);
src/dynamic_placeholder_text_util.o(.text*);
src/save_location.o(.text*);
src/item_icon.o(.text*);
src/party_menu.o(.text*);
src/battle_tent.o(.text*);
src/unk_text_util_2.o(.text*);
src/multiboot.o(.text*);
src/unk_81BAD84.o(.text*);
src/battle_controller_player_partner.o(.text*);
src/mirage_tower.o(.text*);
src/berry_fix_program.o(.text*);
src/pokemon_summary_screen.o(.text*);
src/unk_pokedex_area_screen_helper.o(.text*);
src/battle_pyramid_bag.o(.text*);
src/pokenav.o(.text*);
src/pokenav_main_menu.o(.text*);
src/pokenav_match_call_ui.o(.text*);
src/pokenav_unk_1.o(.text*);
src/pokenav_unk_2.o(.text*);
asm/pokenav_unk_2.o(.text*);
src/pokenav_unk_3.o(.text*);
src/pokenav_unk_4.o(.text*);
src/pokenav_unk_5.o(.text*);
src/pokenav_unk_6.o(.text*);
src/pokenav_unk_7.o(.text*);
src/pokenav_unk_8.o(.text*);
asm/pokenav_unk_8.o(.text*);
asm/pokenav_unk_9.o(.text*);
src/pokenav_unk_10.o(.text*);
src/pokenav_match_call_data.o(.text*);
src/menu_specialized.o(.text*);
src/ereader_helpers.o(.text*);
src/faraway_island.o(.text*);
src/ereader_screen.o(.text*);
src/trainer_hill.o(.text*);
src/rayquaza_scene.o(.text*);
src/walda_phrase.o(.text*);
src/contest_link_81D9DE4.o(.text*);
src/gym_leader_rematch.o(.text*);
src/unk_transition.o(.text*);
src/battle_debug.o(.text*);
src/international_string_util.o(.text*);
asm/crt0.o(.text);
src/main.o(.text);
src/alloc.o(.text);
src/dma3_manager.o(.text);
src/gpu_regs.o(.text);
src/bg.o(.text);
src/blit.o(.text);
src/window.o(.text);
src/text.o(.text);
src/sprite.o(.text);
src/string_util.o(.text);
src/link.o(.text);
src/link_rfu.o(.text);
src/union_room.o(.text);
src/mystery_gift.o(.text);
src/union_room_player_avatar.o(.text);
src/union_room_battle.o(.text);
src/mevent2.o(.text);
src/mevent_801BAAC.o(.text);
src/mevent_server.o(.text);
src/mevent_client.o(.text);
src/mevent_server_helpers.o(.text);
src/mevent_news.o(.text);
src/union_room_chat.o(.text);
src/berry_crush.o(.text);
asm/berry_crush.o(.text);
src/berry_powder.o(.text);
src/dodrio_berry_picking.o(.text);
src/pokemon_jump.o(.text);
src/rtc.o(.text);
src/main_menu.o(.text);
src/battle_controllers.o(.text);
src/decompress.o(.text);
src/rom_8034C54.o(.text);
src/battle_bg.o(.text);
src/battle_main.o(.text);
src/battle_util.o(.text);
src/battle_script_commands.o(.text);
src/battle_util2.o(.text);
src/battle_controller_player.o(.text);
src/battle_gfx_sfx_util.o(.text);
src/battle_controller_opponent.o(.text);
src/battle_ai_switch_items.o(.text);
src/battle_controller_link_opponent.o(.text);
src/battle_debug.o(.text);
src/pokemon.o(.text);
src/trig.o(.text);
src/random.o(.text);
src/util.o(.text);
src/daycare.o(.text);
src/egg_hatch.o(.text);
src/battle_interface.o(.text);
src/smokescreen.o(.text);
src/pokeball.o(.text);
src/load_save.o(.text);
src/trade.o(.text);
src/berry_blender.o(.text);
src/play_time.o(.text);
src/new_game.o(.text);
src/overworld.o(.text);
src/fieldmap.o(.text);
src/metatile_behavior.o(.text);
src/field_camera.o(.text);
src/field_door.o(.text);
src/field_player_avatar.o(.text);
src/event_object_movement.o(.text);
src/field_message_box.o(.text);
src/event_obj_lock.o(.text);
src/text_window.o(.text);
src/script.o(.text);
src/scrcmd.o(.text);
src/field_control_avatar.o(.text);
src/event_data.o(.text);
src/coord_event_weather.o(.text);
src/field_tasks.o(.text);
src/clock.o(.text);
src/reset_rtc_screen.o(.text);
src/start_menu.o(.text);
src/tileset_anims.o(.text);
src/palette.o(.text);
src/sound.o(.text);
src/battle_anim.o(.text);
src/battle_anim_mons.o(.text);
src/task.o(.text);
src/reshow_battle_screen.o(.text);
src/battle_anim_status_effects.o(.text);
src/title_screen.o(.text);
src/field_weather.o(.text);
src/field_weather_effect.o(.text);
src/field_screen_effect.o(.text);
src/battle_setup.o(.text);
src/cable_club.o(.text);
src/trainer_see.o(.text);
src/wild_encounter.o(.text);
src/field_effect.o(.text);
src/scanline_effect.o(.text);
src/option_menu.o(.text);
src/pokedex.o(.text);
src/trainer_card.o(.text);
src/frontier_pass.o(.text);
src/pokemon_storage_system.o(.text);
src/pokemon_icon.o(.text);
src/script_movement.o(.text);
src/fldeff_cut.o(.text);
src/mail_data.o(.text);
src/map_name_popup.o(.text);
src/item_menu_icons.o(.text);
src/battle_anim_mon_movement.o(.text);
src/item.o(.text);
src/contest.o(.text);
src/shop.o(.text);
src/fldeff_escalator.o(.text);
src/berry.o(.text);
src/script_menu.o(.text);
src/naming_screen.o(.text);
src/money.o(.text);
src/contest_effect.o(.text);
src/record_mixing.o(.text);
src/secret_base.o(.text);
src/tv.o(.text);
src/contest_link_80F57C4.o(.text);
src/script_pokemon_util_80F87D8.o(.text);
src/field_poison.o(.text);
src/pokemon_size_record.o(.text);
src/fldeff_misc.o(.text);
src/field_special_scene.o(.text);
src/rotating_gate.o(.text);
src/safari_zone.o(.text);
src/contest_link_80FC4F4.o(.text);
src/item_use.o(.text);
src/battle_anim_effects_1.o(.text);
src/battle_anim_effects_2.o(.text);
src/water.o(.text);
src/fire.o(.text);
src/electric.o(.text);
src/ice.o(.text);
src/fight.o(.text);
src/poison.o(.text);
src/flying.o(.text);
src/psychic.o(.text);
src/bug.o(.text);
src/rock.o(.text);
src/ghost.o(.text);
src/dragon.o(.text);
src/dark.o(.text);
src/ground.o(.text);
src/normal.o(.text);
src/battle_anim_utility_funcs.o(.text);
src/battle_intro.o(.text);
src/bike.o(.text);
src/easy_chat.o(.text);
src/mon_markings.o(.text);
src/mauville_old_man.o(.text);
src/mail.o(.text);
src/menu_helpers.o(.text);
src/dewford_trend.o(.text);
src/heal_location.o(.text);
src/region_map.o(.text);
src/contest_painting_effects.o(.text);
src/decoration.o(.text);
src/slot_machine.o(.text);
src/contest_painting.o(.text);
src/battle_ai_script_commands.o(.text);
src/trader.o(.text);
src/starter_choose.o(.text);
src/wallclock.o(.text);
src/fldeff_rocksmash.o(.text);
src/fldeff_dig.o(.text);
src/pokeblock.o(.text);
src/fldeff_flash.o(.text);
src/post_battle_event_funcs.o(.text);
src/time_events.o(.text);
src/birch_pc.o(.text);
src/hof_pc.o(.text);
src/field_specials.o(.text);
src/battle_records.o(.text);
src/pokedex_area_screen.o(.text);
src/evolution_scene.o(.text);
src/roulette.o(.text);
src/pokedex_cry_screen.o(.text);
src/coins.o(.text);
src/landmark.o(.text);
src/fldeff_strength.o(.text);
src/battle_transition.o(.text);
src/battle_controller_link_partner.o(.text);
src/battle_message.o(.text);
src/cable_car.o(.text);
src/math_util.o(.text);
src/roulette_util.o(.text);
src/rom_81520A8.o(.text);
src/save.o(.text);
src/mystery_event_script.o(.text);
src/field_effect_helpers.o(.text);
src/contest_ai.o(.text);
src/battle_anim_sound_tasks.o(.text);
src/battle_controller_safari.o(.text);
src/fldeff_sweetscent.o(.text);
src/battle_anim_effects_3.o(.text);
src/move_relearner.o(.text);
src/fldeff_softboiled.o(.text);
src/decoration_inventory.o(.text);
src/roamer.o(.text);
src/battle_tower.o(.text);
src/use_pokeblock.o(.text);
src/battle_controller_wally.o(.text);
src/player_pc.o(.text);
src/intro.o(.text);
src/reset_save_heap.o(.text);
src/field_region_map.o(.text);
src/battle_anim_special.o(.text);
src/hall_of_fame.o(.text);
src/credits.o(.text);
src/lottery_corner.o(.text);
src/diploma.o(.text);
src/berry_tag_screen.o(.text);
src/mystery_event_menu.o(.text);
src/save_failed_screen.o(.text);
src/braille_puzzles.o(.text);
src/pokeblock_feed.o(.text);
src/clear_save_data_screen.o(.text);
src/intro_credits_graphics.o(.text);
src/evolution_graphics.o(.text);
src/bard_music.o(.text);
src/fldeff_teleport.o(.text);
src/battle_tv.o(.text);
src/pokemon_animation.o(.text);
src/recorded_battle.o(.text);
src/battle_controller_recorded_opponent.o(.text);
src/battle_controller_recorded_player.o(.text);
src/trainer_pokemon_sprites.o(.text);
src/lilycove_lady.o(.text);
src/battle_dome.o(.text);
src/battle_palace.o(.text);
src/match_call.o(.text);
src/menu.o(.text);
src/battle_factory_screen.o(.text);
src/apprentice.o(.text);
src/frontier_util.o(.text);
src/battle_arena.o(.text);
src/battle_factory.o(.text);
src/battle_pike.o(.text);
src/mossdeep_gym.o(.text);
src/battle_pyramid.o(.text);
src/item_menu.o(.text);
src/list_menu.o(.text);
src/dynamic_placeholder_text_util.o(.text);
src/save_location.o(.text);
src/item_icon.o(.text);
src/party_menu.o(.text);
src/battle_tent.o(.text);
src/unk_text_util_2.o(.text);
src/multiboot.o(.text);
src/unk_81BAD84.o(.text);
src/battle_controller_player_partner.o(.text);
src/mirage_tower.o(.text);
src/berry_fix_program.o(.text);
src/pokemon_summary_screen.o(.text);
src/unk_pokedex_area_screen_helper.o(.text);
src/battle_pyramid_bag.o(.text);
src/pokenav.o(.text);
src/pokenav_main_menu.o(.text);
src/pokenav_match_call_ui.o(.text);
src/pokenav_unk_1.o(.text);
src/pokenav_unk_2.o(.text);
src/pokenav_unk_3.o(.text);
src/pokenav_unk_4.o(.text);
src/pokenav_unk_5.o(.text);
src/pokenav_unk_6.o(.text);
src/pokenav_unk_7.o(.text);
src/pokenav_unk_8.o(.text);
src/pokenav_unk_9.o(.text);
src/pokenav_unk_10.o(.text);
src/pokenav_match_call_data.o(.text);
src/menu_specialized.o(.text);
src/ereader_helpers.o(.text);
src/faraway_island.o(.text);
src/ereader_screen.o(.text);
src/trainer_hill.o(.text);
src/rayquaza_scene.o(.text);
src/walda_phrase.o(.text);
src/contest_link_81D9DE4.o(.text);
src/gym_leader_rematch.o(.text);
src/unk_transition.o(.text);
src/international_string_util.o(.text);
} =0
script_data :
@@ -351,71 +349,70 @@ SECTIONS {
lib_text :
ALIGN(4)
{
asm/libgcnmultiboot.o(.text*);
asm/m4a_1.o(.text*);
src/m4a.o(.text*);
src/agb_flash.o(.text*);
src/agb_flash_1m.o(.text*);
src/agb_flash_mx.o(.text*);
src/siirtc.o(.text*);
src/librfu_stwi.o(.text*);
src/librfu_intr.o(.text*);
asm/librfu_intr.o(.text*);
src/librfu_rfu.o(.text*);
src/librfu.o(.text*);
asm/librfu.o(.text*);
asm/libagbsyscall.o(.text*);
*libgcc.a:_call_via_rX.o(.text*);
*libgcc.a:_divdi3.o(.text*);
*libgcc.a:_divsi3.o(.text*);
*libgcc.a:_dvmd_tls.o(.text*);
*libgcc.a:_fixunsdfsi.o(.text*);
*libgcc.a:_fixunssfsi.o(.text*);
*libgcc.a:_modsi3.o(.text*);
*libgcc.a:_muldi3.o(.text*);
*libgcc.a:_udivdi3.o(.text*);
*libgcc.a:_udivsi3.o(.text*);
*libgcc.a:_umodsi3.o(.text*);
*libgcc.a:dp-bit.o(.text*);
*libgcc.a:fp-bit.o(.text*);
*libgcc.a:_lshrdi3.o(.text*);
*libgcc.a:_negdi2.o(.text*);
*libc.a:memcpy.o(.text*);
*libc.a:memset.o(.text*);
*libc.a:strcmp.o(.text*);
*libc.a:strcpy.o(.text*);
*libc.a:vfprintf.o(.text*);
*libc.a:vsprintf.o(.text*);
*libc.a:fvwrite.o(.text*);
*libc.a:locale.o(.text*);
*libc.a:findfp.o(.text*);
*libc.a:fflush.o(.text*);
*libc.a:wsetup.o(.text*);
*libc.a:mbtowc_r.o(.text*);
*libc.a:s_isinf.o(.text*);
*libc.a:s_isnan.o(.text*);
*libc.a:memchr.o(.text*);
*libc.a:strlen.o(.text*);
*libc.a:dtoa.o(.text*);
*libc.a:memmove.o(.text*);
*libc.a:stdio.o(.text*);
*libc.a:mprec.o(.text*);
*libc.a:mallocr.o(.text*);
*libc.a:fwalk.o(.text*);
*libc.a:freer.o(.text*);
*libc.a:makebuf.o(.text*);
*libc.a:readr.o(.text*);
*libc.a:writer.o(.text*);
*libc.a:lseekr.o(.text*);
*libc.a:closer.o(.text*);
*libc.a:callocr.o(.text*);
*libc.a:sbrkr.o(.text*);
*libc.a:mlock.o(.text*);
*libc.a:fstatr.o(.text*);
*libc.a:libcfunc.o(.text*);
*libc.a:syscalls.o(.text*);
*libc.a:errno.o(.text*);
src/libisagbprn.o(.text*);
asm/libgcnmultiboot.o(.text);
asm/m4a_1.o(.text);
src/m4a.o(.text);
src/agb_flash.o(.text);
src/agb_flash_1m.o(.text);
src/agb_flash_mx.o(.text);
src/siirtc.o(.text);
src/librfu_stwi.o(.text);
src/librfu_intr.o(.text);
asm/librfu_intr.o(.text);
src/librfu_rfu.o(.text);
asm/librfu.o(.text);
asm/libagbsyscall.o(.text);
*libgcc.a:_call_via_rX.o(.text);
*libgcc.a:_divdi3.o(.text);
*libgcc.a:_divsi3.o(.text);
*libgcc.a:_dvmd_tls.o(.text);
*libgcc.a:_fixunsdfsi.o(.text);
*libgcc.a:_fixunssfsi.o(.text);
*libgcc.a:_modsi3.o(.text);
*libgcc.a:_muldi3.o(.text);
*libgcc.a:_udivdi3.o(.text);
*libgcc.a:_udivsi3.o(.text);
*libgcc.a:_umodsi3.o(.text);
*libgcc.a:dp-bit.o(.text);
*libgcc.a:fp-bit.o(.text);
*libgcc.a:_lshrdi3.o(.text);
*libgcc.a:_negdi2.o(.text);
*libc.a:memcpy.o(.text);
*libc.a:memset.o(.text);
*libc.a:strcmp.o(.text);
*libc.a:strcpy.o(.text);
*libc.a:vfprintf.o(.text);
*libc.a:vsprintf.o(.text);
*libc.a:fvwrite.o(.text);
*libc.a:locale.o(.text);
*libc.a:findfp.o(.text);
*libc.a:fflush.o(.text);
*libc.a:wsetup.o(.text);
*libc.a:mbtowc_r.o(.text);
*libc.a:s_isinf.o(.text);
*libc.a:s_isnan.o(.text);
*libc.a:memchr.o(.text);
*libc.a:strlen.o(.text);
*libc.a:dtoa.o(.text);
*libc.a:memmove.o(.text);
*libc.a:stdio.o(.text);
*libc.a:mprec.o(.text);
*libc.a:mallocr.o(.text);
*libc.a:fwalk.o(.text);
*libc.a:freer.o(.text);
*libc.a:makebuf.o(.text);
*libc.a:readr.o(.text);
*libc.a:writer.o(.text);
*libc.a:lseekr.o(.text);
*libc.a:closer.o(.text);
*libc.a:callocr.o(.text);
*libc.a:sbrkr.o(.text);
*libc.a:mlock.o(.text);
*libc.a:fstatr.o(.text);
*libc.a:libcfunc.o(.text);
*libc.a:syscalls.o(.text);
*libc.a:errno.o(.text);
src/libisagbprn.o(.text);
} =0
.rodata :
@@ -461,6 +458,7 @@ SECTIONS {
src/battle_controller_opponent.o(.rodata);
src/battle_ai_switch_items.o(.rodata);
src/battle_controller_link_opponent.o(.rodata);
src/battle_debug.o(.rodata);
src/pokemon.o(.rodata);
src/trig.o(.rodata);
src/util.o(.rodata);
@@ -674,7 +672,6 @@ SECTIONS {
src/walda_phrase.o(.rodata);
src/gym_leader_rematch.o(.rodata);
src/unk_transition.o(.rodata);
src/battle_debug.o(.rodata);
data/text_input_strings.o(.rodata);
data/fonts.o(.rodata);
src/mystery_event_msg.o(.rodata);

View File

@@ -304,7 +304,7 @@ static const u8 *GetInteractedEventObjectScript(struct MapPosition *position, u8
gSpecialVar_Facing = direction;
if (InTrainerHill() == TRUE)
script = sub_81D62AC();
script = GetTrainerHillTrainerScript();
else
script = GetEventObjectScriptPointerByEventObjectId(eventObjectId);

View File

@@ -2482,7 +2482,7 @@ void WipeTrainerNameRecords(void)
}
}
void nullsub_5(const char *unused_0, u8 unused_1, u8 unused_2)
void nullsub_5(const void *unused_0, u8 unused_1, u8 unused_2)
{
// debug?
}
@@ -2512,7 +2512,7 @@ void sub_800E604(void)
sub_800D724(&gUnknown_03005000.unk_9e8);
CpuFill16(0, gSendCmd, sizeof gSendCmd);
CpuFill16(0, gRecvCmds, sizeof gRecvCmds);
CpuFill16(0, gLinkPlayers, sizeof gLinkPlayers)
CpuFill16(0, gLinkPlayers, sizeof gLinkPlayers);
}
void sub_800E6D0(void)

View File

@@ -318,7 +318,7 @@ void SetMirageTowerVisibility(void)
u16 rand;
bool8 visible;
if (VarGet(VAR_ROUTE_111_STATE))
if (VarGet(VAR_MIRAGE_TOWER_STATE))
{
FlagClear(FLAG_MIRAGE_TOWER_VISIBLE);
return;

View File

@@ -1040,7 +1040,7 @@ static bool16 ShouldLegendaryMusicPlayAtLocation(struct WarpData *warp)
case MAP_NUM(ROUTE128):
return TRUE;
default:
if (VarGet(VAR_RAYQUAZA_STATE) < 4)
if (VarGet(VAR_SOOTOPOLIS_CITY_STATE) < 4)
return FALSE;
switch (warp->mapNum)
{
@@ -1081,9 +1081,9 @@ static bool16 IsInfiltratedWeatherInstitute(struct WarpData *warp)
static bool16 IsInflitratedSpaceCenter(struct WarpData *warp)
{
if (VarGet(VAR_MOSSDEEP_STATE) == 0)
if (VarGet(VAR_MOSSDEEP_CITY_STATE) == 0)
return FALSE;
else if (VarGet(VAR_MOSSDEEP_STATE) > 2)
else if (VarGet(VAR_MOSSDEEP_CITY_STATE) > 2)
return FALSE;
else if (warp->mapGroup != MAP_GROUP(MOSSDEEP_CITY_SPACE_CENTER_1F))
return FALSE;

View File

@@ -1319,7 +1319,7 @@ void CB2_Pokedex(void)
default:
SetVBlankCallback(NULL);
sub_80C09B0(0);
DmaFillLarge16(3, 0, (u8 *)VRAM, VRAM_SIZE, 0x1000)
DmaFillLarge16(3, 0, (u8 *)VRAM, VRAM_SIZE, 0x1000);
DmaClear32(3, OAM, OAM_SIZE);
DmaClear16(3, PLTT, PLTT_SIZE);
gMain.state = 1;

View File

@@ -31,72 +31,30 @@ struct UnknownPokenavCallbackStruct
bool32 (*unk0)(void);
u32 (*unk4)(void);
bool32 (*unk8)(void);
void (*unkC)(int);
void (*unkC)(s32);
u32 (*unk10)(void);
void (*unk14)(void);
void (*unk18)(void);
};
extern bool32 sub_81C9924(void);
extern u32 sub_81C99C0(void);
extern void sub_81C9990(int);
extern bool32 sub_81C9940(void);
extern u32 sub_81CCFD8(void);
extern u32 sub_81CD070(void);
extern bool32 sub_81CDDD4(void);
extern void sub_81CDE2C(int);
extern u32 sub_81CDE64(void);
extern void sub_81CD1C0(void);
extern void sub_81CECA0(void);
extern u32 sub_81CEF3C(void);
extern u32 sub_81CEFDC(void);
extern bool32 sub_81CF330(void);
extern void sub_81CF3A0(int);
extern u32 sub_81CF3D0(void);
extern void sub_81CEFF0(void);
extern void sub_81CF3F8(void);
extern u32 sub_81CD024(void);
extern u32 sub_81CEF98(void);
extern bool32 sub_81CF368(void);
extern u32 sub_81CF9BC(void);
extern u32 sub_81CFA34(void);
extern bool32 sub_81CFDD0(void);
extern void sub_81CFE40(int);
extern u32 sub_81CFE70(void);
extern void sub_81CFA48(void);
extern void sub_81CFE98(void);
extern u32 sub_81D0450(void);
extern u32 sub_81D04A0(void);
extern bool32 sub_81D0978(void);
extern void sub_81D09B0(int);
extern u32 sub_81D09E0(void);
extern void sub_81D04B8(void);
extern void sub_81D09F4(void);
extern u32 sub_81CFA04(void);
extern bool32 sub_81CFE08(void);
static u32 sub_81C75E0(void);
static u32 sub_81C75D4(void);
static bool32 SetActivePokenavMenu(u32 menuId);
static bool32 AnyMonHasRibbon(void);
u32 sub_81C75E0(void);
u32 sub_81C75D4(void);
u32 PokenavMainMenuLoopedTaskIsActive(void);
bool32 WaitForPokenavShutdownFade(void);
void sub_81C7834(void *func1, void *func2);
static void InitPokenavResources(struct PokenavResources *a0);
void Task_RunLoopedTask_LinkMode(u8 a0);
void Task_RunLoopedTask(u8 taskId);
void sub_81C742C(u8 taskId);
void ShutdownPokenav(void);
static void InitKeys_(void);
static void FreePokenavResources(void);
static void VBlankCB_Pokenav(void);
static void CB2_Pokenav(void);
void sub_81C72BC(void);
static void Task_RunLoopedTask_LinkMode(u8 a0);
static void Task_RunLoopedTask(u8 taskId);
static void sub_81C742C(u8 taskId);
static void sub_81C72BC(void);
const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] =
{
{
.unk0 = sub_81C9298,
.unk0 = PokenavCallback_Init_0,
.unk4 = sub_81C941C,
.unk8 = sub_81C9924,
.unkC = sub_81C9990,
@@ -105,7 +63,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] =
.unk18 = sub_81C99D4,
},
{
.unk0 = sub_81C9298,
.unk0 = PokenavCallback_Init_0,
.unk4 = sub_81C941C,
.unk8 = sub_81C9940,
.unkC = sub_81C9990,
@@ -114,7 +72,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] =
.unk18 = sub_81C99D4,
},
{
.unk0 = sub_81C9338,
.unk0 = PokenavCallback_Init_2,
.unk4 = sub_81C941C,
.unk8 = sub_81C9940,
.unkC = sub_81C9990,
@@ -123,7 +81,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] =
.unk18 = sub_81C99D4,
},
{
.unk0 = sub_81C9368,
.unk0 = PokenavCallback_Init_3,
.unk4 = sub_81C941C,
.unk8 = sub_81C9940,
.unkC = sub_81C9990,
@@ -132,16 +90,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] =
.unk18 = sub_81C99D4,
},
{
.unk0 = sub_81C92CC,
.unk4 = sub_81C941C,
.unk8 = sub_81C9940,
.unkC = sub_81C9990,
.unk10 =sub_81C99C0,
.unk14 = sub_81C9430,
.unk18 = sub_81C99D4,
},
{
.unk0 = sub_81C9304,
.unk0 = PokenavCallback_Init_4,
.unk4 = sub_81C941C,
.unk8 = sub_81C9940,
.unkC = sub_81C9990,
@@ -150,7 +99,16 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] =
.unk18 = sub_81C99D4,
},
{
.unk0 = sub_81CC4D4,
.unk0 = PokenavCallback_Init_5,
.unk4 = sub_81C941C,
.unk8 = sub_81C9940,
.unkC = sub_81C9990,
.unk10 = sub_81C99C0,
.unk14 = sub_81C9430,
.unk18 = sub_81C99D4,
},
{
.unk0 = PokenavCallback_Init_6,
.unk4 = sub_81CC554,
.unk8 = sub_81CC5F4,
.unkC = sub_81CC62C,
@@ -159,7 +117,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] =
.unk18 = sub_81CC670,
},
{
.unk0 = sub_81CCFD8,
.unk0 = PokenavCallback_Init_7,
.unk4 = sub_81CD070,
.unk8 = sub_81CDDD4,
.unkC = sub_81CDE2C,
@@ -168,7 +126,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] =
.unk18 = sub_81CECA0,
},
{
.unk0 = sub_81CEF3C,
.unk0 = PokenavCallback_Init_8,
.unk4 = sub_81CEFDC,
.unk8 = sub_81CF330,
.unkC = sub_81CF3A0,
@@ -177,7 +135,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] =
.unk18 = sub_81CF3F8,
},
{
.unk0 = sub_81CD024,
.unk0 = PokenavCallback_Init_9,
.unk4 = sub_81CD070,
.unk8 = sub_81CDDD4,
.unkC = sub_81CDE2C,
@@ -186,7 +144,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] =
.unk18 = sub_81CECA0,
},
{
.unk0 = sub_81CEF98,
.unk0 = PokenavCallback_Init_10,
.unk4 = sub_81CEFDC,
.unk8 = sub_81CF368,
.unkC = sub_81CF3A0,
@@ -195,7 +153,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] =
.unk18 = sub_81CF3F8,
},
{
.unk0 = sub_81CAAE8,
.unk0 = PokenavCallback_Init_11,
.unk4 = sub_81CAB24,
.unk8 = sub_81CB260,
.unkC = sub_81CB29C,
@@ -204,7 +162,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] =
.unk18 = sub_81CB2E0,
},
{
.unk0 = sub_81CF9BC,
.unk0 = PokenavCallback_Init_12,
.unk4 = sub_81CFA34,
.unk8 = sub_81CFDD0,
.unkC = sub_81CFE40,
@@ -213,7 +171,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] =
.unk18 = sub_81CFE98,
},
{
.unk0 = sub_81D0450,
.unk0 = PokenavCallback_Init_13,
.unk4 = sub_81D04A0,
.unk8 = sub_81D0978,
.unkC = sub_81D09B0,
@@ -222,7 +180,7 @@ const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] =
.unk18 = sub_81D09F4,
},
{
.unk0 = sub_81CFA04,
.unk0 = PokenavCallback_Init_14,
.unk4 = sub_81CFA34,
.unk8 = sub_81CFE08,
.unkC = sub_81CFE40,
@@ -277,7 +235,7 @@ bool32 FuncIsActiveLoopedTask(LoopedTask func)
return FALSE;
}
void Task_RunLoopedTask(u8 taskId)
static void Task_RunLoopedTask(u8 taskId)
{
LoopedTask loopedTask = (LoopedTask)GetWordTaskArg(taskId, 1);
s16 *state = &gTasks[taskId].data[0];
@@ -310,7 +268,7 @@ void Task_RunLoopedTask(u8 taskId)
}
// Every "Continue" action pauses instead.
void Task_RunLoopedTask_LinkMode(u8 taskId)
static void Task_RunLoopedTask_LinkMode(u8 taskId)
{
LoopedTask task;
s16 *state;
@@ -365,7 +323,7 @@ void sub_81C72A4(void)
FadeScreen(1, 0);
}
void sub_81C72BC(void)
static void sub_81C72BC(void)
{
UpdatePaletteFade();
if (gPaletteFade.active)
@@ -458,7 +416,7 @@ static void VBlankCB_Pokenav(void)
ProcessSpriteCopyRequests();
}
void sub_81C742C(u8 taskId)
static void sub_81C742C(u8 taskId)
{
u32 v1;
s16 *data = gTasks[taskId].data;
@@ -544,12 +502,12 @@ static bool32 SetActivePokenavMenu(u32 menuId)
return TRUE;
}
u32 sub_81C75D4(void)
static u32 sub_81C75D4(void)
{
return sub_81C786C();
}
u32 sub_81C75E0(void)
static u32 sub_81C75E0(void)
{
return gPokenavResources->currentMenuCb1();
}

File diff suppressed because it is too large Load Diff

View File

@@ -55,7 +55,7 @@ static u8 GetPokenavMainMenuType(void)
return retVal;
}
bool32 sub_81C9298(void)
bool32 PokenavCallback_Init_0(void)
{
struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct));
if (!state)
@@ -69,7 +69,7 @@ bool32 sub_81C9298(void)
return TRUE;
}
bool32 sub_81C92CC(void)
bool32 PokenavCallback_Init_4(void)
{
struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct));
if (!state)
@@ -83,7 +83,7 @@ bool32 sub_81C92CC(void)
return TRUE;
}
bool32 sub_81C9304(void)
bool32 PokenavCallback_Init_5(void)
{
struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct));
if (!state)
@@ -96,7 +96,7 @@ bool32 sub_81C9304(void)
return TRUE;
}
bool32 sub_81C9338(void)
bool32 PokenavCallback_Init_2(void)
{
struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct));
if (!state)
@@ -110,7 +110,7 @@ bool32 sub_81C9338(void)
return TRUE;
}
bool32 sub_81C9368(void)
bool32 PokenavCallback_Init_3(void)
{
struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct));
if (!state)
@@ -459,7 +459,7 @@ int sub_81C98B4(void)
return state->descriptionId;
}
int sub_81C98C4(void)
u16 sub_81C98C4(void)
{
struct Pokenav1Struct *state = GetSubstructPtr(1);
return state->helpBarIndex;

View File

@@ -158,7 +158,7 @@ static const LoopedTask gUnknown_08624BA0[] =
};
// code
bool32 sub_81D0450(void)
bool32 PokenavCallback_Init_13(void)
{
struct PokenavSub13 *structPtr = AllocSubstruct(13, sizeof(struct PokenavSub13));
if (structPtr == NULL)
@@ -235,7 +235,7 @@ u32 sub_81D0548(struct PokenavSub13 *structPtr)
u32 sub_81D05D4(struct PokenavSub13 *structPtr)
{
return 0x186ae;
return 100014;
}
bool32 sub_81D05DC(struct PokenavSub13 *structPtr)
@@ -472,7 +472,7 @@ bool32 sub_81D0978(void)
return TRUE;
}
void sub_81D09B0(int id)
void sub_81D09B0(s32 id)
{
struct PokenavSub14 *structPtr = GetSubstructPtr(14);
structPtr->loopedTaskId = CreateLoopedTask(gUnknown_08624BA0[id], 1);

File diff suppressed because it is too large Load Diff

View File

@@ -26,7 +26,7 @@ struct Pokenav3Struct
u32 unk10;
u32 unk14;
u32 (*callback)(struct Pokenav3Struct*);
struct Pokenav3Struct_Unk1C unk1C[99];
struct PokenavMonList unk1C[99];
};
static u32 sub_81CAB44(struct Pokenav3Struct *);
@@ -42,7 +42,7 @@ static bool32 sub_81CB1D0(void);
const u8 gUnknown_08622508[] = {0, 2};
const u8 gUnknown_0862250A[] = {0, 1, 2};
bool32 sub_81CAAE8(void)
bool32 PokenavCallback_Init_11(void)
{
struct Pokenav3Struct *state = AllocSubstruct(5, sizeof(struct Pokenav3Struct));
if (!state)
@@ -84,7 +84,7 @@ static u32 sub_81CAB44(struct Pokenav3Struct *state)
state->callback = sub_81CAC04;
state->unk0 = 0;
selectedMatchCall = GetSelectedMatchCall();
if (!state->unk1C[selectedMatchCall].unk0 || sub_81D17E8(state->unk1C[selectedMatchCall].unk2))
if (!state->unk1C[selectedMatchCall].boxId || sub_81D17E8(state->unk1C[selectedMatchCall].unk6))
{
state->unk4 = gUnknown_0862250A;
state->unk2 = 2;
@@ -206,9 +206,9 @@ static u32 sub_81CAD20(s32 taskState)
{
if (MatchCallFlagGetByIndex(j))
{
state->unk1C[state->unkA].unk2 = j;
state->unk1C[state->unkA].unk0 = 1;
state->unk1C[state->unkA].unk1 = MatchCallMapSecGetByIndex(j);
state->unk1C[state->unkA].unk6 = j;
state->unk1C[state->unkA].boxId = 1;
state->unk1C[state->unkA].monId = MatchCallMapSecGetByIndex(j);
state->unkA++;
}
@@ -226,9 +226,9 @@ static u32 sub_81CAD20(s32 taskState)
{
if (!sub_81D1BF8(state->unk8) && sub_81CAE08(state->unk8))
{
state->unk1C[state->unkA].unk2 = state->unk8;
state->unk1C[state->unkA].unk0 = 0;
state->unk1C[state->unkA].unk1 = sub_81CB0C8(j);
state->unk1C[state->unkA].unk6 = state->unk8;
state->unk1C[state->unkA].boxId = 0;
state->unk1C[state->unkA].monId = sub_81CB0C8(j);
state->unkA++;
}
@@ -284,10 +284,10 @@ int unref_sub_81CAE6C(int arg0)
if (arg0 >= state->unkA)
return REMATCH_TABLE_ENTRIES;
return state->unk1C[arg0].unk2;
return state->unk1C[arg0].unk6;
}
struct Pokenav3Struct_Unk1C *sub_81CAE94(void)
struct PokenavMonList *sub_81CAE94(void)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
return state->unk1C;
@@ -296,16 +296,16 @@ struct Pokenav3Struct_Unk1C *sub_81CAE94(void)
u16 sub_81CAEA4(int index)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
return state->unk1C[index].unk1;
return state->unk1C[index].monId;
}
bool32 sub_81CAEBC(int index)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
if (!state->unk1C[index].unk0)
index = state->unk1C[index].unk2;
if (!state->unk1C[index].boxId)
index = state->unk1C[index].unk6;
else
index = MatchCall_GetRematchTableIdx(state->unk1C[index].unk2);
index = MatchCall_GetRematchTableIdx(state->unk1C[index].unk6);
if (index == REMATCH_TABLE_ENTRIES)
return FALSE;
@@ -317,13 +317,13 @@ int sub_81CAF04(int index)
{
int var0;
struct Pokenav3Struct *state = GetSubstructPtr(5);
if (!state->unk1C[index].unk0)
if (!state->unk1C[index].boxId)
{
index = GetTrainerIdxByRematchIdx(state->unk1C[index].unk2);
index = GetTrainerIdxByRematchIdx(state->unk1C[index].unk6);
return gTrainers[index].trainerPic;
}
var0 = state->unk1C[index].unk2;
var0 = state->unk1C[index].unk6;
index = MatchCall_GetRematchTableIdx(var0);
if (index != REMATCH_TABLE_ENTRIES)
{
@@ -342,10 +342,10 @@ const u8 *sub_81CAF78(int index, u8 *arg1)
if (!Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType))
return gText_CallCantBeMadeHere;
if (!state->unk1C[index].unk0)
*arg1 = SelectMatchCallMessage(GetTrainerIdxByRematchIdx(state->unk1C[index].unk2), gStringVar4);
if (!state->unk1C[index].boxId)
*arg1 = SelectMatchCallMessage(GetTrainerIdxByRematchIdx(state->unk1C[index].unk6), gStringVar4);
else
MatchCall_GetMessage(state->unk1C[index].unk2, gStringVar4);
MatchCall_GetMessage(state->unk1C[index].unk6, gStringVar4);
return gStringVar4;
}
@@ -354,15 +354,15 @@ const u8 *sub_81CAFD8(int index, int textType)
{
int var0;
struct Pokenav3Struct *state = GetSubstructPtr(5);
if (state->unk1C[index].unk0)
if (state->unk1C[index].boxId)
{
var0 = MatchCall_GetRematchTableIdx(state->unk1C[index].unk2);
var0 = MatchCall_GetRematchTableIdx(state->unk1C[index].unk6);
if (var0 == REMATCH_TABLE_ENTRIES)
return sub_81D1B40(state->unk1C[index].unk2, textType);
return sub_81D1B40(state->unk1C[index].unk6, textType);
}
else
{
var0 = state->unk1C[index].unk2;
var0 = state->unk1C[index].unk6;
}
return gMatchCallMessages[var0][textType];
@@ -383,14 +383,13 @@ u16 sub_81CB02C(int arg0)
return state->unk4[arg0];
}
void sub_81CB050(u32 arg0, u8 *str)
void sub_81CB050(struct PokenavMonList * arg0, u8 *str)
{
struct Pokenav3Struct_Unk1C *var0 = (struct Pokenav3Struct_Unk1C *)arg0;
const u8 *trainerName;
const u8 *className;
if (!var0->unk0)
if (!arg0->boxId)
{
int index = GetTrainerIdxByRematchIdx(var0->unk2);
int index = GetTrainerIdxByRematchIdx(arg0->unk6);
const struct Trainer *trainer = &gTrainers[index];
int class = trainer->trainerClass;
className = gTrainerClassNames[class];
@@ -398,7 +397,7 @@ void sub_81CB050(u32 arg0, u8 *str)
}
else
{
sub_81D1A78(var0->unk2, &className, &trainerName);
sub_81D1A78(arg0->unk6, &className, &trainerName);
}
if (className && trainerName)
@@ -425,9 +424,9 @@ int sub_81CB0E4(int index)
int count = 1;
while (++index < state->unkA)
{
if (!state->unk1C[index].unk0)
if (!state->unk1C[index].boxId)
return count;
if (sub_81D17E8(state->unk1C[index].unk2))
if (sub_81D17E8(state->unk1C[index].unk6))
return count;
count++;
@@ -442,9 +441,9 @@ int sub_81CB128(int index)
int count = -1;
while (--index >= 0)
{
if (!state->unk1C[index].unk0)
if (!state->unk1C[index].boxId)
return count;
if (sub_81D17E8(state->unk1C[index].unk2))
if (sub_81D17E8(state->unk1C[index].unk6))
return count;
count--;
@@ -480,17 +479,17 @@ static bool32 sub_81CB1D0(void)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
int index = GetSelectedMatchCall();
if (!state->unk1C[index].unk0)
if (!state->unk1C[index].boxId)
{
if (sub_81CAEA4(index) == gMapHeader.regionMapSectionId)
{
if (!gSaveBlock1Ptr->trainerRematches[state->unk1C[index].unk2])
if (!gSaveBlock1Ptr->trainerRematches[state->unk1C[index].unk6])
return TRUE;
}
}
else
{
if (state->unk1C[index].unk2 == 11)
if (state->unk1C[index].unk6 == 11)
{
if (sub_81CAEA4(index) == gMapHeader.regionMapSectionId
&& FlagGet(FLAG_BADGE05_GET) == TRUE)

View File

@@ -290,7 +290,7 @@ bool32 sub_81CB260(void)
return TRUE;
}
void sub_81CB29C(int index)
void sub_81CB29C(s32 index)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
state->unk4 = CreateLoopedTask(gUnknown_08622798[index], 1);
@@ -870,7 +870,7 @@ u32 sub_81CBB74(s32 taskState)
static void sub_81CBBB8(void)
{
struct MatchCallListTemplate template;
template.unk0 = (u32)sub_81CAE94();
template.unk0 = sub_81CAE94();
template.unk4 = sub_81CAE38();
template.unk8 = 4;
template.unk6 = 0;

View File

@@ -166,7 +166,7 @@ const struct SpriteTemplate gUnknown_086231D0 =
.callback = sub_81CCEF4,
};
u32 sub_81CC4D4(void)
u32 PokenavCallback_Init_6(void)
{
struct Pokenav5Struct *state = AllocSubstruct(3, sizeof(struct Pokenav5Struct));
if (!state)
@@ -194,7 +194,7 @@ void sub_81CC524(void)
u32 sub_81CC554(void)
{
struct Pokenav5Struct *state = GetSubstructPtr(3);
state->unk10(state);
return state->unk10(state);
}
static u32 sub_81CC568(struct Pokenav5Struct *state)
@@ -248,7 +248,7 @@ bool32 sub_81CC5F4(void)
return TRUE;
}
void sub_81CC62C(int index)
void sub_81CC62C(s32 index)
{
struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
state->unk4 = CreateLoopedTask(gUnknown_086230E4[index], 1);

View File

@@ -47,7 +47,7 @@ void sub_81CDA1C(s16 arg0, u8 arg1);
void sub_81CDB98(s16 arg0, u8 arg1);
// code
bool32 sub_81CCFD8(void)
bool32 PokenavCallback_Init_7(void)
{
struct PokenavSub11 *structPtr = AllocSubstruct(11, sizeof(struct PokenavSub11));
@@ -61,7 +61,7 @@ bool32 sub_81CCFD8(void)
return TRUE;
}
bool32 sub_81CD024(void)
bool32 PokenavCallback_Init_9(void)
{
struct PokenavSub11 *structPtr = AllocSubstruct(11, sizeof(struct PokenavSub11));
@@ -147,9 +147,9 @@ u32 sub_81CD110(struct PokenavSub11 *structPtr)
u32 sub_81CD19C(struct PokenavSub11 *structPtr)
{
if (structPtr->unk6300 == 0)
return 0x186A2;
return 100002;
else
return 0x186AA;
return 100010;
}
void sub_81CD1C0(void)
@@ -365,7 +365,7 @@ u8 *sub_81CD624(u8 *str, u16 id, bool8 arg3)
str_ = str; // For some reason, a variable is needed to match.
while (*str_ != EOS)
*(str_++);
(str_++);
*(str_++) = EXT_CTRL_CODE_BEGIN;
*(str_++) = 0x12;

View File

@@ -168,7 +168,7 @@ bool32 sub_81CDDD4(void)
return TRUE;
}
void sub_81CDE2C(int id)
void sub_81CDE2C(s32 id)
{
struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
structPtr->loopedTaskId = CreateLoopedTask(gUnknown_08623384[id], 1);

View File

@@ -1,22 +1,63 @@
#include "global.h"
#include "pokenav.h"
#include "bg.h"
#include "menu.h"
#include "window.h"
#include "sound.h"
#include "dynamic_placeholder_text_util.h"
#include "strings.h"
#include "string_util.h"
#include "international_string_util.h"
#include "constants/songs.h"
u32 sub_81CF134(void);
u32 sub_81CF1C4(void);
u32 sub_81CF1D8(void);
u32 sub_81CF278(void);
u32 sub_81CF578(s32);
u32 sub_81CF5F0(s32);
u32 sub_81CF668(s32);
u32 sub_81CF6E0(s32);
u32 sub_81CF758(s32);
u32 sub_81CF798(s32);
struct PokenavSub7
{
u32 (*unk0)(struct PokenavSub7 *);
u32 loopedTaskId;
u8 fill1[4];
s32 unkC;
s32 unk10;
u32 unk14;
u32 unk18;
u32 unk1C;
struct PokenavSub18 *unkPtr;
};
const u32 gUnknown_086233A0[] = {0x16, 0x17, 0x18, 0x21, 0x2F};
struct PokenavSub8
{
bool32 (*callback)(void);
u32 ltid;
u16 winid;
bool32 unkC;
u8 buff[BG_SCREEN_SIZE];
}; // size: 0x810
u32 (*const gUnknown_086233B4[])(void) =
static u32 sub_81CF010(struct PokenavSub7 *structPtr);
static u32 sub_81CF030(struct PokenavSub7 *structPtr);
static u32 sub_81CF0B8(struct PokenavSub7 *structPtr);
static u32 sub_81CF0B0(struct PokenavSub7 *structPtr);
static u32 sub_81CF11C(s32 state);
static u32 sub_81CF134(s32 state);
static u32 sub_81CF1C4(s32 state);
static u32 sub_81CF1D8(s32 state);
static u32 sub_81CF278(s32 state);
static u32 sub_81CF578(s32 state);
static u32 sub_81CF5F0(s32 state);
static u32 sub_81CF668(s32 state);
static u32 sub_81CF6E0(s32 state);
static u32 sub_81CF758(s32 state);
static u32 sub_81CF798(s32 state);
static void sub_81CF2C4(struct PokenavSub7 *structPtr, struct PokenavMonList *item);
static bool32 sub_81CF3E4(void);
static u32 sub_81CF418(s32 state);
static void sub_81CF7C8(struct PokenavSub8 *);
static void sub_81CF7F4(struct PokenavSub8 *);
static void sub_81CF88C(void);
static void sub_81CF8E4(struct PokenavMonList *, u8 *);
static const u32 gUnknown_086233A0[] = {0x16, 0x17, 0x18, 0x21, 0x2F};
static const LoopedTask gUnknown_086233B4[] =
{
sub_81CF134,
sub_81CF1C4,
@@ -24,34 +65,33 @@ u32 (*const gUnknown_086233B4[])(void) =
sub_81CF278
};
const u16 gUnknown_086233C4[] = INCBIN_U16("graphics/pokenav/condition_search2.gbapal");
const u32 gUnknown_086233E4[] = INCBIN_U32("graphics/pokenav/condition_search2.4bpp.lz");
const u32 gUnknown_086234AC[] = INCBIN_U32("graphics/pokenav/condition_search2.bin.lz");
const u16 gUnknown_08623570[] = INCBIN_U16("graphics/pokenav/8623570.gbapal");
static const u16 gUnknown_086233C4[] = INCBIN_U16("graphics/pokenav/condition_search2.gbapal");
static const u32 gUnknown_086233E4[] = INCBIN_U32("graphics/pokenav/condition_search2.4bpp.lz");
static const u32 gUnknown_086234AC[] = INCBIN_U32("graphics/pokenav/condition_search2.bin.lz");
static const u16 gUnknown_08623570[] = INCBIN_U16("graphics/pokenav/8623570.gbapal");
const struct BgTemplate gUnknown_08623590 =
static const struct BgTemplate gUnknown_08623590[] =
{
.bg = 1,
.charBaseIndex = 1,
.mapBaseIndex = 0x06,
.screenSize = 0,
.paletteMode = 0,
.priority = 2,
.baseTile = 0
{
.bg = 1,
.charBaseIndex = 1,
.mapBaseIndex = 0x06,
.screenSize = 0,
.paletteMode = 0,
.priority = 2,
.baseTile = 0
}, {
.bg = 2,
.charBaseIndex = 2,
.mapBaseIndex = 0x07,
.screenSize = 0,
.paletteMode = 0,
.priority = 3,
.baseTile = 0
}
};
const struct BgTemplate gUnknown_08623594 =
{
.bg = 2,
.charBaseIndex = 2,
.mapBaseIndex = 0x07,
.screenSize = 0,
.paletteMode = 0,
.priority = 3,
.baseTile = 0
};
const LoopedTask gUnknown_08623598[] =
static const LoopedTask gUnknown_08623598[] =
{
NULL,
sub_81CF578,
@@ -62,7 +102,7 @@ const LoopedTask gUnknown_08623598[] =
sub_81CF798
};
const struct WindowTemplate gUnknown_086235B4 =
static const struct WindowTemplate gUnknown_086235B4 =
{
.bg = 1,
.tilemapLeft = 1,
@@ -73,28 +113,11 @@ const struct WindowTemplate gUnknown_086235B4 =
.baseBlock = 20
};
const u8 gUnknown_086235BC[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
const u8 gUnknown_086235C8[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
const u8 gUnknown_086235D4[] = _("{UNK_SPACER}");
static const u8 gUnknown_086235BC[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
static const u8 gUnknown_086235C8[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
static const u8 gUnknown_086235D4[] = _("{UNK_SPACER}");
struct PokenavSub7
{
u32 (*unk0)(struct PokenavSub7 *);
u32 loopedTaskId;
u8 fill1[12];
u32 unk14;
u32 unk18;
u32 unk1C;
struct PokenavSub18 *unkPtr;
};
u32 sub_81CF010(struct PokenavSub7 *structPtr);
u32 sub_81CF030(struct PokenavSub7 *structPtr);
u32 sub_81CF0B8(struct PokenavSub7 *structPtr);
u32 sub_81CF0B0(struct PokenavSub7 *structPtr);
u32 sub_81CF11C(s32 state);
bool32 sub_81CEF3C(void)
bool32 PokenavCallback_Init_8(void)
{
struct PokenavSub7 *structPtr = AllocSubstruct(7, sizeof(struct PokenavSub7));
if (structPtr == NULL)
@@ -111,7 +134,7 @@ bool32 sub_81CEF3C(void)
return TRUE;
}
bool32 sub_81CEF98(void)
bool32 PokenavCallback_Init_10(void)
{
struct PokenavSub7 *structPtr = AllocSubstruct(7, sizeof(struct PokenavSub7));
if (structPtr == NULL)
@@ -138,14 +161,14 @@ void sub_81CEFF0(void)
FreePokenavSubstruct(7);
}
bool32 sub_81CF010(struct PokenavSub7 *structPtr)
static bool32 sub_81CF010(struct PokenavSub7 *structPtr)
{
if (!IsLoopedTaskActive(structPtr->loopedTaskId))
structPtr->unk0 = sub_81CF030;
return FALSE;
}
u32 sub_81CF030(struct PokenavSub7 *structPtr)
static u32 sub_81CF030(struct PokenavSub7 *structPtr)
{
if (gMain.newAndRepeatedKeys & DPAD_UP)
return 1;
@@ -172,18 +195,516 @@ u32 sub_81CF030(struct PokenavSub7 *structPtr)
return 0;
}
u32 sub_81CF0B0(struct PokenavSub7 *structPtr)
static u32 sub_81CF0B0(struct PokenavSub7 *structPtr)
{
return 0x186A3;
return 100003;
}
u32 sub_81CF0B8(struct PokenavSub7 *structPtr)
static u32 sub_81CF0B8(struct PokenavSub7 *structPtr)
{
return 0x186A9;
return 100009;
}
u32 sub_81CF0C0(void)
static u32 sub_81CF0C0(void)
{
struct PokenavSub7 *structPtr = GetSubstructPtr(7);
return structPtr->unk18;
}
static struct PokenavMonList * sub_81CF0D0(void)
{
struct PokenavSub7 * ptr = GetSubstructPtr(7);
return ptr->unkPtr->unk4;
}
static u16 sub_81CF0E0(void)
{
struct PokenavSub7 * ptr = GetSubstructPtr(7);
return ptr->unkPtr->unk0;
}
static s32 sub_81CF0F0(void)
{
struct PokenavSub7 * ptr = GetSubstructPtr(7);
s32 i = GetSelectedMatchCall();
return ptr->unkPtr->unk4[i].unk6;
}
static u16 sub_81CF10C(void)
{
struct PokenavSub7 * ptr = GetSubstructPtr(7);
return ptr->unkPtr->unk2;
}
static u32 sub_81CF11C(s32 state)
{
return gUnknown_086233B4[state](state);
}
static u32 sub_81CF134(s32 state)
{
s32 i;
struct PokenavMonList item;
struct PokenavSub7 * ptr = GetSubstructPtr(7);
ptr->unkPtr->unk0 = 0;
ptr->unkPtr->unk2 = 0;
item.boxId = 14;
for (i = 0; i < PARTY_SIZE; i++)
{
struct Pokemon * pokemon = &gPlayerParty[i];
if (!GetMonData(pokemon, MON_DATA_SANITY_HAS_SPECIES))
return LT_INC_AND_CONTINUE;
if (!GetMonData(pokemon, MON_DATA_SANITY_IS_EGG))
{
item.monId = i;
item.unk6 = GetMonData(pokemon, ptr->unk14);
sub_81CF2C4(ptr, &item);
}
}
return LT_INC_AND_CONTINUE;
}
static u32 sub_81CF1C4(s32 state)
{
struct PokenavSub7 * ptr = GetSubstructPtr(7);
ptr->unk10 = 0;
ptr->unkC = 0;
return LT_INC_AND_CONTINUE;
}
static u32 sub_81CF1D8(s32 state)
{
struct PokenavSub7 * ptr = GetSubstructPtr(7);
s32 boxId = ptr->unkC;
s32 monId = ptr->unk10;
s32 boxCount = 0;
struct PokenavMonList item;
while (boxId < TOTAL_BOXES_COUNT)
{
while (monId < IN_BOX_COUNT)
{
if (CheckBoxMonSanityAt(boxId, monId))
{
item.boxId = boxId;
item.monId = monId;
item.unk6 = GetBoxMonDataAt(boxId, monId, ptr->unk14);
sub_81CF2C4(ptr, &item);
}
boxCount++;
monId++;
if (boxCount > 14)
{
ptr->unkC = boxId;
ptr->unk10 = monId;
return LT_CONTINUE;
}
}
monId = 0;
boxId++;
}
return LT_INC_AND_CONTINUE;
}
static u32 sub_81CF278(s32 state)
{
struct PokenavSub7 * ptr = GetSubstructPtr(7);
s32 r6 = ptr->unkPtr->unk0;
s32 r4 = ptr->unkPtr->unk4[0].unk6;
s32 i;
ptr->unkPtr->unk4[0].unk6 = 1;
for (i = 1; i < r6; i++)
{
if (ptr->unkPtr->unk4[i].unk6 == r4)
{
ptr->unkPtr->unk4[i].unk6 = ptr->unkPtr->unk4[i - 1].unk6;
}
else
{
r4 = ptr->unkPtr->unk4[i].unk6;
ptr->unkPtr->unk4[i].unk6 = i + 1;
}
}
ptr->unk18 = 1;
return LT_FINISH;
}
static void sub_81CF2C4(struct PokenavSub7 *structPtr, struct PokenavMonList *item)
{
u32 left = 0;
u32 right = structPtr->unkPtr->unk0;
u32 insertionIdx = left + (right - left) / 2;
while (right != insertionIdx)
{
if (item->unk6 > structPtr->unkPtr->unk4[insertionIdx].unk6)
right = insertionIdx;
else
left = insertionIdx + 1;
insertionIdx = left + (right - left) / 2;
}
for (right = structPtr->unkPtr->unk0; right > insertionIdx; right--)
structPtr->unkPtr->unk4[right] = structPtr->unkPtr->unk4[right - 1];
structPtr->unkPtr->unk4[insertionIdx] = *item;
structPtr->unkPtr->unk0++;
}
bool32 sub_81CF330(void)
{
struct PokenavSub8 * unk = AllocSubstruct(8, sizeof(struct PokenavSub8));
if (unk == NULL)
return FALSE;
unk->ltid = CreateLoopedTask(sub_81CF418, 1);
unk->callback = sub_81CF3E4;
unk->unkC = FALSE;
return TRUE;
}
bool32 sub_81CF368(void)
{
struct PokenavSub8 * unk = AllocSubstruct(8, sizeof(struct PokenavSub8));
if (unk == NULL)
return FALSE;
unk->ltid = CreateLoopedTask(sub_81CF418, 1);
unk->callback = sub_81CF3E4;
unk->unkC = TRUE;
return TRUE;
}
void sub_81CF3A0(s32 idx)
{
struct PokenavSub8 * unk = GetSubstructPtr(8);
unk->ltid = CreateLoopedTask(gUnknown_08623598[idx], 1);
unk->callback = sub_81CF3E4;
}
bool32 sub_81CF3D0(void)
{
struct PokenavSub8 * unk = GetSubstructPtr(8);
return unk->callback();
}
bool32 sub_81CF3E4(void)
{
struct PokenavSub8 * unk = GetSubstructPtr(8);
return IsLoopedTaskActive(unk->ltid);
}
void sub_81CF3F8(void)
{
struct PokenavSub8 * unk = GetSubstructPtr(8);
sub_81C8234();
RemoveWindow(unk->winid);
FreePokenavSubstruct(8);
}
static u32 sub_81CF418(s32 state)
{
struct PokenavSub8 * unk = GetSubstructPtr(8);
switch (state)
{
case 0:
InitBgTemplates(gUnknown_08623590, NELEMS(gUnknown_08623590));
decompress_and_copy_tile_data_to_vram(1, gUnknown_086233E4, 0, 0, 0);
SetBgTilemapBuffer(1, unk->buff);
CopyToBgTilemapBuffer(1, gUnknown_086234AC, 0, 0);
CopyBgTilemapBufferToVram(1);
CopyPaletteIntoBufferUnfaded(gUnknown_086233C4, 0x10, 0x20);
CopyBgTilemapBufferToVram(1);
return LT_INC_AND_PAUSE;
case 1:
if (free_temp_tile_data_buffers_if_possible())
return LT_PAUSE;
if (!sub_81CF0C0())
return LT_PAUSE;
return LT_INC_AND_PAUSE;
case 2:
if (free_temp_tile_data_buffers_if_possible())
return LT_PAUSE;
CopyPaletteIntoBufferUnfaded(gUnknown_08623570, 0x20, 0x20);
sub_81CF88C();
return LT_INC_AND_PAUSE;
case 3:
if (sub_81C8224())
return LT_PAUSE;
sub_81CF7C8(unk);
sub_81C7BA4(3);
return LT_INC_AND_PAUSE;
case 4:
if (free_temp_tile_data_buffers_if_possible())
return LT_PAUSE;
ChangeBgX(1, 0, 0);
ChangeBgY(1, 0, 0);
ShowBg(1);
ShowBg(2);
HideBg(3);
if (!unk->unkC)
{
u8 r4 = sub_81C76AC() + 8;
LoadLeftHeaderGfxForIndex(r4);
sub_81C7FA0(r4, 1, 0);
sub_81C7FA0(1, 1, 0);
}
sub_81C7AC0(1);
return LT_INC_AND_PAUSE;
case 5:
if (IsPaletteFadeActive())
return LT_PAUSE;
if (sub_81C8010())
return LT_PAUSE;
break;
}
return LT_FINISH;
}
static u32 sub_81CF578(s32 state)
{
struct PokenavSub8 * unk = GetSubstructPtr(8);
switch (state)
{
case 0:
switch (MatchCall_MoveCursorUp())
{
case 0:
return LT_FINISH;
case 1:
PlaySE(SE_SELECT);
return LT_SET_STATE(2);
case 2:
PlaySE(SE_SELECT);
break;
}
return LT_INC_AND_PAUSE;
case 1:
if (sub_81C8630())
return LT_PAUSE;
// fallthrough
case 2:
sub_81CF7F4(unk);
return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
return LT_PAUSE;
break;
}
return LT_FINISH;
}
static u32 sub_81CF5F0(s32 state)
{
struct PokenavSub8 * unk = GetSubstructPtr(8);
switch (state)
{
case 0:
switch (MatchCall_MoveCursorDown())
{
case 0:
return LT_FINISH;
case 1:
PlaySE(SE_SELECT);
return LT_SET_STATE(2);
case 2:
PlaySE(SE_SELECT);
break;
}
return LT_INC_AND_PAUSE;
case 1:
if (sub_81C8630())
return LT_PAUSE;
// fallthrough
case 2:
sub_81CF7F4(unk);
return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
return LT_PAUSE;
break;
}
return LT_FINISH;
}
static u32 sub_81CF668(s32 state)
{
struct PokenavSub8 * unk = GetSubstructPtr(8);
switch (state)
{
case 0:
switch (MatchCall_PageUp())
{
case 0:
return LT_FINISH;
case 1:
PlaySE(SE_SELECT);
return LT_SET_STATE(2);
case 2:
PlaySE(SE_SELECT);
break;
}
return LT_INC_AND_PAUSE;
case 1:
if (sub_81C8630())
return LT_PAUSE;
// fallthrough
case 2:
sub_81CF7F4(unk);
return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
return LT_PAUSE;
break;
}
return LT_FINISH;
}
static u32 sub_81CF6E0(s32 state)
{
struct PokenavSub8 * unk = GetSubstructPtr(8);
switch (state)
{
case 0:
switch (MatchCall_PageDown())
{
case 0:
return LT_FINISH;
case 1:
PlaySE(SE_SELECT);
return LT_SET_STATE(2);
case 2:
PlaySE(SE_SELECT);
break;
}
return LT_INC_AND_PAUSE;
case 1:
if (sub_81C8630())
return LT_PAUSE;
// fallthrough
case 2:
sub_81CF7F4(unk);
return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
return LT_PAUSE;
break;
}
return LT_FINISH;
}
static u32 sub_81CF758(s32 state)
{
switch (state)
{
case 0:
PlaySE(SE_SELECT);
sub_81C7AC0(0);
sub_81C78A0();
return LT_INC_AND_PAUSE;
case 1:
if (IsPaletteFadeActive())
return LT_PAUSE;
if (MainMenuLoopedTaskIsBusy())
return LT_PAUSE;
sub_81C7FDC();
break;
}
return LT_FINISH;
}
static u32 sub_81CF798(s32 state)
{
switch (state)
{
case 0:
PlaySE(SE_SELECT);
sub_81C7AC0(0);
return LT_INC_AND_PAUSE;
case 1:
if (IsPaletteFadeActive())
return LT_PAUSE;
break;
}
return LT_FINISH;
}
static void sub_81CF7C8(struct PokenavSub8 * ptr)
{
ptr->winid = AddWindow(&gUnknown_086235B4);
PutWindowTilemap(ptr->winid);
CopyWindowToVram(ptr->winid, 1);
sub_81CF7F4(ptr);
}
static void sub_81CF7F4(struct PokenavSub8 * ptr)
{
s32 r7 = sub_81CF0F0();
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
*gStringVar1 = EOS;
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar2, gText_NumberF700);
AddTextPrinterParameterized(ptr->winid, 1, gStringVar2, 4, 1, 0xFF, NULL);
ConvertIntToDecimalStringN(gStringVar1, r7, STR_CONV_MODE_RIGHT_ALIGN, 3);
AddTextPrinterParameterized(ptr->winid, 1, gStringVar1, 34, 1, 0xFF, NULL);
CopyWindowToVram(ptr->winid, 2);
}
static void sub_81CF88C(void)
{
struct MatchCallListTemplate template;
template.unk0 = sub_81CF0D0();
template.unk4 = sub_81CF0E0();
template.unk8 = 4;
template.unk6 = sub_81CF10C();
template.unk9 = 13;
template.unkA = 17;
template.unkB = 1;
template.unkC = 8;
template.unkD = 2;
template.unkE = 1;
template.unk10 = sub_81CF8E4;
template.unk14 = NULL;
sub_81C81D4(&gUnknown_08623590[1], &template, 0);
}
static void sub_81CF8E4(struct PokenavMonList * item, u8 * dest)
{
u8 gender;
u8 level;
u8 * s;
const u8 * genderStr;
if (item->boxId == 14)
{
struct Pokemon * mon = &gPlayerParty[item->monId];
gender = GetMonGender(mon);
level = GetLevelFromMonExp(mon);
GetMonData(mon, MON_DATA_NICKNAME, gStringVar3);
}
else
{
struct BoxPokemon * mon = GetBoxedMonPtr(item->boxId, item->monId);
gender = GetBoxMonGender(mon);
level = GetLevelFromBoxMonExp(mon);
GetBoxMonData(mon, MON_DATA_NICKNAME, gStringVar3);
}
StringGetEnd10(gStringVar3);
dest = sub_81DB494(dest, 1, gStringVar3, 60);
switch (gender)
{
default:
genderStr = gUnknown_086235D4;
break;
case MON_MALE:
genderStr = gUnknown_086235BC;
break;
case MON_FEMALE:
genderStr = gUnknown_086235C8;
break;
}
s = StringCopy(gStringVar1, genderStr);
*s++ = CHAR_SLASH;
*s++ = CHAR_SPECIAL_F9;
*s++ = 5; // LV
ConvertIntToDecimalStringN(s, level, STR_CONV_MODE_LEFT_ALIGN, 3);
sub_81DB494(dest, 1, gStringVar1, 40);
}

View File

@@ -1,53 +1,91 @@
#include "global.h"
#include "pokenav.h"
#include "bg.h"
#include "menu.h"
#include "window.h"
#include "sound.h"
#include "string_util.h"
#include "international_string_util.h"
#include "constants/songs.h"
u32 sub_81CFB8C(void);
u32 sub_81CFC2C(void);
u32 sub_81CFC40(void);
u32 sub_81CFFFC(s32);
u32 sub_81D0074(s32);
u32 sub_81D00EC(s32);
u32 sub_81D0164(s32);
u32 sub_81D01DC(s32);
u32 sub_81D021C(s32);
struct PokenavSub9
{
u32 (*unk0)(struct PokenavSub9*);
u32 loopedTaskId;
u16 winid;
s32 unkC;
s32 unk10;
u32 unk14;
u32 unk18;
struct PokenavSub18 *unk1C;
};
u32 (*const gUnknown_086235D8[])(void) =
struct PokenavSub10
{
bool32 (*callback)(void);
u32 ltid;
u16 winid;
bool32 unkC;
u8 buff[BG_SCREEN_SIZE];
};
static u32 sub_81CFA68(struct PokenavSub9 *structPtr);
static u32 sub_81CFA88(struct PokenavSub9 *structPtr);
static u32 sub_81CFB08(struct PokenavSub9 *structPtr);
static u32 sub_81CFB10(struct PokenavSub9 *structPtr);
static u32 sub_81CFB8C(s32 state);
static u32 sub_81CFC2C(s32 state);
static u32 sub_81CFC40(s32 state);
static u32 sub_81CFB74(s32 state);
static void sub_81CFCEC(struct PokenavSub9 *structPtr, struct PokenavMonList *item);
static u32 sub_81CFEB8(s32 state);
static bool32 sub_81CFE84(void);
static u32 sub_81CFFFC(s32 state);
static u32 sub_81D0074(s32 state);
static u32 sub_81D00EC(s32 state);
static u32 sub_81D0164(s32 state);
static u32 sub_81D01DC(s32 state);
static u32 sub_81D021C(s32 state);
static void sub_81D02B0(s32 windowId, s32 val1, s32 val2);
static void sub_81D024C(struct PokenavSub10 *ptr);
static void sub_81D0288(struct PokenavSub10 *ptr);
static void sub_81D0304(void);
static void sub_81D035C(struct PokenavMonList *, u8 *);
static const LoopedTask gUnknown_086235D8[] =
{
sub_81CFB8C,
sub_81CFC2C,
sub_81CFC40
};
const u16 gUnknown_086235E4[] = INCBIN_U16("graphics/pokenav/ui_ribbons.gbapal");
const u32 gUnknown_08623604[] = INCBIN_U32("graphics/pokenav/ui_ribbons.4bpp.lz");
const u32 gUnknown_086236CC[] = INCBIN_U32("graphics/pokenav/ui_ribbons.bin.lz");
const u16 gUnknown_08623790[] = INCBIN_U16("graphics/pokenav/8623790.gbapal");
static const u16 gUnknown_086235E4[] = INCBIN_U16("graphics/pokenav/ui_ribbons.gbapal");
static const u32 gUnknown_08623604[] = INCBIN_U32("graphics/pokenav/ui_ribbons.4bpp.lz");
static const u32 gUnknown_086236CC[] = INCBIN_U32("graphics/pokenav/ui_ribbons.bin.lz");
static const u16 gUnknown_08623790[] = INCBIN_U16("graphics/pokenav/8623790.gbapal");
const struct BgTemplate gUnknown_086237B0 =
static const struct BgTemplate gUnknown_086237B0[] =
{
.bg = 1,
.charBaseIndex = 1,
.mapBaseIndex = 0x06,
.screenSize = 0,
.paletteMode = 0,
.priority = 2,
.baseTile = 0
{
.bg = 1,
.charBaseIndex = 1,
.mapBaseIndex = 0x06,
.screenSize = 0,
.paletteMode = 0,
.priority = 2,
.baseTile = 0
}, {
.bg = 2,
.charBaseIndex = 2,
.mapBaseIndex = 0x07,
.screenSize = 0,
.paletteMode = 0,
.priority = 3,
.baseTile = 0
}
};
const struct BgTemplate gUnknown_086237B4 =
{
.bg = 2,
.charBaseIndex = 2,
.mapBaseIndex = 0x07,
.screenSize = 0,
.paletteMode = 0,
.priority = 3,
.baseTile = 0
};
const LoopedTask gUnknown_086237B8[] =
static const LoopedTask gUnknown_086237B8[] =
{
NULL,
sub_81CFFFC,
@@ -58,7 +96,7 @@ const LoopedTask gUnknown_086237B8[] =
sub_81D021C
};
const struct WindowTemplate gUnknown_086237D4 =
static const struct WindowTemplate gUnknown_086237D4 =
{
.bg = 1,
.tilemapLeft = 1,
@@ -69,6 +107,620 @@ const struct WindowTemplate gUnknown_086237D4 =
.baseBlock = 20
};
const u8 gUnknown_086237DC[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
const u8 gUnknown_086237E8[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
const u8 gUnknown_086237F4[] = _("{UNK_SPACER}");
static const u8 gUnknown_086237DC[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
static const u8 gUnknown_086237E8[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
static const u8 gUnknown_086237F4[] = _("{UNK_SPACER}");
bool32 PokenavCallback_Init_12(void)
{
struct PokenavSub9 *structPtr = AllocSubstruct(9, sizeof(struct PokenavSub9));
if (structPtr == NULL)
return FALSE;
structPtr->unk1C = AllocSubstruct(18, sizeof(struct PokenavSub18));
if (structPtr->unk1C == NULL)
return FALSE;
structPtr->unk0 = sub_81CFA68;
structPtr->loopedTaskId = CreateLoopedTask(sub_81CFB74, 1);
structPtr->unk14 = 0;
return TRUE;
}
bool32 PokenavCallback_Init_14(void)
{
struct PokenavSub9 *structPtr = AllocSubstruct(9, sizeof(struct PokenavSub9));
if (structPtr == NULL)
return FALSE;
structPtr->unk1C = GetSubstructPtr(18);
structPtr->unk0 = sub_81CFA88;
structPtr->unk14 = 1;
return TRUE;
}
u32 sub_81CFA34(void)
{
struct PokenavSub9 *structPtr = GetSubstructPtr(9);
return structPtr->unk0(structPtr);
}
void sub_81CFA48(void)
{
struct PokenavSub9 *structPtr = GetSubstructPtr(9);
if (!structPtr->unk18)
FreePokenavSubstruct(18);
FreePokenavSubstruct(9);
}
static u32 sub_81CFA68(struct PokenavSub9 *structPtr)
{
if (!IsLoopedTaskActive(structPtr->loopedTaskId))
structPtr->unk0 = sub_81CFA88;
return 0;
}
static u32 sub_81CFA88(struct PokenavSub9 *structPtr)
{
if (gMain.newAndRepeatedKeys & DPAD_UP)
return 1;
if (gMain.newAndRepeatedKeys & DPAD_DOWN)
return 2;
if (gMain.newKeys & DPAD_LEFT)
return 3;
if (gMain.newKeys & DPAD_RIGHT)
return 4;
if (gMain.newKeys & B_BUTTON)
{
structPtr->unk18 = 0;
structPtr->unk0 = sub_81CFB08;
return 5;
}
if (gMain.newKeys & A_BUTTON)
{
structPtr->unk1C->unk2 = GetSelectedMatchCall();
structPtr->unk18 = 1;
structPtr->unk0 = sub_81CFB10;
return 6;
}
return 0;
}
static u32 sub_81CFB08(struct PokenavSub9 *structPtr)
{
return 100005;
}
static u32 sub_81CFB10(struct PokenavSub9 *structPtr)
{
return 100013;
}
static u32 sub_81CFB18(void)
{
struct PokenavSub9 *structPtr = GetSubstructPtr(9);
return structPtr->unk14;
}
static struct PokenavMonList * sub_81CFB28(void)
{
struct PokenavSub9 * ptr = GetSubstructPtr(9);
return ptr->unk1C->unk4;
}
static s32 sub_81CFB38(void)
{
struct PokenavSub9 * ptr = GetSubstructPtr(9);
return ptr->unk1C->unk0;
}
static s32 sub_81CFB48(void)
{
struct PokenavSub9 * ptr = GetSubstructPtr(9);
s32 idx = GetSelectedMatchCall();
return ptr->unk1C->unk4[idx].unk6;
}
static s32 sub_81CFB64(void)
{
struct PokenavSub9 * ptr = GetSubstructPtr(9);
return ptr->unk1C->unk2;
}
static u32 sub_81CFB74(s32 state)
{
return gUnknown_086235D8[state](state);
}
static u32 sub_81CFB8C(s32 state)
{
s32 i;
struct PokenavMonList item;
struct PokenavSub9 * ptr = GetSubstructPtr(9);
ptr->unk1C->unk0 = 0;
ptr->unk1C->unk2 = 0;
item.boxId = 14;
for (i = 0; i < PARTY_SIZE; i++)
{
struct Pokemon * pokemon = &gPlayerParty[i];
if (!GetMonData(pokemon, MON_DATA_SANITY_HAS_SPECIES))
return LT_INC_AND_CONTINUE;
if (!GetMonData(pokemon, MON_DATA_SANITY_IS_EGG) && !GetMonData(pokemon, MON_DATA_SANITY_IS_BAD_EGG))
{
u32 ribbonCount = GetMonData(pokemon, MON_DATA_RIBBON_COUNT);
if (ribbonCount != 0)
{
item.monId = i;
item.unk6 = ribbonCount;
sub_81CFCEC(ptr, &item);
}
}
}
return LT_INC_AND_CONTINUE;
}
static u32 sub_81CFC2C(s32 state)
{
struct PokenavSub9 * ptr = GetSubstructPtr(9);
ptr->unk10 = 0;
ptr->unkC = 0;
return LT_INC_AND_CONTINUE;
}
static u32 sub_81CFC40(s32 state)
{
struct PokenavSub9 * ptr = GetSubstructPtr(9);
s32 boxId = ptr->unkC;
s32 monId = ptr->unk10;
s32 boxCount = 0;
struct PokenavMonList item;
while (boxId < TOTAL_BOXES_COUNT)
{
while (monId < IN_BOX_COUNT)
{
if (CheckBoxMonSanityAt(boxId, monId))
{
u32 ribbonCount = GetBoxMonDataAt(boxId, monId, MON_DATA_RIBBON_COUNT);
if (ribbonCount != 0)
{
item.boxId = boxId;
item.monId = monId;
item.unk6 = ribbonCount;
sub_81CFCEC(ptr, &item);
}
}
boxCount++;
monId++;
if (boxCount > 14)
{
ptr->unkC = boxId;
ptr->unk10 = monId;
return LT_CONTINUE;
}
}
monId = 0;
boxId++;
}
ptr->unk14 = 1;
return LT_FINISH;
}
static void sub_81CFCEC(struct PokenavSub9 *structPtr, struct PokenavMonList *item)
{
u32 left = 0;
u32 right = structPtr->unk1C->unk0;
u32 insertionIdx = left + (right - left) / 2;
while (right != insertionIdx)
{
if (item->unk6 > structPtr->unk1C->unk4[insertionIdx].unk6)
right = insertionIdx;
else
left = insertionIdx + 1;
insertionIdx = left + (right - left) / 2;
}
for (right = structPtr->unk1C->unk0; right > insertionIdx; right--)
structPtr->unk1C->unk4[right] = structPtr->unk1C->unk4[right - 1];
structPtr->unk1C->unk4[insertionIdx] = *item;
structPtr->unk1C->unk0++;
}
static bool32 sub_81CFD58(void)
{
s32 i, j;
for (i = 0; i < PARTY_SIZE; i++)
{
struct Pokemon * mon = &gPlayerParty[i];
if (!GetMonData(mon, MON_DATA_SANITY_HAS_SPECIES))
continue;
if (GetMonData(mon, MON_DATA_SANITY_IS_EGG))
continue;
if (GetMonData(mon, MON_DATA_RIBBONS))
return TRUE;
}
for (i = 0; i < TOTAL_BOXES_COUNT; i++)
{
for (j = 0; j < IN_BOX_COUNT; j++)
{
if (!CheckBoxMonSanityAt(i, j))
continue;
if (GetBoxMonDataAt(i, j, MON_DATA_RIBBONS))
return TRUE;
}
}
return FALSE;
}
bool32 sub_81CFDD0(void)
{
struct PokenavSub10 * ptr = AllocSubstruct(10, sizeof(struct PokenavSub10));
if (ptr == NULL)
return FALSE;
ptr->ltid = CreateLoopedTask(sub_81CFEB8, 1);
ptr->callback = sub_81CFE84;
ptr->unkC = FALSE;
return TRUE;
}
bool32 sub_81CFE08(void)
{
struct PokenavSub10 * ptr = AllocSubstruct(10, sizeof(struct PokenavSub10));
if (ptr == NULL)
return FALSE;
ptr->ltid = CreateLoopedTask(sub_81CFEB8, 1);
ptr->callback = sub_81CFE84;
ptr->unkC = TRUE;
return TRUE;
}
void sub_81CFE40(s32 idx)
{
struct PokenavSub10 * ptr = GetSubstructPtr(10);
ptr->ltid = CreateLoopedTask(gUnknown_086237B8[idx], 1);
ptr->callback = sub_81CFE84;
}
bool32 sub_81CFE70(void)
{
struct PokenavSub10 * ptr = GetSubstructPtr(10);
return ptr->callback();
}
bool32 sub_81CFE84(void)
{
struct PokenavSub10 * ptr = GetSubstructPtr(10);
return IsLoopedTaskActive(ptr->ltid);
}
void sub_81CFE98(void)
{
struct PokenavSub10 * ptr = GetSubstructPtr(10);
sub_81C8234();
RemoveWindow(ptr->winid);
FreePokenavSubstruct(10);
}
static u32 sub_81CFEB8(s32 state)
{
struct PokenavSub10 * unk = GetSubstructPtr(10);
switch (state)
{
case 0:
InitBgTemplates(gUnknown_086237B0, NELEMS(gUnknown_086237B0));
decompress_and_copy_tile_data_to_vram(1, gUnknown_08623604, 0, 0, 0);
SetBgTilemapBuffer(1, unk->buff);
CopyToBgTilemapBuffer(1, gUnknown_086236CC, 0, 0);
CopyPaletteIntoBufferUnfaded(gUnknown_086235E4, 0x10, 0x20);
CopyBgTilemapBufferToVram(1);
return LT_INC_AND_PAUSE;
case 1:
if (free_temp_tile_data_buffers_if_possible())
return LT_PAUSE;
if (!sub_81CFB18())
return LT_PAUSE;
ChangeBgX(1, 0, 0);
ChangeBgY(1, 0, 0);
ShowBg(1);
return LT_INC_AND_PAUSE;
case 2:
if (free_temp_tile_data_buffers_if_possible())
return LT_PAUSE;
CopyPaletteIntoBufferUnfaded(gUnknown_08623790, 0x20, 0x20);
sub_81D0304();
return LT_INC_AND_PAUSE;
case 3:
if (sub_81C8224())
return LT_PAUSE;
sub_81D024C(unk);
return LT_INC_AND_PAUSE;
case 4:
if (free_temp_tile_data_buffers_if_possible())
return LT_PAUSE;
ShowBg(2);
HideBg(3);
sub_81C7BA4(9);
sub_81C7AC0(1);
if (!unk->unkC)
{
LoadLeftHeaderGfxForIndex(2);
sub_81C7FA0(2, 1, 0);
}
return LT_INC_AND_PAUSE;
case 5:
if (IsPaletteFadeActive())
return LT_PAUSE;
if (sub_81C8010())
return LT_PAUSE;
break;
}
return LT_FINISH;
}
static u32 sub_81CFFFC(s32 state)
{
struct PokenavSub10 * unk = GetSubstructPtr(10);
switch (state)
{
case 0:
switch (MatchCall_MoveCursorUp())
{
case 0:
return LT_FINISH;
case 1:
PlaySE(SE_SELECT);
return LT_SET_STATE(2);
case 2:
PlaySE(SE_SELECT);
break;
}
return LT_INC_AND_PAUSE;
case 1:
if (sub_81C8630())
return LT_PAUSE;
// fallthrough
case 2:
sub_81D0288(unk);
return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
return LT_PAUSE;
break;
}
return LT_FINISH;
}
static u32 sub_81D0074(s32 state)
{
struct PokenavSub10 * unk = GetSubstructPtr(10);
switch (state)
{
case 0:
switch (MatchCall_MoveCursorDown())
{
case 0:
return LT_FINISH;
case 1:
PlaySE(SE_SELECT);
return LT_SET_STATE(2);
case 2:
PlaySE(SE_SELECT);
break;
}
return LT_INC_AND_PAUSE;
case 1:
if (sub_81C8630())
return LT_PAUSE;
// fallthrough
case 2:
sub_81D0288(unk);
return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
return LT_PAUSE;
break;
}
return LT_FINISH;
}
static u32 sub_81D00EC(s32 state)
{
struct PokenavSub10 * unk = GetSubstructPtr(10);
switch (state)
{
case 0:
switch (MatchCall_PageUp())
{
case 0:
return LT_FINISH;
case 1:
PlaySE(SE_SELECT);
return LT_SET_STATE(2);
case 2:
PlaySE(SE_SELECT);
break;
}
return LT_INC_AND_PAUSE;
case 1:
if (sub_81C8630())
return LT_PAUSE;
// fallthrough
case 2:
sub_81D0288(unk);
return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
return LT_PAUSE;
break;
}
return LT_FINISH;
}
static u32 sub_81D0164(s32 state)
{
struct PokenavSub10 * unk = GetSubstructPtr(10);
switch (state)
{
case 0:
switch (MatchCall_PageDown())
{
case 0:
return LT_FINISH;
case 1:
PlaySE(SE_SELECT);
return LT_SET_STATE(2);
case 2:
PlaySE(SE_SELECT);
break;
}
return LT_INC_AND_PAUSE;
case 1:
if (sub_81C8630())
return LT_PAUSE;
// fallthrough
case 2:
sub_81D0288(unk);
return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
return LT_PAUSE;
break;
}
return LT_FINISH;
}
static u32 sub_81D01DC(s32 state)
{
switch (state)
{
case 0:
PlaySE(SE_SELECT);
sub_81C7AC0(0);
sub_81C78A0();
return LT_INC_AND_PAUSE;
case 1:
if (IsPaletteFadeActive())
return LT_PAUSE;
if (MainMenuLoopedTaskIsBusy())
return LT_PAUSE;
sub_81C7FDC();
break;
}
return LT_FINISH;
}
static u32 sub_81D021C(s32 state)
{
switch (state)
{
case 0:
PlaySE(SE_SELECT);
sub_81C7AC0(0);
return LT_INC_AND_PAUSE;
case 1:
if (IsPaletteFadeActive())
return LT_PAUSE;
break;
}
return LT_FINISH;
}
static void sub_81D024C(struct PokenavSub10 * ptr)
{
s32 r2;
ptr->winid = AddWindow(&gUnknown_086237D4);
PutWindowTilemap(ptr->winid);
r2 = sub_81CFB38();
sub_81D02B0(ptr->winid, 0, r2);
CopyWindowToVram(ptr->winid, 1);
sub_81D0288(ptr);
}
static void sub_81D0288(struct PokenavSub10 * ptr)
{
s32 r4 = GetSelectedMatchCall();
s32 r2 = sub_81CFB38();
sub_81D02B0(ptr->winid, r4 + 1, r2);
CopyWindowToVram(ptr->winid, 2);
}
static void sub_81D02B0(s32 windowId, s32 val1, s32 val2)
{
u8 strbuf[16];
u32 x;
u8 * ptr = strbuf;
ptr = ConvertIntToDecimalStringN(ptr, val1, STR_CONV_MODE_RIGHT_ALIGN, 3);
*ptr++ = CHAR_SLASH;
ConvertIntToDecimalStringN(ptr, val2, STR_CONV_MODE_RIGHT_ALIGN, 3);
x = GetStringCenterAlignXOffset(1, strbuf, 56);
AddTextPrinterParameterized(windowId, 1, strbuf,x, 1, 0xFF, NULL);
}
static void sub_81D0304(void)
{
struct MatchCallListTemplate template;
template.unk0 = sub_81CFB28();
template.unk4 = sub_81CFB38();
template.unk8 = 4;
template.unk6 = sub_81CFB64();
template.unk9 = 13;
template.unkA = 17;
template.unkB = 1;
template.unkC = 8;
template.unkD = 2;
template.unkE = 1;
template.unk10 = sub_81D035C;
template.unk14 = NULL;
sub_81C81D4(&gUnknown_086237B0[1], &template, 0);
}
static void sub_81D035C(struct PokenavMonList * item0, u8 * dest)
{
u8 gender;
u8 level;
u8 * s;
const u8 * genderStr;
struct PokenavMonList * item = item0;
if (item->boxId == 14)
{
struct Pokemon * mon = &gPlayerParty[item->monId];
gender = GetMonGender(mon);
level = GetLevelFromMonExp(mon);
GetMonData(mon, MON_DATA_NICKNAME, gStringVar3);
}
else
{
struct BoxPokemon * mon = GetBoxedMonPtr(item->boxId, item->monId);
gender = GetBoxMonGender(mon);
level = GetLevelFromBoxMonExp(mon);
GetBoxMonData(mon, MON_DATA_NICKNAME, gStringVar3);
}
StringGetEnd10(gStringVar3);
dest = sub_81DB494(dest, 1, gStringVar3, 60);
switch (gender)
{
default:
genderStr = gUnknown_086237F4;
break;
case MON_MALE:
genderStr = gUnknown_086237DC;
break;
case MON_FEMALE:
genderStr = gUnknown_086237E8;
break;
}
s = StringCopy(gStringVar1, genderStr);
*s++ = CHAR_SLASH;
*s++ = CHAR_SPECIAL_F9;
*s++ = 5; // LV
ConvertIntToDecimalStringN(s, level, STR_CONV_MODE_LEFT_ALIGN, 3);
dest = sub_81DB494(dest, 1, gStringVar1, 54);
ConvertIntToDecimalStringN(dest, item->unk6, STR_CONV_MODE_RIGHT_ALIGN, 2);
}

View File

@@ -915,7 +915,7 @@ void SetHillTrainerFlag(void)
}
}
const u8 *sub_81D62AC(void)
const u8 *GetTrainerHillTrainerScript(void)
{
return EventScript_2C83F0;
}

View File

@@ -235,7 +235,7 @@ static u8 CheckTrainer(u8 eventObjectId)
u8 approachDistance;
if (InTrainerHill() == TRUE)
scriptPtr = sub_81D62AC();
scriptPtr = GetTrainerHillTrainerScript();
else
scriptPtr = GetEventObjectScriptPointerByEventObjectId(eventObjectId);

View File

@@ -1,4 +1,4 @@
CC = gcc
CC ?= gcc
CFLAGS = -Wall -Wextra -Wno-switch -Werror -std=c11 -O2

View File

@@ -1,4 +1,4 @@
CC = gcc
CC ?= gcc
CFLAGS = -Wall -Wextra -Werror -std=c11 -O2

View File

@@ -1,4 +1,4 @@
CC = gcc
CC ?= gcc
.PHONY: all clean
SRCS = gbafix.c

View File

@@ -1,4 +1,4 @@
CC = gcc
CC ?= gcc
CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -DPNG_SKIP_SETJMP_CHECK

View File

@@ -1,4 +1,4 @@
CXX := g++
CXX ?= g++
CXXFLAGS := -Wall -std=c++11 -O2

View File

@@ -1,4 +1,4 @@
CXX := g++
CXX ?= g++
CXXFLAGS := -Wall -std=c++11 -O2

View File

@@ -1,4 +1,4 @@
CXX := g++
CXX ?= g++
CXXFLAGS := -std=c++11 -O2 -Wall -Wno-switch -Werror

View File

@@ -1,4 +1,4 @@
CXX := g++
CXX ?= g++
CXXFLAGS := -std=c++11 -O2 -Wall -Wno-switch -Werror

View File

@@ -1,4 +1,4 @@
CXX := g++
CXX ?= g++
CXXFLAGS := -std=c++11 -O2 -Wall -Wno-switch -Werror

View File

@@ -1,4 +1,4 @@
CC = gcc
CC ?= gcc
CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -DPNG_SKIP_SETJMP_CHECK

View File

@@ -1,4 +1,4 @@
CXX = g++
CXX ?= g++
CXXFLAGS = -Wall -Werror -std=c++11 -O2