diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1dfb5763e0..283e6f8fb5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -52,14 +52,6 @@ jobs: COMPARE: 0 run: make -j${nproc} all - - name: Webhook - if: ${{ github.event_name == 'push' && github.repository_owner == 'pret' }} - env: - CALCROM_DISCORD_WEBHOOK_USERNAME: OK - CALCROM_DISCORD_WEBHOOK_AVATAR_URL: https://i.imgur.com/38BQHdd.png - CALCROM_DISCORD_WEBHOOK_URL: ${{ secrets.CALCROM_DISCORD_WEBHOOK_URL }} - run: sh .github/calcrom/webhook.sh pokeemerald - - name: Move symfiles if: ${{ github.event_name == 'push' }} run: | diff --git a/.gitignore b/.gitignore index fd16840c67..cac4a07e61 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ *.i *.elf *.gba +!data/*.gba *.sgm *.sa1 *.ss[0-9] @@ -36,3 +37,4 @@ porymap.project.cfg *.sna *.diff *.sym +*.js diff --git a/INSTALL.md b/INSTALL.md index 1ad3b4b0c9..f6434c07be 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -125,12 +125,12 @@ Otherwise, ask for help on Discord or IRC (see [README.md](README.md)), or conti Note that in msys2, Copy is Ctrl+Insert and Paste is Shift+Insert. -1. Open msys2 at C:\devkitPro\msys2\msys2_shell.bat. +1. Open msys2 at C:\devkitPro\msys2\mingw64.exe or run `C:\devkitPro\msys2\msys2_shell.bat -mingw64`. 2. Certain packages are required to build pokeemerald. Install these by running the following command: ```bash - pacman -S make gcc zlib-devel git + pacman -S make zlib-devel git mingw-w64-x86_64-gcc mingw-w64-x86_64-libpng ```
Note... @@ -138,39 +138,6 @@ Note that in msys2, Copy is Ctrl+Insert and Paste is Shift+Insert. > This command will ask for confirmation, just enter the yes action when prompted.
-3. Download [libpng](https://sourceforge.net/projects/libpng/files/libpng16/1.6.37/libpng-1.6.37.tar.xz/download). - -4. Change directory to where libpng was downloaded. By default, msys2 will start in the current user's profile folder, located at **C:\Users\\⁠_\_**, where *\* is your Windows username. In most cases, libpng should be saved within a subfolder of the profile folder. For example, if libpng was saved to **C:\Users\\_\_\Downloads** (the Downloads location for most users), enter this command: - - ```bash - cd Downloads - ``` - -
- Notes... - - > Note 1: While not shown, msys uses forward slashes `/` instead of backwards slashes `\` as the directory separator. - > Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "Downloads/My Downloads"`. - > Note 3: Windows path names are case-insensitive so adhering to capitalization isn’t needed. - > Note 4: If libpng was saved elsewhere, you will need to specify the full path to where libpng was downloaded, e.g. `cd c:/devkitpro/msys2` if it was saved there. -
- -5. Run the following commands to uncompress and install libpng. - - ```bash - tar xf libpng-1.6.37.tar.xz - cd libpng-1.6.37 - ./configure --prefix=/usr - make check - make install - ``` - -6. Then finally, run the following command to change back to the user profile folder. - - ```bash - cd - ``` - ### Choosing where to store pokeemerald (msys2) At this point, you can choose a folder to store pokeemerald into. If you're okay with storing pokeemerald in the user profile folder, then proceed to [Installation](#installation). Otherwise, you'll need to account for where pokeemerald is stored when changing directory to the pokeemerald folder. @@ -338,6 +305,20 @@ Then proceed to [Choosing where to store pokeemerald (Linux)](#choosing-where-to > then you will have to install devkitARM. Install all the above packages except binutils-arm-none-eabi, and follow the instructions to > [install devkitARM on Debian/Ubuntu-based distributions](#installing-devkitarm-on-debianubuntu-based-distributions). + +### Arch Linux +Run this command as root to install the necessary packages: +```bash +pacman -S base-devel arm-none-eabi-binutils git libpng +``` +Then proceed to [Choosing where to store pokeemerald (Linux)](#choosing-where-to-store-pokeemerald-linux). +
+ Note for legacy repos... + +> If the repository you plan to build has an **[older revision of the INSTALL.md](https://github.com/pret/pokeemerald/blob/571c598/INSTALL.md)**, +> then you will have to install devkitARM. Install all the above packages except binutils-arm-none-eabi, and follow the instructions to +> [install devkitARM on Arch Linux](#installing-devkitarm-on-arch-linux). +
### Other distributions _(Specific instructions for other distributions would be greatly appreciated!)_ @@ -553,6 +534,24 @@ devkitARM is now installed. devkitARM is now installed. +## Installing devkitARM on Arch Linux + +1. Follow [devkitPro's instructions](https://devkitpro.org/wiki/devkitPro_pacman#Customising_Existing_Pacman_Install) to configure `pacman` to download devkitPro packages. +2. Install `gba-dev`: run the following command as root. + + ```console + pacman -S gba-dev + ``` + This will ask for the selection of packages to install. Just press Enter to install all of them, followed by entering Y to proceed with the installation. + +3. Run the following command to set devkitPro related environment variables (alternatively, close and re-open the Terminal): + + ```bash + source /etc/profile.d/devkit-env.sh + ``` + +devkitARM is now installed. + ## Other toolchains To build using a toolchain other than devkitARM, override the `TOOLCHAIN` environment variable with the path to your toolchain, which must contain the subdirectory `bin`. diff --git a/Makefile b/Makefile index 7b2f79877a..6283a87fe3 100644 --- a/Makefile +++ b/Makefile @@ -150,7 +150,7 @@ MAKEFLAGS += --no-print-directory # Secondary expansion is required for dependency variables in object rules. .SECONDEXPANSION: -.PHONY: all rom clean compare tidy tools mostlyclean clean-tools $(TOOLDIRS) berry_fix libagbsyscall modern tidymodern tidynonmodern +.PHONY: all rom clean compare tidy tools mostlyclean clean-tools $(TOOLDIRS) libagbsyscall modern tidymodern tidynonmodern infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line)))) @@ -158,7 +158,7 @@ infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst # Disable dependency scanning for clean/tidy/tools # Use a separate minimal makefile for speed # Since we don't need to reload most of this makefile -ifeq (,$(filter-out all rom compare modern berry_fix libagbsyscall syms,$(MAKECMDGOALS))) +ifeq (,$(filter-out all rom compare modern libagbsyscall syms,$(MAKECMDGOALS))) $(call infoshell, $(MAKE) -f make_tools.mk) else NODEP ?= 1 @@ -169,8 +169,8 @@ ifeq (,$(MAKECMDGOALS)) SCAN_DEPS ?= 1 else # clean, tidy, tools, mostlyclean, clean-tools, $(TOOLDIRS), tidymodern, tidynonmodern don't even build the ROM - # berry_fix and libagbsyscall do their own thing - ifeq (,$(filter-out clean tidy tools mostlyclean clean-tools $(TOOLDIRS) tidymodern tidynonmodern berry_fix libagbsyscall,$(MAKECMDGOALS))) + # libagbsyscall does its own thing + ifeq (,$(filter-out clean tidy tools mostlyclean clean-tools $(TOOLDIRS) tidymodern tidynonmodern libagbsyscall,$(MAKECMDGOALS))) SCAN_DEPS ?= 0 else SCAN_DEPS ?= 1 @@ -243,7 +243,6 @@ mostlyclean: tidynonmodern tidymodern rm -f $(DATA_ASM_SUBDIR)/maps/connections.inc $(DATA_ASM_SUBDIR)/maps/events.inc $(DATA_ASM_SUBDIR)/maps/groups.inc $(DATA_ASM_SUBDIR)/maps/headers.inc find $(DATA_ASM_SUBDIR)/maps \( -iname 'connections.inc' -o -iname 'events.inc' -o -iname 'header.inc' \) -exec rm {} + rm -f $(AUTO_GEN_TARGETS) - @$(MAKE) clean -C berry_fix @$(MAKE) clean -C libagbsyscall tidy: tidynonmodern tidymodern @@ -417,7 +416,7 @@ endif $(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS) cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld -$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) berry_fix libagbsyscall +$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) libagbsyscall @echo "cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ " @cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB) $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent @@ -428,11 +427,6 @@ $(ROM): $(ELF) modern: all -berry_fix/berry_fix.gba: berry_fix - -berry_fix: - @$(MAKE) -C berry_fix COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN) - libagbsyscall: @$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN) diff --git a/asm/macros.inc b/asm/macros.inc index 77f44a8475..95bb4e31b0 100644 --- a/asm/macros.inc +++ b/asm/macros.inc @@ -1,8 +1,6 @@ .include "asm/macros/asm.inc" .include "asm/macros/function.inc" .include "asm/macros/movement.inc" - .include "asm/macros/window.inc" - .include "asm/macros/pokemon_data.inc" .include "asm/macros/map.inc" .include "asm/macros/field_effect_script.inc" .include "asm/macros/trainer_hill.inc" @@ -16,130 +14,3 @@ .include "asm/macros/battle_frontier/battle_pyramid.inc" .include "asm/macros/battle_frontier/battle_tower.inc" .include "asm/macros/battle_frontier/frontier_util.inc" - - .macro region_map_entry x, y, width, height, name - .byte \x - .byte \y - .byte \width - .byte \height - .4byte gMapName_\name - .endm - - .macro obj_tiles address, uncompressed_size, tag = 0 - .4byte \address - .2byte \uncompressed_size - .2byte \tag - .endm - - .macro null_obj_tiles - obj_tiles 0, 0, 0 - .endm - - .macro obj_pal address, tag - .4byte \address - .2byte \tag - .2byte 0@ padding - .endm - - .macro null_obj_pal - obj_pal 0, 0 - .endm - - .macro paired_pals tag, address - .2byte \tag - .2byte 0 @ padding - .4byte \address - .endm - -@ For object animation frames. - .macro obj_frame_tiles address, uncompressed_size - .4byte \address - .2byte \uncompressed_size - .2byte 0 @ padding - .endm - - .macro spr_template tile_tag, pal_tag, oam, anims, images, affine_anims, callback - .2byte \tile_tag - .2byte \pal_tag - .4byte \oam - .4byte \anims - .4byte \images - .4byte \affine_anims - .4byte \callback - .endm - -@ Berry trees have a table defining the palette slot used for each of their 5 -@ stages. However, the first 2 stages always use the same slots regardless of -@ the type of tree and the slots of the last 3 stages always equal each other. - .macro berry_tree_palette_slot_table slot - .byte 3, 4, \slot, \slot, \slot - .endm - - .macro subsprite x, y, priority, tile_num_offset, size - .byte \x - .byte \y - .2byte ((\priority) << 14) | ((\tile_num_offset) << 4) | SPRITE_SIZE_\size - .endm - - .macro obj_image_anim_frame pic_id, duration, flags = 0 - .2byte \pic_id - .byte (\flags) | (\duration) - .byte 0 @ padding - .endm - - .macro obj_image_anim_loop count - .2byte 0xfffd - .byte \count - .byte 0 @ padding - .endm - - .macro obj_image_anim_jump target_index - .2byte 0xfffe - .byte \target_index - .byte 0 @ padding - .endm - - .macro obj_image_anim_end - .2byte 0xffff - .2byte 0 @ padding - .endm - - .macro obj_rot_scal_anim_frame delta_x_scale, delta_y_scale, delta_angle, duration - .2byte \delta_x_scale - .2byte \delta_y_scale - .byte \delta_angle - .byte \duration - .2byte 0 @ padding - .endm - - .macro obj_rot_scal_anim_loop count - .2byte 0x7ffd - .2byte \count - .4byte 0 @ padding - .endm - - .macro obj_rot_scal_anim_jump target_index - .2byte 0x7ffe - .2byte \target_index - .4byte 0 @ padding - .endm - - .macro obj_rot_scal_anim_end unknown=0 - .2byte 0x7fff - .2byte \unknown - .fill 4 @ padding - .endm - - .macro door_anim_frame unknown, offset - .byte \unknown - .byte 0 @ padding - .2byte \offset - .endm - - .macro door_anim_gfx metatile_num, unknown, unknown2, tile_addr, palette_addr - .2byte \metatile_num - .byte \unknown - .byte \unknown2 - .4byte \tile_addr - .4byte \palette_addr - .endm diff --git a/asm/macros/asm.inc b/asm/macros/asm.inc index 4ac003fabd..3f70145d31 100644 --- a/asm/macros/asm.inc +++ b/asm/macros/asm.inc @@ -1,4 +1,4 @@ - .macro inc x + .macro inc x:req .set \x, \x + 1 .endm @@ -6,7 +6,7 @@ .set __enum__, \x .endm - .macro enum constant + .macro enum constant:req .equiv \constant, __enum__ inc __enum__ .endm diff --git a/asm/macros/battle_ai_script.inc b/asm/macros/battle_ai_script.inc index 4c7646d6f6..5341e5a431 100644 --- a/asm/macros/battle_ai_script.inc +++ b/asm/macros/battle_ai_script.inc @@ -251,11 +251,11 @@ .4byte \param1 .endm - .macro nullsub_2A + .macro nop_2A .byte 0x2a .endm - .macro nullsub_2B + .macro nop_2B .byte 0x2b .endm @@ -287,11 +287,11 @@ .4byte \param1 .endm - .macro nullsub_32 + .macro nop_32 .byte 0x32 .endm - .macro nullsub_33 + .macro nop_33 .byte 0x33 .endm @@ -467,27 +467,27 @@ .byte \battler .endm - .macro nullsub_52 + .macro nop_52 .byte 0x52 .endm - .macro nullsub_53 + .macro nop_53 .byte 0x53 .endm - .macro nullsub_54 + .macro nop_54 .byte 0x54 .endm - .macro nullsub_55 + .macro nop_55 .byte 0x55 .endm - .macro nullsub_56 + .macro nop_56 .byte 0x56 .endm - .macro nullsub_57 + .macro nop_57 .byte 0x57 .endm diff --git a/asm/macros/battle_frontier/apprentice.inc b/asm/macros/battle_frontier/apprentice.inc index 83871880b6..9eb5f9ea8a 100644 --- a/asm/macros/battle_frontier/apprentice.inc +++ b/asm/macros/battle_frontier/apprentice.inc @@ -94,11 +94,19 @@ @ Buffer some APPRENTICE_BUFF_* string to the given stringvar (0 for STR_VAR_1, 1 for STR_VAR_2, 2 for STR_VAR_3) .macro apprentice_buff stringvar:req, tobuff:req setvar VAR_0x8004, APPRENTICE_FUNC_BUFFER_STRING - setvar VAR_0x8005, \stringvar - .if \tobuff >= VARS_START - copyvar VAR_0x8006, \tobuff + .if \stringvar == STR_VAR_1 + setvar VAR_0x8005, 0 + .elseif \stringvar == STR_VAR_2 + setvar VAR_0x8005, 1 + .elseif \stringvar == STR_VAR_3 + setvar VAR_0x8005, 2 .else - setvar VAR_0x8006, \tobuff + setvar VAR_0x8005, \stringvar + .endif + .if \tobuff >= VARS_START + copyvar VAR_0x8006, \tobuff + .else + setvar VAR_0x8006, \tobuff .endif special CallApprenticeFunction .endm diff --git a/asm/macros/battle_frontier/frontier_util.inc b/asm/macros/battle_frontier/frontier_util.inc index def5b4d1c7..c875fcdde2 100644 --- a/asm/macros/battle_frontier/frontier_util.inc +++ b/asm/macros/battle_frontier/frontier_util.inc @@ -136,7 +136,13 @@ @ Buffer the name of gTrainerBattleOpponent_A in STR_VAR_1 (0) or STR_VAR_2 (1) .macro frontier_gettrainername stringVar:req setvar VAR_0x8004, FRONTIER_UTIL_FUNC_BUFFER_TRAINER_NAME - setvar VAR_0x8005, \stringVar + .if \stringVar == STR_VAR_1 + setvar VAR_0x8005, 0 + .elseif \stringVar == STR_VAR_2 + setvar VAR_0x8005, 1 + .else + setvar VAR_0x8005, \stringVar + .endif special CallFrontierUtilFunc .endm diff --git a/asm/macros/event.inc b/asm/macros/event.inc index 27a4397258..661e675c97 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -44,7 +44,7 @@ .4byte \destination .endm - @ Jumps to the standard function at index function. + @ Jumps to the script in gStdScripts at index function. .macro gotostd function:req .byte 0x08 .byte \function @@ -56,82 +56,82 @@ STD_OBTAIN_DECORATION = 7 STD_REGISTER_MATCH_CALL = 8 - @ Calls the standard function at index function. + @ Calls the script in gStdScripts at index function. .macro callstd function:req .byte 0x09 .byte \function .endm - @ If the result of the last comparison matches condition (see Comparison operators), jumps to the standard function at index function. + @ If the result of the last comparison matches condition (see Comparison operators), jumps to the script in gStdScripts at index function. .macro gotostd_if condition:req, function:req .byte 0x0a .byte \condition .byte \function .endm - @ If the result of the last comparison matches condition (see Comparison operators), calls the standard function at index function. + @ If the result of the last comparison matches condition (see Comparison operators), calls the script in gStdScripts at index function. .macro callstd_if condition:req, function:req .byte 0x0b .byte \condition .byte \function .endm - @ Executes a script stored in a default RAM location. + @ Equivalent to the 'return' command for a RAM script. .macro returnram .byte 0x0c .endm - @ Terminates script execution and "resets the script RAM". - .macro killscript + @ Equivalent to the 'end' command for a RAM script. + .macro endram .byte 0x0d .endm - @ Sets some status related to Mystery Event. + @ Sets the Mystery Event script status (MEVENT_STATUS_*). .macro setmysteryeventstatus value:req .byte 0x0e .byte \value .endm - @ Sets the specified script bank to value. - .macro loadword destination:req, value:req + @ Sets the value at the specified script data index to a fixed 4-byte value. + .macro loadword destIndex:req, value:req .byte 0x0f - .byte \destination + .byte \destIndex .4byte \value .endm - @ Sets the specified script bank to value. - .macro loadbyte destination:req, value:req + @ Sets the value at the specified script data index to a fixed byte value. + .macro loadbyte destIndex:req, value:req .byte 0x10 - .byte \destination + .byte \destIndex .byte \value .endm - @ Sets the byte at offset to value. - .macro writebytetoaddr value:req, offset:req + @ Sets the value at the specified pointer. + .macro setptr value:req, ptr:req .byte 0x11 .byte \value - .4byte \offset + .4byte \ptr .endm - @ Copies the byte value at source into the specified script bank. - .macro loadbytefromaddr destination:req, source:req + @ Sets the value at the specified script data index to the value at pointer 'source'. + .macro loadbytefromptr destIndex:req, source:req .byte 0x12 - .byte \destination + .byte \destIndex .4byte \source .endm - @ Not sure. Judging from XSE's description I think it takes the least-significant byte in bank source and writes it to destination. - .macro setptrbyte source:req, destination:req + @ Sets the value at pointer 'destination' to the contents of the script data at 'srcIndex'. + .macro setptrbyte srcIndex:req, destination:req .byte 0x13 - .byte \source + .byte \srcIndex .4byte \destination .endm - @ Copies the contents of bank source into bank destination. - .macro copylocal destination:req, source:req + @ Copies the contents of the script data from one index to another. + .macro copylocal destIndex:req, srcIndex:req .byte 0x14 - .byte \destination - .byte \source + .byte \destIndex + .byte \srcIndex .endm @ Copies the byte at source to destination, replacing whatever byte was previously there. @@ -176,56 +176,64 @@ .2byte \source .endm - @ Compares the values of script banks a and b, after forcing the values to bytes. - .macro compare_local_to_local byte1:req, byte2:req + @ Compares the values of the script data at indexes 'local1' and 'local2'. + @ The result is stored in comparisonResult to be acted on by goto_if / call_if + .macro compare_local_to_local local1:req, local2:req .byte 0x1b - .byte \byte1 - .byte \byte2 + .byte \local1 + .byte \local2 .endm - @ Compares the least-significant byte of the value of script bank a to a fixed byte value (b). - .macro compare_local_to_value a:req, b:req + @ Compares the value of the script data at index 'local' to a fixed value. + @ The result is stored in comparisonResult to be acted on by goto_if / call_if + .macro compare_local_to_value local:req, value:req .byte 0x1c - .byte \a - .byte \b + .byte \local + .byte \value .endm - @ Compares the least-significant byte of the value of script bank a to the byte located at offset b. - .macro compare_local_to_addr a:req, b:req + @ Compares the value of the script data at index 'local' to the value at 'ptr' + @ The result is stored in comparisonResult to be acted on by goto_if / call_if + .macro compare_local_to_ptr local:req, ptr:req .byte 0x1d - .byte \a - .4byte \b + .byte \local + .4byte \ptr .endm - @ Compares the byte located at offset a to the least-significant byte of the value of script bank b. - .macro compare_addr_to_local a:req, b:req + @ Compares the value at 'ptr' to the value of the script data at index 'local'. + @ The result is stored in comparisonResult to be acted on by goto_if / call_if + .macro compare_ptr_to_local ptr:req, local:req .byte 0x1e - .4byte \a - .byte \b + .4byte \ptr + .byte \local .endm - @ Compares the byte located at offset a to a fixed byte value (b). - .macro compare_addr_to_value a:req, b:req + @ Compares the value at 'ptr' to a fixed value. + @ The result is stored in comparisonResult to be acted on by goto_if / call_if + .macro compare_ptr_to_value ptr:req, value:req .byte 0x1f - .4byte \a - .byte \b + .4byte \ptr + .byte \value .endm - @ Compares the byte located at offset a to the byte located at offset b. - .macro compare_addr_to_addr a:req, b:req + @ Compares the value at 'ptr1' to the value at 'ptr2'. + @ The result is stored in comparisonResult to be acted on by goto_if / call_if + .macro compare_ptr_to_ptr ptr1:req, ptr2:req .byte 0x20 - .4byte \a - .4byte \b + .4byte \ptr1 + .4byte \ptr2 .endm - @ Compares the value of `var` to a fixed word value (b). + @ Compares the value of 'var' to a fixed value. + @ The result is stored in comparisonResult to be acted on by goto_if / call_if .macro compare_var_to_value var:req, value:req .byte 0x21 .2byte \var .2byte \value .endm - @ Compares the value of `var1` to the value of `var2`. + @ Compares the value of 'var1' to the value of 'var2'. + @ The result is stored in comparisonResult to be acted on by goto_if / call_if .macro compare_var_to_var var1:req, var2:req .byte 0x22 .2byte \var1 @@ -233,7 +241,7 @@ .endm @ Generic compare macro which attempts to deduce argument types based on their values - @ Any values between 0x4000 to 0x40FF and 0x8000 to 0x8015 are considered event variable identifiers + @ Any values between VARS_START to VARS_END and SPECIAL_VARS_START to SPECIAL_VARS_END are considered event variable identifiers .macro compare var:req, arg:req .if ((\arg >= VARS_START && \arg <= VARS_END) || (\arg >= SPECIAL_VARS_START && \arg <= SPECIAL_VARS_END)) compare_var_to_var \var, \arg @@ -242,41 +250,34 @@ .endif .endm - @ Calls the native C function stored at `func`. + @ Calls the native C function stored at func. .macro callnative func:req .byte 0x23 .4byte \func .endm - @ Replaces the script with the function stored at `func`. Execution returns to the bytecode script when func returns TRUE. + @ Replaces the script with the function stored at func. Execution returns to the bytecode script when func returns TRUE. .macro gotonative func:req .byte 0x24 .4byte \func .endm - @ Calls a special function; that is, a function designed for use by scripts and listed in a table of pointers. + @ Calls a function listed in the table in data/specials.inc. .macro special function:req .byte 0x25 .2byte SPECIAL_\function .endm - @ Calls a special function. That function's output (if any) will be written to the variable you specify. + @ Calls a function listed in the table in data/specials.inc. + @ That function's output (if any) will be written to the variable specified by 'output'. .macro specialvar output:req, function:req .byte 0x26 .2byte \output .2byte SPECIAL_\function .endm - @ temporary solution - .macro specialvar_ output:req, functionId:req - .byte 0x26 - .2byte \output - .2byte \functionId - .endm - - @ Blocks script execution until a command or ASM code manually unblocks it. Generally used with specific - @ commands and specials. If this command runs, and a subsequent command or piece of ASM does not unblock - @ state, the script will remain blocked indefinitely (essentially a hang). + @ Blocks script execution until a command or C code manually unblocks it. Generally used with specific + @ commands and specials. Calling EnableBothScriptContexts for instance will allow execution to continue. .macro waitstate .byte 0x27 .endm @@ -287,46 +288,46 @@ .2byte \frames .endm - @ Sets a to 1. - .macro setflag a:req + @ Sets flag to TRUE. + .macro setflag flag:req .byte 0x29 - .2byte \a + .2byte \flag .endm - @ Sets a to 0. - .macro clearflag a:req + @ Sets flag to FALSE. + .macro clearflag flag:req .byte 0x2a - .2byte \a + .2byte \flag .endm - @ Compares a to 1. - .macro checkflag a:req + @ Compares flag to TRUE and stores the result in comparisonResult to be used by goto_if, etc + @ See additional _if_unset and _if_set macros + .macro checkflag flag:req .byte 0x2b - .2byte \a + .2byte \flag .endm - @ Initializes the RTC`s local time offset to the given hour and minute. In FireRed, this command is a nop. + @ Initializes the RTC`s local time offset to the given hour and minute. .macro initclock hour:req, minute:req .byte 0x2c .2byte \hour .2byte \minute .endm - @ Runs time based events. In FireRed, this command is a nop. + @ Updates local time using the RTC and runs time based events. .macro dotimebasedevents .byte 0x2d .endm - @ Sets the values of variables 0x8000, 0x8001, and 0x8002 to the current hour, minute, and second. In FRLG, - @ this command sets those variables to zero. + @ Sets the values of variables VAR_0x8000, VAR_0x8001, and VAR_0x8002 to the current hour, minute, and second. .macro gettime .byte 0x2e .endm - @ Plays the specified (sound_number) sound. Only one sound may play at a time, with newer ones interrupting older ones. - .macro playse sound_number:req + @ Plays the specified sound. Only one sound may play at a time, with newer ones interrupting older ones. + .macro playse song:req .byte 0x2f - .2byte \sound_number + .2byte \song .endm @ Blocks script execution until the currently-playing sound (triggered by playse) finishes playing. @@ -335,9 +336,9 @@ .endm @ Plays the fanfare specified by the song number. If the specified song is not a fanfare it will instead play the first song in sFanfares. - .macro playfanfare songNumber:req + .macro playfanfare song:req .byte 0x31 - .2byte \songNumber + .2byte \song .endm @ Blocks script execution until all currently-playing fanfares finish. @@ -345,18 +346,19 @@ .byte 0x32 .endm - @ Plays the specified (song_number) song. If save_song is TRUE, the - @ specified (song_number) will be saved as if savebgm was called with it. - .macro playbgm song_number:req, save_song:req + @ Plays the specified song. If save_song is TRUE, the + @ specified song will be saved as if savebgm was called with it. + .macro playbgm song:req, save_song:req .byte 0x33 - .2byte \song_number + .2byte \song .byte \save_song .endm - @ Saves the specified (song_number) song to be played later. - .macro savebgm song_number:req + @ Saves the specified song to be played later. Saved music may be played when Overworld_PlaySpecialMapMusic is called. This occurs on + @ exiting most warps. + .macro savebgm song:req .byte 0x34 - .2byte \song_number + .2byte \song .endm @ Crossfades the currently-playing song into the map's default song. @@ -364,10 +366,10 @@ .byte 0x35 .endm - @ Crossfades the currently-playng song into the specified (song_number) song. - .macro fadenewbgm song_number:req + @ Crossfades the currently-playing song into the specified song. + .macro fadenewbgm song:req .byte 0x36 - .2byte \song_number + .2byte \song .endm @ Fades out the currently-playing song. @@ -382,91 +384,125 @@ .byte \speed .endm - @ Sends the player to Warp warp on Map bank.map. If the specified warp is 0xFF, - @ then the player will instead be sent to (X, Y) on the map. - .macro warp map:req, warp:req, X:req, Y:req + @ Helper macro for warp commands that formats their arguments. + @ It allows warp macros to either provide 1. a valid id for which warp location to use, + @ or 2. a pair of x/y coordinates to use. Both may be provided but at least one will be + @ ignored by SetPlayerCoordsFromWarp. If none are provided it will use dummy arguments, + @ and the warp will send the player to the center of the map. + @ Examples of valid inputs for a warp command: + @ - warp MAP, x, y + @ - warp MAP, warpId + @ - warp MAP + @ - warp MAP, warpId, x, y + .macro formatwarp map:req, a, b, c + map \map + .ifb \a @ No arguments provided, use dummy warpId and coords. + .byte WARP_ID_NONE + .2byte -1 @ x + .2byte -1 @ y + .else + .ifb \b @ Only one argument provided, treat it as a warpId and use dummy coords. + .byte \a @ warpId + .2byte -1 @ x + .2byte -1 @ y + .else + .ifb \c @ Only two arguments provided, treat them as a coord pair and use dummy warpId. + .byte WARP_ID_NONE + .2byte \a @ x + .2byte \b @ y + .else @ All three arguments provided. Output them and let the warp sort out which to use. + .byte \a @ warpId + .2byte \b @ x + .2byte \c @ y + .endif + .endif + .endif + .endm + + + @ Warps the player to the specified map. + @ Warp commands can be given either the id of which warp location to go to on the destination map + @ or a pair of x/y coordinates to go to directly on the destination map. + .macro warp map:req, a, b, c .byte 0x39 - map \map - .byte \warp - .2byte \X - .2byte \Y + formatwarp \map, \a, \b, \c .endm - @ Clone of warp that does not play a sound effect. - .macro warpsilent map:req, warp:req, X:req, Y:req + @ Warps the player to the specified map without playing a sound effect. + @ Warp commands can be given either the id of which warp location to go to on the destination map + @ or a pair of x/y coordinates to go to directly on the destination map. + .macro warpsilent map:req, a, b, c .byte 0x3a - map \map - .byte \warp - .2byte \X - .2byte \Y + formatwarp \map, \a, \b, \c .endm - @ Clone of warp that plays a door opening animation before stepping upwards into it. - .macro warpdoor map:req, warp:req, X:req, Y:req + @ Warps the player to the specified map and plays a door opening animation before stepping upwards into it. + @ Warp commands can be given either the id of which warp location to go to on the destination map + @ or a pair of x/y coordinates to go to directly on the destination map. + .macro warpdoor map:req, a, b, c .byte 0x3b - map \map - .byte \warp - .2byte \X - .2byte \Y + formatwarp \map, \a, \b, \c .endm - @ Warps the player to another map using a hole animation. + @ Warps the player to another map using a hole animation. If the specified map is MAP_UNDEFINED it will instead + @ use the map set by setholewarp. In either case the target coordinates on the destination map will be the + @ player's current position. .macro warphole map:req .byte 0x3c map \map .endm - @ Clone of warp that uses a teleport effect. It is apparently only used in R/S/E. - .macro warpteleport map:req, warp:req, X:req, Y:req + @ Warps the player to the specified map using a teleport effect. Effect is similar to warpspinenter but + @ this warp has a fade out first and doesn't maintain the original facing direction. + @ Warp commands can be given either the id of which warp location to go to on the destination map + @ or a pair of x/y coordinates to go to directly on the destination map. + .macro warpteleport map:req, a, b, c .byte 0x3d - map \map - .byte \warp - .2byte \X - .2byte \Y + formatwarp \map, \a, \b, \c .endm @ Sets the warp destination to be used later. - .macro setwarp map:req, warp:req, X:req, Y:req + @ Warp commands can be given either the id of which warp location to go to on the destination map + @ or a pair of x/y coordinates to go to directly on the destination map. + .macro setwarp map:req, a, b, c .byte 0x3e - map \map - .byte \warp - .2byte \X - .2byte \Y + formatwarp \map, \a, \b, \c .endm - @ Sets the warp destination that a warp to Warp 127 on Map 127.127 will connect to. - @ Useful when a map has warps that need to go to script-controlled locations (i.e. elevators). - .macro setdynamicwarp map:req, warp:req, X:req, Y:req + @ Sets the dynamic warp destination. Warps with a destination map of MAP_NONE will target this destination. + @ Warp commands can be given either the id of which warp location to go to on the destination map + @ or a pair of x/y coordinates to go to directly on the destination map. + .macro setdynamicwarp map:req, a, b, c .byte 0x3f - map \map - .byte \warp - .2byte \X - .2byte \Y + formatwarp \map, \a, \b, \c .endm - @ Sets the destination that diving or emerging from a dive will take the player to. - .macro setdivewarp map:req, warp:req, X:req, Y:req + @ Sets the destination that diving or emerging from a dive will take the player to. Note that this only + @ applies if the current map does not have a dive/emerge connection. If it does have a corresponding + @ map connection then that map and the player's current coordinates will be used as the destination instead. + @ Warp commands can be given either the id of which warp location to go to on the destination map + @ or a pair of x/y coordinates to go to directly on the destination map. + .macro setdivewarp map:req, a, b, c .byte 0x40 - map \map - .byte \warp - .2byte \X - .2byte \Y + formatwarp \map, \a, \b, \c .endm @ Sets the destination that falling into a hole will take the player to. - .macro setholewarp map:req, warp:req, X:req, Y:req + @ While it does accept and set the x/y coordinates and warpId, they are ultimately ignored. + @ This is only used to set the map the player should fall to. The exact location on the + @ map to fall to is determined by warphole. + @ Warp commands can be given either the id of which warp location to go to on the destination map + @ or a pair of x/y coordinates to go to directly on the destination map. + .macro setholewarp map:req, a=0, b=0, c .byte 0x41 - map \map - .byte \warp - .2byte \X - .2byte \Y + formatwarp \map, \a, \b, \c .endm - @ Retrieves the player's zero-indexed X- and Y-coordinates in the map, and stores them in the specified variables. - .macro getplayerxy X:req, Y:req + @ Retrieves the player's zero-indexed x- and y-coordinates in the map, and stores them in the specified variables. + .macro getplayerxy x:req, y:req .byte 0x42 - .2byte \X - .2byte \Y + .2byte \x + .2byte \y .endm @ Retrieves the number of Pokemon in the player's party, and stores that number in VAR_RESULT. @@ -474,176 +510,177 @@ .byte 0x43 .endm - @ Attempts to add quantity of item index to the player's Bag. If the player has enough room, the item will be added and - @ VAR_RESULT will be set to TRUE; otherwise, VAR_RESULT is set to FALSE. - .macro additem index:req, quantity=1 + @ Attempts to add quantity of the specified item to the player's Bag. If the player has enough room, the item will + @ be added and VAR_RESULT will be set to TRUE; otherwise, VAR_RESULT is set to FALSE. + .macro additem itemId:req, quantity=1 .byte 0x44 - .2byte \index + .2byte \itemId .2byte \quantity .endm - @ Removes quantity of item index from the player's Bag. - .macro removeitem index:req, quantity=1 + @ Removes quantity of the specified item from the player's Bag. If the player has fewer than 'quantity' in their bag + @ then none will be removed and VAR_RESULT will be set to FALSE. Otherwise it will be set to TRUE. + .macro removeitem itemId:req, quantity=1 .byte 0x45 - .2byte \index + .2byte \itemId .2byte \quantity .endm - @ Checks if the player has enough space in their Bag to hold quantity more of item index. Sets VAR_RESULT to + @ Checks if the player has enough space in their Bag to hold quantity more of the specified item. Sets VAR_RESULT to @ TRUE if there is room, or FALSE is there is no room. - .macro checkitemspace index:req, quantity:req + .macro checkitemspace itemId:req, quantity=1 .byte 0x46 - .2byte \index + .2byte \itemId .2byte \quantity .endm - @ Checks if the player has quantity or more of item index in their Bag. Sets VAR_RESULT to TRUE if the player has + @ Checks if the player has quantity or more of the specified item in their Bag. Sets VAR_RESULT to TRUE if the player has @ enough of the item, or FALSE if they have fewer than quantity of the item. - .macro checkitem index:req, quantity:req + .macro checkitem itemId:req, quantity=1 .byte 0x47 - .2byte \index + .2byte \itemId .2byte \quantity .endm @ Checks which Bag pocket the specified item belongs in, and writes the pocket value (POCKET_*) to VAR_RESULT. - @ This script is used to show the name of the proper Bag pocket when the player receives an item via callstd (simplified to giveitem in XSE). - .macro checkitemtype index:req + @ This is used to show the name of the proper Bag pocket when the player receives an item via callstd. + .macro checkitemtype itemId:req .byte 0x48 - .2byte \index + .2byte \itemId .endm - @ Adds a quantity amount of item index to the player's PC. Both arguments can be variables. - .macro addpcitem index:req, quantity:req + @ Adds quantity of the specified item to the player's PC. + .macro addpcitem itemId:req, quantity=1 .byte 0x49 - .2byte \index + .2byte \itemId .2byte \quantity .endm - @ Checks for quantity amount of item index in the player's PC. Both arguments can be variables. - .macro checkpcitem index:req, quantity:req + @ Checks for quantity of the specified item in the player's PC. + .macro checkpcitem itemId:req, quantity=1 .byte 0x4a - .2byte \index + .2byte \itemId .2byte \quantity .endm - @ Adds decoration to the player's PC. In FireRed, this command is a nop. (The argument is read, but not used for anything.) + @ Adds a decoration to the player's PC. .macro adddecoration decoration:req .byte 0x4b .2byte \decoration .endm - @ Removes a decoration from the player's PC. In FireRed, this command is a nop. (The argument is read, but not used for anything.) + @ Removes a decoration from the player's PC. .macro removedecoration decoration:req .byte 0x4c .2byte \decoration .endm - @ Checks for decoration in the player's PC. In FireRed, this command is a nop. (The argument is read, but not used for anything.) + @ Checks for decoration in the player's PC. .macro checkdecor decoration:req .byte 0x4d .2byte \decoration .endm - @ Checks if the player has enough space in their PC to hold decoration. Sets VAR_RESULT to TRUE if there is room, or - @ FALSE is there is no room. In FireRed, this command is a nop. (The argument is read, but not used for anything.) + @ Checks if the player has enough space in their PC to hold the decoration. + @ Sets VAR_RESULT to TRUE if there is room, or FALSE is there is no room. .macro checkdecorspace decoration:req .byte 0x4e .2byte \decoration .endm - @ Applies the movement data at movements to the specified (index) Object. Also closes any standard message boxes that are still open. - @ If no map is specified, then the current map is used. - .macro applymovement index:req, movements:req, map + @ Applies the movement data at movements to the specified (localId) object. If no map is specified, then the current map is used. + .macro applymovement localId:req, movements:req, map .ifb \map .byte 0x4f - .2byte \index + .2byte \localId .4byte \movements .else @ Really only useful if the object has followed from one map to another (e.g. Wally during the catching event). .byte 0x50 - .2byte \index + .2byte \localId .4byte \movements map \map .endif .endm - @ Blocks script execution until the movements being applied to the specified (index) Object finish. - @ If the specified Object is 0x0000, then the command will block script execution until all Objects - @ affected by applymovement finish their movements. If the specified Object is not currently being - @ manipulated with applymovement, then this command does nothing. + @ Blocks script execution until the movements being applied to the specified (localId) object finish. + @ If localId is 0, then the id of the last-moved object will be used instead. If the specified object + @ is not currently being manipulated with applymovement, then this command does nothing. @ If no map is specified, then the current map is used. - .macro waitmovement index:req, map + .macro waitmovement localId:req, map .ifb \map .byte 0x51 - .2byte \index + .2byte \localId .else .byte 0x52 - .2byte \index + .2byte \localId map \map .endif .endm - @ Attempts to hide the specified (index) Object on the specified (map_group, map_num) map, - @ by setting its visibility flag if it has a valid one. If the Object does not have a valid - @ visibility flag, this command does nothing. + @ Attempts to despawn the specified (localId) object on the specified map. + @ It also sets the object's visibility flag if it has one. @ If no map is specified, then the current map is used. - .macro removeobject index:req, map + .macro removeobject localId:req, map .ifb \map .byte 0x53 - .2byte \index + .2byte \localId .else .byte 0x54 - .2byte \index + .2byte \localId map \map .endif .endm - @ Unsets the specified (index) Object's visibility flag on the specified (map_group, map_num) map if it has a valid one. - @ If the Object does not have a valid visibility flag, this command does nothing. + @ Attempts to spawn the specified (localId) object the specified map. + @ Note that unlike removeobject this does not modify the object's flag. @ If no map is specified, then the current map is used. - .macro addobject index:req, map + .macro addobject localId:req, map .ifb \map .byte 0x55 - .2byte \index + .2byte \localId .else .byte 0x56 - .2byte \index + .2byte \localId map \map .endif .endm - @ Sets the specified (index) Object's position on the current map. - .macro setobjectxy index:req, x:req, y:req + @ Sets the specified (localId) object's position on the current map. + .macro setobjectxy localId:req, x:req, y:req .byte 0x57 - .2byte \index + .2byte \localId .2byte \x .2byte \y .endm - .macro showobjectat index:req, map:req + @ Sets the specified object's invisibility to FALSE. + .macro showobjectat localId:req, map:req .byte 0x58 - .2byte \index + .2byte \localId map \map .endm - .macro hideobjectat index:req, map:req + @ Sets the specified object's invisibility to TRUE. + .macro hideobjectat localId:req, map:req .byte 0x59 - .2byte \index + .2byte \localId map \map .endm - @ If the script was called by an Object, then that Object will turn to face toward the metatile that the player is standing on. + @ Turns the currently selected object (if there is one) to face the player. .macro faceplayer .byte 0x5a .endm - .macro turnobject index:req, direction:req + @ Turns the specified object in the specified direction. + .macro turnobject localId:req, direction:req .byte 0x5b - .2byte \index + .2byte \localId .byte \direction .endm - @ If the Trainer flag for Trainer index is not set, this command does absolutely nothing. + @ Configures the arguments for a trainer battle, then jumps to the appropriate script in scripts/trainer_battle.inc .macro trainerbattle type:req, trainer:req, local_id:req, pointer1:req, pointer2, pointer3, pointer4 .byte 0x5c .byte \type @@ -700,8 +737,8 @@ NO_MUSIC = FALSE - @ Starts a single trainer battle, takes a trainer, intro text, loss text, and an optional event script - @ when used with an event script, you can also pass in an optional flag to disable music + @ Starts a single trainer battle. Takes a trainer, intro text, loss text, and an optional event script. + @ When used with an event script, you can also pass in an optional flag to disable music .macro trainerbattle_single trainer:req, intro_text:req, lose_text:req, event_script=FALSE, music=TRUE .if \event_script == FALSE trainerbattle TRAINER_BATTLE_SINGLE, \trainer, 0, \intro_text, \lose_text @@ -712,8 +749,8 @@ .endif .endm - @ Starts a double trainer battle, takes a trainer, intro text, loss text, text for when you have too few pokemon - @ and an optional event script, when used with an event script you can pass in an optional flag to disable music + @ Starts a double trainer battle. Takes a trainer, intro text, loss text, text for when you have too few pokemon + @ and an optional event script. When used with an event script you can pass in an optional flag to disable music .macro trainerbattle_double trainer:req, intro_text:req, lose_text:req, not_enough_pkmn_text:req, event_script=FALSE, music=TRUE .if \event_script == FALSE trainerbattle TRAINER_BATTLE_DOUBLE, \trainer, 0, \intro_text, \lose_text, \not_enough_pkmn_text @@ -724,25 +761,25 @@ .endif .endm - @ Starts a rematch battle, takes a trainer, intro text and loss text + @ Starts a rematch battle. Takes a trainer, intro text and loss text .macro trainerbattle_rematch trainer:req, intro_text:req, lose_text:req trainerbattle TRAINER_BATTLE_REMATCH, \trainer, 0, \intro_text, \lose_text .endm - @ Starts a rematch double battle, takes a trainer, intro text, loss text, and text for when you have too few pokemon + @ Starts a rematch double battle. Takes a trainer, intro text, loss text, and text for when you have too few pokemon .macro trainerbattle_rematch_double trainer:req, intro_text:req, lose_text:req, not_enough_pkmn_text:req trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, \trainer, 0, \intro_text, \lose_text, \not_enough_pkmn_text .endm - @ Starts a trainer battle, skipping intro text, takes a trainer and loss text + @ Starts a trainer battle, skipping intro text. Takes a trainer and loss text .macro trainerbattle_no_intro trainer:req, lose_text:req trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, \trainer, 0, \lose_text .endm - @ Starts a trainer battle using the battle information stored in RAM (usually by trainerbattle, which actually calls this - @ command behind-the-scenes), and blocks script execution until the battle finishes. - .macro trainerbattlebegin + @ Starts a trainer battle using the battle information stored in RAM (usually by the scripts in trainer_battle.inc, which + @ are run by trainerbattle), and blocks script execution until the battle finishes. + .macro dotrainerbattle .byte 0x5d .endm @@ -756,42 +793,45 @@ .byte 0x5f .endm - @ Compares Flag (trainer + 0x500) to 1. (If the flag is set, then the trainer has been defeated by the player.) + @ Checks if the trainer has been defeated by the player (by comparing the flag 'trainer + TRAINER_FLAGS_START' to TRUE). .macro checktrainerflag trainer:req .byte 0x60 .2byte \trainer .endm - @ Sets Flag (trainer + 0x500). + @ Sets the trainer flag (trainer + TRAINER_FLAGS_START) to TRUE (defeated). .macro settrainerflag trainer:req .byte 0x61 .2byte \trainer .endm - @ Clears Flag (trainer + 0x500). + @ Sets the trainer flag (trainer + TRAINER_FLAGS_START) to FALSE (not defeated). .macro cleartrainerflag trainer:req .byte 0x62 .2byte \trainer .endm - .macro setobjectxyperm index:req, x:req, y:req + @ Sets the coordinates of an object's template, so that if the sprite goes off screen + @ it'll still be there when it comes back on screen. + .macro setobjectxyperm localId:req, x:req, y:req .byte 0x63 - .2byte \index + .2byte \localId .2byte \x .2byte \y .endm - @ Copies a live object event's xy position to its template, so that if the sprite goes off screen, + @ Copies a live object event's xy position to its template, so that if the sprite goes off screen @ it'll still be there when it comes back on screen. - .macro copyobjectxytoperm index:req + .macro copyobjectxytoperm localId:req .byte 0x64 - .2byte \index + .2byte \localId .endm - .macro setobjectmovementtype word:req, byte:req + @ Sets the movement type (MOVEMENT_TYPE_*) for an object's template. + .macro setobjectmovementtype localId:req, movementType:req .byte 0x65 - .2byte \word - .byte \byte + .2byte \localId + .byte \movementType .endm @ If a standard message box (or its text) is being drawn on-screen, this command blocks script execution until the @@ -801,8 +841,8 @@ .endm @ Starts displaying a standard message box containing the specified text. If text is a pointer, then the string at - @ that offset will be loaded and used. If text is script bank 0, then the value of script bank 0 will be treated as - @ a pointer to the text. (You can use loadpointer to place a string pointer in a script bank.) + @ that offset will be loaded and used. If text is NULL, then the value of script data 0 will be treated as + @ a pointer to the text. The 'loadword 0' in msgbox sets this value, for instance. .macro message text:req .byte 0x67 .4byte \text @@ -823,17 +863,17 @@ .byte 0x6a .endm - @ Resumes normal movement for all Objects on-screen, and closes any standard message boxes that are still open. + @ Resumes normal movement for all objects on-screen, and closes any standard message boxes that are still open. .macro releaseall .byte 0x6b .endm - @ If the script was called by an Object, then that Object's movement will resume. This command also closes any standard message boxes that are still open. + @ Resumes normal movement for the selected object (if there is one) and the player. Also closes any standard message boxes that are still open. .macro release .byte 0x6c .endm - @ Blocks script execution until the player presses any key. + @ Blocks script execution until the player presses the A or B button. .macro waitbuttonpress .byte 0x6d .endm @@ -859,7 +899,7 @@ @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. @ Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with multichoiceId. - @ The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. + @ The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0. @ If ignoreBPress is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. .macro multichoicedefault x:req, y:req, multichoiceId:req, default:req, ignoreBPress:req .byte 0x70 @@ -906,7 +946,7 @@ .byte \ignoreBPress .endm - @ Displays a box containing the front sprite for the specified (species) Pokemon species. + @ Displays a box containing the front sprite for the specified Pokemon species. .macro showmonpic species:req, x:req, y:req .byte 0x75 .2byte \species @@ -914,7 +954,7 @@ .byte \y .endm - @ Hides all boxes displayed with showmonpic. + @ Hides the box displayed by showmonpic. .macro hidemonpic .byte 0x76 .endm @@ -925,9 +965,9 @@ .byte \winnerId .endm - @ Displays the string at pointer as braille text in a standard message box. The string must be formatted to use braille - @ characters and needs to provide six extra starting characters that are skipped (in RS, these characters determined the - @ box's size and position, but in Emerald these are calculated automatically). + @ Displays the given string as braille text in a standard message box. The string should use the .braille directive + @ to convert text to braille, and be preceded by brailleformat. The brailleformat data is skipped over (in RS, these + @ bytes determined the box's size and position, but in Emerald these are calculated automatically). .macro braillemessage text:req .byte 0x78 .4byte \text @@ -944,209 +984,237 @@ .byte \textTop .endm - @ Gives the player one of the specified (species) Pokemon at level level holding item. The trailing 0s are unused parameters - .macro givemon species:req, level:req, item:req + @ Gives the player a Pokémon of the specified species and level, holding the specified item. The trailing 0s are unused parameters. + @ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome. + .macro givemon species:req, level:req, item=ITEM_NONE .byte 0x79 .2byte \species .byte \level .2byte \item - .4byte 0x0 - .4byte 0x0 + .4byte 0 + .4byte 0 .byte 0 .endm + @ Gives the player an Egg of the specified species. + @ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome. .macro giveegg species:req .byte 0x7a .2byte \species .endm - .macro setmonmove index:req, slot:req, move:req + @ Replaces the move at 'slot' of the Pokémon in the player's party at 'partyIndex' with the specified move. + @ If a value greater than PARTY_SIZE is given for partyIndex it will use the last Pokémon in the party instead. + @ Note that this means in vanilla a value equal to PARTY_SIZE for partyIndex will go out of bounds. + .macro setmonmove partyIndex:req, slot:req, move:req .byte 0x7b - .byte \index + .byte \partyIndex .byte \slot .2byte \move .endm - @ Checks if at least one Pokemon in the player's party knows the specified (index) attack. If so, VAR_RESULT is set to the + @ Checks if at least one Pokemon in the player's party knows the specified move. If so, VAR_RESULT is set to the @ (zero-indexed) slot number of the first Pokemon that knows the move. If not, VAR_RESULT is set to PARTY_SIZE. @ VAR_0x8004 is also set to this Pokemon's species. - .macro checkpartymove index:req + .macro checkpartymove move:req .byte 0x7c - .2byte \index + .2byte \move .endm - @ Writes the name of the Pokemon at index species to the specified buffer. - .macro bufferspeciesname out:req, species:req + @ Converts STR_VAR_1, STR_VAR_2, or STR_VAR_3 to its corresponding index into sScriptStringVars (0, 1, or 2). + @ If given anything else it will output it directly. + @ Note: Because the STR_VAR_# arguments given to this macro are not part of a processed string they are not + @ replaced with their charmap values, they are just passed as the literal characters "STR_VAR_#". + .macro stringvar id:req + .if \id == STR_VAR_1 + .byte 0 + .elseif \id == STR_VAR_2 + .byte 1 + .elseif \id == STR_VAR_3 + .byte 2 + .else + .byte \id + .endif + .endm + + @ Writes the name of the given Pokemon species to the specified buffer. + .macro bufferspeciesname stringVarId:req, species:req .byte 0x7d - .byte \out + stringvar \stringVarId .2byte \species .endm @ Writes the name of the species of the first Pokemon in the player's party to the specified buffer. - .macro bufferleadmonspeciesname out:req + .macro bufferleadmonspeciesname stringVarId:req .byte 0x7e - .byte \out + stringvar \stringVarId .endm - @ Writes the nickname of the Pokemon in slot slot (zero-indexed) of the player's party to the specified buffer. + @ Writes the nickname of the Pokemon in 'slot' (zero-indexed) of the player's party to the specified buffer. @ If an empty or invalid slot is specified, ten spaces ("") are written to the buffer. - .macro bufferpartymonnick out:req, slot:req + .macro bufferpartymonnick stringVarId:req, slot:req .byte 0x7f - .byte \out + stringvar \stringVarId .2byte \slot .endm - @ Writes the name of the item at index item to the specified buffer. If the specified index is larger than - @ the number of items in the game (0x176), the name of item 0 ("????????") is buffered instead. - .macro bufferitemname out:req, item:req + @ Writes the name of the specified item to the specified buffer. If itemId is >= ITEMS_COUNT, + @ then the name of ITEM_NONE ("????????") is buffered instead. + .macro bufferitemname stringVarId:req, item:req .byte 0x80 - .byte \out + stringvar \stringVarId .2byte \item .endm - @ Writes the name of the decoration at index decoration to the specified buffer. In FireRed, this command is a nop. - .macro bufferdecorationname out:req, decoration:req + @ Writes the name of the specified decoration to the specified buffer. + .macro bufferdecorationname stringVarId:req, decoration:req .byte 0x81 - .byte \out + stringvar \stringVarId .2byte \decoration .endm - @ Writes the name of the move at index move to the specified buffer. - .macro buffermovename out:req, move:req + @ Writes the name of the specified move to the specified buffer. + .macro buffermovename stringVarId:req, move:req .byte 0x82 - .byte \out + stringvar \stringVarId .2byte \move .endm @ Converts the value of input to a decimal string, and writes that string to the specified buffer. - .macro buffernumberstring out:req, input:req + .macro buffernumberstring stringVarId:req, input:req .byte 0x83 - .byte \out + stringvar \stringVarId .2byte \input .endm - @ Writes the standard string identified by index to the specified buffer. This command has no protections in place at all, - @ so specifying an invalid standard string (e.x. 0x2B) can and usually will cause crashes or garbage characters. - .macro bufferstdstring out:req, index:req + @ Writes the given standard string (STDSTRING_*) to the specified buffer. Invalid std string ids are not handled. + .macro bufferstdstring stringVarId:req, index:req .byte 0x84 - .byte \out + stringvar \stringVarId .2byte \index .endm - @ Copies the string at offset to the specified buffer. - .macro bufferstring out:req, offset:req + @ Copies the string at the given pointer to the specified buffer. + .macro bufferstring stringVarId:req, text:req .byte 0x85 - .byte \out - .4byte \offset + stringvar \stringVarId + .4byte \text .endm @ Opens the Pokemart system, offering the specified products for sale. + @ Products should be a list of .2byte item values preceded by an .align 2 .macro pokemart products:req .byte 0x86 .4byte \products .endm @ Opens the Pokemart system and treats the list of items as decorations. + @ Products should be a list of .2byte decoration values preceded by an .align 2 .macro pokemartdecoration products:req .byte 0x87 .4byte \products .endm - @ Apparent clone of pokemartdecoration. + @ Identical to pokemartdecoration, but with slight changes to the clerk dialogue. See uses of MART_TYPE_DECOR2. .macro pokemartdecoration2 products:req .byte 0x88 .4byte \products .endm - @ Starts up the slot machine minigame. - .macro playslotmachine word:req + @ Starts up the slot machine minigame. id is a SLOT_MACHINE_* value that influences probabilities of certain reel outcomes. + .macro playslotmachine id:req .byte 0x89 - .2byte \word + .2byte \id .endm - @ Sets a berry tree's specific berry and growth stage. In FireRed, this command is a nop. - .macro setberrytree tree_id:req, berry:req, growth_stage:req + @ Sets a berry tree's berry and growth stage. treeId is any BERRY_TREE_* constant (an index into berryTrees in SaveBlock1), + @ berry is any ITEM_TO_BERRY(ITEM_BERRY_NAME) value, and growthStage is any BERRY_STAGE_* constant. + .macro setberrytree treeId:req, berry:req, growthStage:req .byte 0x8a - .byte \tree_id + .byte \treeId .byte \berry - .byte \growth_stage + .byte \growthStage .endm - @ This allows you to choose a Pokemon to use in a contest. In FireRed, this command sets the byte at 0x03000EA8 to 0x01. + @ Opens the party menu to select a Pokemon for a contest. .macro choosecontestmon .byte 0x8b .endm - @ Starts a contest. In FireRed, this command is a nop. + @ Starts the appeals round of a contest. .macro startcontest .byte 0x8c .endm - @ Shows the results of a contest. In FireRed, this command is a nop. + @ Shows the results screen of a contest. .macro showcontestresults .byte 0x8d .endm - @ Starts a contest over a link connection. In FireRed, this command is a nop. + @ Starts communication to initialize a link contest. .macro contestlinktransfer .byte 0x8e .endm - @ Stores a random integer between 0 and limit in VAR_RESULT. + @ Stores a random integer between 0 and limit (exclusive of limit) in VAR_RESULT. .macro random limit:req .byte 0x8f .2byte \limit .endm - @ If check is 0x00, this command adds value to the player's money. - .macro addmoney value:req, check:req + @ Adds value to the player's money. If adding 'value' money would exceed MAX_MONEY, the player's money is set to MAX_MONEY. + @ If 'disable' is set to anything but 0 then this command does nothing. + .macro addmoney value:req, disable=0 .byte 0x90 .4byte \value - .byte \check + .byte \disable .endm - @ If check is 0x00, this command subtracts value from the player's money. - .macro removemoney value:req, check:req + @ Subtracts value from the player's money. If the player has less than 'value' money, their money is set to 0. + @ If 'disable' is set to anything but 0 then this command does nothing. + .macro removemoney value:req, disable=0 .byte 0x91 .4byte \value - .byte \check + .byte \disable .endm - @ If check is 0x00, this command will check if the player has money >= value; VAR_RESULT is set to TRUE if the player - @ has enough money, or FALSE if they do not. - .macro checkmoney value:req, check:req + @ Checks if the player has money >= value. VAR_RESULT is set to TRUE if the player has enough money, or FALSE if they do not. + @ If 'disable' is set to anything but 0 then this command does nothing. + .macro checkmoney value:req, disable=0 .byte 0x92 .4byte \value - .byte \check + .byte \disable .endm - @ Spawns a secondary box showing how much money the player has. - .macro showmoneybox x:req, y:req, check:req + @ Creates a window showing how much money the player has. + @ If 'disable' is set to anything but 0 then this command does nothing. + .macro showmoneybox x:req, y:req, disable=0 .byte 0x93 .byte \x .byte \y - .byte \check + .byte \disable .endm - @ Hides the secondary box spawned by showmoney. Consumption of the x and y arguments was dummied out. + @ Destroys the window created by showmoneybox. Consumption of the x and y arguments was dummied out. .macro hidemoneybox .byte 0x94 .byte 0 @ \x .byte 0 @ \y .endm - @ Updates the secondary box spawned by showmoney. Consumes but does not use arguments. - .macro updatemoneybox x:req, y:req + @ Updates the window created by showmoneybox. Consumption of the x and y arguments was dummied out. + @ If 'disable' is set to anything but 0 then this command does nothing. + .macro updatemoneybox disable=0 .byte 0x95 - .byte \x - .byte \y - .byte 0 @ 1 = don't perform this command. Always 0 in vanilla. Why this is a thing is beyond me. + .byte 0 @ \x + .byte 0 @ \y + .byte \disable .endm - @ Gets the price reduction for the index given. In FireRed, this command is a nop. - .macro getpricereduction index:req + @ Gets whether the effects of the specified PokeNews program are active. newsKind is a POKENEWS_* constant. + .macro getpokenewsactive newsKind:req .byte 0x96 - .2byte \index + .2byte \newsKind .endm @ Fades the screen to and from black and white. Modes are FADE_(TO/FROM)_(WHITE/BLACK) @@ -1162,65 +1230,71 @@ .byte \speed .endm - .macro setflashradius word:req + @ Sets the flash level. A level of 0 is fully bright, a level of 1 is the largest flash radius, a level + @ of 7 is the smallest flash radius, a level of 8 is fully black. + .macro setflashlevel level:req .byte 0x99 - .2byte \word + .2byte \level .endm - .macro animateflash byte:req + @ Animates the flash radius from its current size to the size it would be at the specified level. + @ Note that this does not actually change the current flash level. It's typically used just before a setflashlevel. + .macro animateflash level:req .byte 0x9a - .byte \byte + .byte \level .endm - .macro messageautoscroll pointer:req + @ Automatically scrolls through the message without player input and at a fixed speed. + .macro messageautoscroll text:req .byte 0x9b - .4byte \pointer + .4byte \text .endm - @ Executes the specified field move animation. + @ Executes the specified field effect animation (FLDEFF_*). .macro dofieldeffect animation:req .byte 0x9c .2byte \animation .endm - @ Sets up the field effect argument argument with the value value. - .macro setfieldeffectargument argument:req, param:req + @ Sets the field effect argument at index 'argNum' to 'value.' + .macro setfieldeffectargument argNum:req, value:req .byte 0x9d - .byte \argument - .2byte \param + .byte \argNum + .2byte \value .endm - @ Blocks script execution until all playing field move animations complete. + @ Blocks script execution until all playing field effect animations complete. .macro waitfieldeffect animation:req .byte 0x9e .2byte \animation .endm - @ Sets which healing place the player will return to if all of the Pokemon in their party faint. + @ Sets which healing location (HEAL_LOCATION_*) the player will return to if all of the Pokemon in their party faint. .macro setrespawn heallocation:req .byte 0x9f .2byte \heallocation .endm - @ Checks the player's gender. If male, then MALE (0) is stored in VAR_RESULT. If female, then FEMALE (1) is stored in VAR_RESULT. + @ Checks the player's gender. Stores the result (MALE (0) or FEMALE (1)) in VAR_RESULT. .macro checkplayergender .byte 0xa0 .endm - @ Plays the specified (species) Pokemon's cry. You can use waitcry to block script execution until the sound finishes. + @ Plays the cry of the given species. Mode is any CRY_MODE_* constant. + @ You can use waitmoncry to block script execution until the cry finishes. .macro playmoncry species:req, mode:req .byte 0xa1 .2byte \species .2byte \mode .endm - @ Changes the metatile at (x, y) on the current map. - .macro setmetatile x:req, y:req, metatile_number:req, has_collision:req + @ Set the metatile at (x, y) on the current map to the given metatile and impassability. + .macro setmetatile x:req, y:req, metatileId:req, impassable:req .byte 0xa2 .2byte \x .2byte \y - .2byte \metatile_number - .2byte \has_collision + .2byte \metatileId + .2byte \impassable .endm @ Queues a weather change to the default weather for the map. @@ -1239,54 +1313,63 @@ .byte 0xa5 .endm - @ This command manages cases in which maps have tiles that change state when stepped on (specifically, cracked/breakable floors). - .macro setstepcallback subroutine:req + @ Enables the overworld task specified by stepCbId (STEP_CB_*). Only 1 can be active at a time. See src/field_tasks.c for more. + .macro setstepcallback stepCbId:req .byte 0xa6 - .byte \subroutine + .byte \stepCbId .endm + @ Sets the current map layout to the one specified by index (LAYOUT_*). + @ This should be done before the layout is loaded, typically in the ON_TRANSITION map script. .macro setmaplayoutindex index:req .byte 0xa7 .2byte \index .endm - .macro setobjectpriority index:req, map:req, priority:req + @ Sets the specified object's sprite's subpriority, and sets fixedPriority to TRUE. + @ Only used to hide the player and Briney behind the boat. + .macro setobjectsubpriority localId:req, map:req, subpriority:req .byte 0xa8 - .2byte \index + .2byte \localId map \map - .byte \priority + .byte \subpriority .endm - .macro resetobjectpriority index:req, map:req + @ Sets the specified object's fixedPriority to FALSE. Does not change the subpriority field. + .macro resetobjectsubpriority localId:req, map:req .byte 0xa9 - .2byte \index + .2byte \localId map \map .endm - .macro createvobject sprite:req, byte2:req, x:req, y:req, elevation, direction + @ Creates a sprite with object graphics. Used when creating large groups of static NPCs that exceed + @ the object event limit (e.g. Contest / Battle Dome audiences and Union Room group members). + @ The specified id can be used to refer to the sprite again later with turnvobject. + .macro createvobject graphicsId:req, id:req, x:req, y:req, elevation=3, direction=DIR_SOUTH .byte 0xaa - .byte \sprite - .byte \byte2 + .byte \graphicsId + .byte \id .2byte \x .2byte \y .byte \elevation .byte \direction .endm - .macro turnvobject index:req, direction:req + @ Turns a sprite created with createvobject. + .macro turnvobject id:req, direction:req .byte 0xab - .byte \index + .byte \id .byte \direction .endm - @ Opens the door metatile at (X, Y) with an animation. + @ Opens the door metatile at (x, y) with an animation. .macro opendoor x:req, y:req .byte 0xac .2byte \x .2byte \y .endm - @ Closes the door metatile at (X, Y) with an animation. + @ Closes the door metatile at (x, y) with an animation. .macro closedoor x:req, y:req .byte 0xad .2byte \x @@ -1298,21 +1381,21 @@ .byte 0xae .endm - @ Sets the door tile at (x, y) to be open without an animation. + @ Sets the door metatile at (x, y) to be open without an animation. .macro setdooropen x:req, y:req .byte 0xaf .2byte \x .2byte \y .endm - @ Sets the door tile at (x, y) to be closed without an animation. + @ Sets the door metatile at (x, y) to be closed without an animation. .macro setdoorclosed x:req, y:req .byte 0xb0 .2byte \x .2byte \y .endm - @ In Emerald, this command consumes its parameters and does nothing. In FireRed, this command is a nop. + @ Consumes its parameters and does nothing. It is implemented but unused in Ruby/Sapphire. .macro addelevmenuitem a:req, b:req, c:req, d:req .byte 0xb1 .byte \a @@ -1321,29 +1404,35 @@ .2byte \d .endm - @ In FireRed and Emerald, this command is a nop. + @ Does nothing. It is implemented but unused in Ruby/Sapphire. .macro showelevmenu .byte 0xb2 .endm + @ Gets the number of coins the player has and stores it in the variable 'out'. .macro checkcoins out:req .byte 0xb3 .2byte \out .endm + @ Gives 'count' coins to the player, up to a total of MAX_COINS. + @ If the player already has MAX_COINS then VAR_RESULT is set to TRUE, otherwise it is set to FALSE. .macro addcoins count:req .byte 0xb4 .2byte \count .endm + @ Takes 'count' coins from the player. + @ If the player has fewer than 'count' coins then no coins are taken and VAR_RESULT is set to TRUE. + @ Otherwise VAR_RESULT is set to FALSE. .macro removecoins count:req .byte 0xb5 .2byte \count .endm - @ Prepares to start a wild battle against a species at Level level holding item. Running this command will not affect + @ Prepares to start a wild battle against a 'species' at 'level' holding 'item'. Running this command will not affect @ normal wild battles. You start the prepared battle with dowildbattle. - .macro setwildbattle species:req, level:req, item:req + .macro setwildbattle species:req, level:req, item=ITEM_NONE .byte 0xb6 .2byte \species .byte \level @@ -1355,83 +1444,90 @@ .byte 0xb7 .endm + @ Sets a relative address to be used by the other vcommands as part of a Mystery Gift script. .macro setvaddress pointer:req .byte 0xb8 .4byte \pointer .endm - .macro vgoto pointer:req + @ Equivalent to goto using the relative address set by setvaddress. + .macro vgoto destination:req .byte 0xb9 - .4byte \pointer + .4byte \destination .endm - .macro vcall pointer:req + @ Equivalent to call using the relative address set by setvaddress. + .macro vcall destination:req .byte 0xba - .4byte \pointer + .4byte \destination .endm - .macro vgoto_if byte:req, pointer:req + @ Equivalent to goto_if using the relative address set by setvaddress. + .macro vgoto_if condition:req, destination:req .byte 0xbb - .byte \byte - .4byte \pointer + .byte \condition + .4byte \destination .endm - .macro vcall_if byte:req, pointer:req + @ Equivalent to call_if using the relative address set by setvaddress. + .macro vcall_if condition:req, destination:req .byte 0xbc - .byte \byte - .4byte \pointer + .byte \condition + .4byte \destination .endm - .macro vmessage pointer:req + @ Equivalent to message using the relative address set by setvaddress. + .macro vmessage text:req .byte 0xbd - .4byte \pointer + .4byte \text .endm - .macro vloadptr pointer:req + @ Expands the given text at the pointer (- the relative address set by setvaddress) into gStringVar4 + .macro vbuffermessage text:req .byte 0xbe - .4byte \pointer + .4byte \text .endm - .macro vbufferstring byte:req, pointer:req + @ Equivalent to bufferstring using the relative address set by setvaddress. + .macro vbufferstring stringVarIndex:req, text:req .byte 0xbf - .byte \byte - .4byte \pointer + stringvar \stringVarIndex + .4byte \text .endm - @ Spawns a secondary box showing how many Coins the player has. + @ Create a window showing how many Coins the player has. .macro showcoinsbox x:req, y:req .byte 0xc0 .byte \x .byte \y .endm - @ Hides the secondary box spawned by showcoins. It consumes its arguments but doesn't use them. + @ Destroys the window created by showcoins. It consumes its arguments but doesn't use them. .macro hidecoinsbox x:req, y:req .byte 0xc1 .byte \x .byte \y .endm - @ Updates the secondary box spawned by showcoins. It consumes its arguments but doesn't use them. + @ Updates the window created by showcoins. It consumes its arguments but doesn't use them. .macro updatecoinsbox x:req, y:req .byte 0xc2 .byte \x .byte \y .endm - @ Increases the value of the specified game stat by 1. The stat's value will not be allowed to exceed 0x00FFFFFF. + @ Increases the value of the specified game stat by 1. The maximum value of a stat is 0xFFFFFF. See include/constants/game_stat.h .macro incrementgamestat stat:req .byte 0xc3 .byte \stat .endm @ Sets the destination that using an Escape Rope or Dig will take the player to. - .macro setescapewarp map:req, warp:req, x:req, y:req + @ Warp commands can be given either the id of which warp location to go to on the destination map + @ or a pair of x/y coordinates to go to directly on the destination map. + .macro setescapewarp map:req, a, b, c .byte 0xc4 - map \map - .byte \warp - .2byte \x - .2byte \y + formatwarp \map, \a, \b, \c .endm @ Blocks script execution until cry finishes. @@ -1439,49 +1535,40 @@ .byte 0xc5 .endm - @ Writes the name of the specified (box) PC box to the specified buffer. - .macro bufferboxname out:req, box:req + @ Writes the name of the specified PC box to the specified buffer. + .macro bufferboxname stringVarId:req, box:req .byte 0xc6 - .byte \out + stringvar \stringVarId .2byte \box .endm - @ Sets the color of the text in standard message boxes. 0x00 produces blue (male) text, 0x01 produces red (female) text, - @ 0xFF resets the color to the default for the current OW's gender, and all other values produce black text. @ Used only in FireRed/LeafGreen, does nothing in Emerald. .macro textcolor color:req .byte 0xc7 .byte \color .endm - @ The exact purpose of this command is unknown, but it is related to the blue help-text box that appears on the bottom - @ of the screen when the Main Menu is opened. @ Used only in FireRed/LeafGreen, does nothing in Emerald. - .macro loadhelp pointer:req + .macro loadhelp text:req .byte 0xc8 - .4byte \pointer + .4byte \text .endm - @ The exact purpose of this command is unknown, but it is related to the blue help-text box that appears on the bottom of - @ the screen when the Main Menu is opened. @ Used only in FireRed/LeafGreen, does nothing in Emerald. .macro unloadhelp .byte 0xc9 .endm - @ After using this command, all standard message boxes will use the signpost frame. @ Used only in FireRed/LeafGreen, does nothing in Emerald. .macro signmsg .byte 0xca .endm - @ Ends the effects of signmsg, returning message box frames to normal. @ Used only in FireRed/LeafGreen, does nothing in Emerald. .macro normalmsg .byte 0xcb .endm - @ Compares the value of a hidden variable to a dword. @ Used only in FireRed/LeafGreen, does nothing in Emerald. .macro comparehiddenvar a:req, value:req .byte 0xcc @@ -1489,39 +1576,38 @@ .4byte \value .endm - @ Sets the Pokemon in the specified slot of the player party's eventLegal bit. + @ Sets the eventLegal bit for the Pokemon in the specified slot of the player's party. .macro setmoneventlegal slot:req .byte 0xcd .2byte \slot .endm - @ Checks if the Pokemon in the specified slot of the player's party has its eventLegal bit set. If it isn't set, + @ Checks if the eventLegal bit is set for the Pokemon in the specified slot of the player's party. If it isn't set, @ VAR_RESULT is TRUE. If the bit is set (or if the specified slot is empty or invalid), VAR_RESULT is FALSE. .macro checkmoneventlegal slot:req .byte 0xce .2byte \slot .endm - @ Depending on factors I haven't managed to understand yet, this command may cause script execution to jump to the - @ offset specified by the pointer at 0x020375C0. - .macro gotoram + @ Jumps to the ram script saved from a Wonder Card. If there is no valid saved Wonder Card or if the + @ ram script is invalid then this does nothing. + .macro trywondercardscript .byte 0xcf .endm - @ Sets worldmapflag to 1. This allows the player to Fly to the corresponding map, if that map has a flightspot. @ Used only in FireRed/LeafGreen, does nothing in Emerald. .macro setworldmapflag worldmapflag:req .byte 0xd0 .2byte \worldmapflag .endm - @ Clone of warpteleport? It is apparently only used in FR/LG, and only with specials.[source] - .macro warpteleport2 map:req, warp:req, x:req, y:req + @ Warps the player to the specified map using a teleport effect. Effect is similar to warpteleport, but + @ this warp has no fade out and maintains the original facing direction. + @ Warp commands can be given either the id of which warp location to go to on the destination map + @ or a pair of x/y coordinates to go to directly on the destination map. + .macro warpspinenter map:req, a, b, c .byte 0xd1 - map \map - .byte \warp - .2byte \x - .2byte \y + formatwarp \map, \a, \b, \c .endm @ Changes the location where the player caught the Pokemon in the specified slot of their party. @@ -1531,99 +1617,114 @@ .byte \location .endm - @ For the rotating tile puzzles in Mossdeep Gym/Trick House Room 7. Moves the objects on the colored puzzle - @ specified by puzzleNumber one rotation + @ For the rotating tile puzzles in Mossdeep Gym / Trick House Room 7. Moves the objects one rotation + @ on the colored puzzle specified by puzzleNumber. .macro moverotatingtileobjects puzzleNumber:req .byte 0xd3 .2byte \puzzleNumber .endm - @ For the rotating tile puzzles in Mossdeep Gym/Trick House Room 7. Updates the facing direction of all objects on the puzzle tiles + @ For the rotating tile puzzles in Mossdeep Gym / Trick House Room 7. Updates the facing direction of all objects on the puzzle tiles .macro turnrotatingtileobjects .byte 0xd4 .endm - @ For the rotating tile puzzles in Mossdeep Gym/Trick House Room 7. Allocates memory for the puzzle objects. + @ For the rotating tile puzzles in Mossdeep Gym / Trick House Room 7. Allocates memory for the puzzle objects. @ isTrickHouse is needed to determine which of the two maps the puzzle is on, in order to know where in the tileset - @ the puzzle tiles start. In FireRed, this command is a nop. + @ the puzzle tiles start (TRUE for Trick House Room, FALSE for Mossdeep Gym). .macro initrotatingtilepuzzle isTrickHouse:req .byte 0xd5 .2byte \isTrickHouse .endm - @ For the rotating tile puzzles in Mossdeep Gym/Trick House Room 7. Frees the memory allocated for the puzzle objects. + @ For the rotating tile puzzles in Mossdeep Gym / Trick House Room 7. Frees the memory allocated for the puzzle objects. .macro freerotatingtilepuzzle .byte 0xd6 .endm - .macro warpmossdeepgym map:req, warpId:req, x:req, y:req + @ Warp used by the teleport tiles in the Mossdeep Gym. Plays SE_WARP_IN and does a simple fade transition. + @ Also skips reloading object events by setting SKIP_OBJECT_EVENT_LOAD. + @ Warp commands can be given either the id of which warp location to go to on the destination map + @ or a pair of x/y coordinates to go to directly on the destination map. + .macro warpmossdeepgym map:req, a, b, c .byte 0xd7 - map \map - .byte \warpId - .2byte \x - .2byte \y + formatwarp \map, \a, \b, \c .endm + @ Sets the selected object to the id of the currently approaching trainer. .macro selectapproachingtrainer .byte 0xd8 .endm + @ Freezes all objects immediately except the player and the approaching trainers. + @ The player and trainers are frozen once their movement is finished. .macro lockfortrainer .byte 0xd9 .endm + @ Destroys the window created by braillemessage. .macro closebraillemessage .byte 0xda .endm - .macro messageinstant pointer:req + @ Prints and draws the message all at once rather than character by character. + @ Does not wait for player input to continue. + .macro messageinstant text:req .byte 0xdb - .4byte \pointer + .4byte \text .endm + @ Equivalent to fadescreen but copies gPlttBufferUnfaded to gPaletteDecompressionBuffer on the fade out + @ and the reverse on the fade in, in effect saving gPlttBufferUnfaded to restore it. .macro fadescreenswapbuffers mode:req .byte 0xdc .byte \mode .endm - .macro buffertrainerclassname out:req, class:req + @ Buffers the specified trainer's class name to the given string var. + @ If the trainer id is >= TRAINERS_COUNT it will be treated as TRAINER_NONE. + .macro buffertrainerclassname stringVarId:req, trainerId:req .byte 0xdd - .byte \out - .2byte \class + stringvar \stringVarId + .2byte \trainerId .endm - .macro buffertrainername out:req, trainer:req + @ Buffers the specified trainer's name to the given string var. + @ If the trainer id is >= TRAINERS_COUNT it will be treated as TRAINER_NONE. + .macro buffertrainername stringVarId:req, trainerId:req .byte 0xde - .byte \out - .2byte \trainer + stringvar \stringVarId + .2byte \trainerId .endm - .macro pokenavcall pointer:req + @ Starts a Pokenav call with the given text. + .macro pokenavcall text:req .byte 0xdf - .4byte \pointer + .4byte \text .endm - .macro warpsootopolislegend map:req, byte:req, word1:req, word2:req + @ Warp with a fade to white. Used during the Sootopolis legendary fight. + @ Warp commands can be given either the id of which warp location to go to on the destination map + @ or a pair of x/y coordinates to go to directly on the destination map. + .macro warpwhitefade map:req, a, b, c .byte 0xe0 - map \map - .byte \byte - .2byte \word1 - .2byte \word2 + formatwarp \map, \a, \b, \c .endm - .macro buffercontesttypestring out:req, word:req + @ Buffers the name of the contest category to the buffer. + @ For example a category of CONTEST_CATEGORY_COOL will buffer the string "COOLNESS CONTEST". + .macro buffercontestname stringVarId:req, category:req .byte 0xe1 - .byte \out - .2byte \word + stringvar \stringVarId + .2byte \category .endm - @ Writes the name of the specified (item) item to the specified buffer. If the specified item is a Berry (0x85 - 0xAE) or - @ Poke Ball (0x4) and if the quantity is 2 or more, the buffered string will be pluralized ("IES" or "S" appended). - @ If the specified item is the Enigma Berry, I have no idea what this command does (but testing showed no pluralization). - @ If the specified index is larger than the number of items in the game (0x176), the name of item 0 ("????????") is buffered instead. - .macro bufferitemnameplural out:req, item:req, quantity:req + @ Writes the name of the specified item to the specified buffer. If 'item' is a Berry or ITEM_POKE_BALL + @ and if the quantity is 2 or more, the buffered string will be pluralized ("IES" or "S" appended). + @ If the specified item is >= ITEMS_COUNT then the name of ITEM_NONE ("????????") is buffered instead. + .macro bufferitemnameplural stringVarId:req, item:req, quantity:req .byte 0xe2 - .byte \out + stringvar \stringVarId .2byte \item .2byte \quantity .endm @@ -1641,28 +1742,48 @@ goto_if TRUE, \dest .endm - .macro goto_if_lt dest:req @ LESS THAN - goto_if 0, \dest + @ Allows 'compare' followed by a conditional goto/call to be combined into a single statement. + @ The following are examples of the two acceptable formats this facilitates: + @ compare VAR_RESULT, TRUE + @ goto_if_eq MyScript + @ - or - + @ goto_if_eq VAR_RESULT, TRUE, MyScript + @ + @ The first two arguments to this macro are the base command, e.g. 'goto_if 1' for goto_if_eq. + @ The remaining arguments 'a, b, c' depend on the format: + @ For a single statement, 'a' and 'b' are the values to compare and 'c' is the destination pointer. + @ For a statement preceded by a compare, 'a' is the destination pointer and 'b/c' are not provided. + .macro trycompare jump:req, condition:req, a:req, b, c + .ifnb \c + compare \a, \b + \jump \condition, \c + .else + \jump \condition, \a + .endif .endm - .macro goto_if_eq dest:req @ EQUAL - goto_if 1, \dest + .macro goto_if_lt a:req, b, c @ LESS THAN + trycompare goto_if, 0, \a, \b, \c .endm - .macro goto_if_gt dest:req @ GREATER THAN - goto_if 2, \dest + .macro goto_if_eq a:req, b, c @ EQUAL + trycompare goto_if, 1, \a, \b, \c .endm - .macro goto_if_le dest:req @ LESS THAN OR EQUAL - goto_if 3, \dest + .macro goto_if_gt a:req, b, c @ GREATER THAN + trycompare goto_if, 2, \a, \b, \c .endm - .macro goto_if_ge dest:req @ GREATER THAN OR EQUAL - goto_if 4, \dest + .macro goto_if_le a:req, b, c @ LESS THAN OR EQUAL + trycompare goto_if, 3, \a, \b, \c .endm - .macro goto_if_ne dest:req @ NOT EQUAL - goto_if 5, \dest + .macro goto_if_ge a:req, b, c @ GREATER THAN OR EQUAL + trycompare goto_if, 4, \a, \b, \c + .endm + + .macro goto_if_ne a:req, b, c @ NOT EQUAL + trycompare goto_if, 5, \a, \b, \c .endm .macro call_if_unset flag:req, dest:req @@ -1675,36 +1796,36 @@ call_if TRUE, \dest .endm - .macro call_if_lt dest:req @ LESS THAN - call_if 0, \dest + .macro call_if_lt a:req, b, c @ LESS THAN + trycompare call_if, 0, \a, \b, \c .endm - .macro call_if_eq dest:req @ EQUAL - call_if 1, \dest + .macro call_if_eq a:req, b, c @ EQUAL + trycompare call_if, 1, \a, \b, \c .endm - .macro call_if_gt dest:req @ GREATER THAN - call_if 2, \dest + .macro call_if_gt a:req, b, c @ GREATER THAN + trycompare call_if, 2, \a, \b, \c .endm - .macro call_if_le dest:req @ LESS THAN OR EQUAL - call_if 3, \dest + .macro call_if_le a:req, b, c @ LESS THAN OR EQUAL + trycompare call_if, 3, \a, \b, \c .endm - .macro call_if_ge dest:req @ GREATER THAN OR EQUAL - call_if 4, \dest + .macro call_if_ge a:req, b, c @ GREATER THAN OR EQUAL + trycompare call_if, 4, \a, \b, \c .endm - .macro call_if_ne dest:req @ NOT EQUAL - call_if 5, \dest + .macro call_if_ne a:req, b, c @ NOT EQUAL + trycompare call_if, 5, \a, \b, \c .endm - .macro vgoto_if_eq dest:req - vgoto_if TRUE, \dest + .macro vgoto_if_eq a:req, b, c + trycompare vgoto_if, TRUE, \a, \b, \c .endm - .macro vgoto_if_ne dest:req - vgoto_if FALSE, \dest + .macro vgoto_if_ne a:req, b, c + trycompare vgoto_if, FALSE, \a, \b, \c .endm .macro vgoto_if_unset flag:req, dest:req @@ -1753,32 +1874,42 @@ MSGBOX_YESNO = 5 MSGBOX_AUTOCLOSE = 6 MSGBOX_GETPOINTS = 9 + MSGBOX_POKENAV = 10 YES = 1 NO = 0 + @ Buffers the given text and calls the relevant standard message script (see gStdScripts). .macro msgbox text:req, type=MSGBOX_DEFAULT loadword 0, \text callstd \type .endm + @ Gives 'amount' of the specified 'item' to the player and prints a message with fanfare. + @ If the player doesn't have space for all the items then as many are added as possible, the + @ message indicates there is no room, and VAR_RESULT is set to FALSE. + @ Otherwise VAR_RESULT is set to TRUE, and the message indicates they have received the item(s). .macro giveitem item:req, amount=1 setorcopyvar VAR_0x8000, \item setorcopyvar VAR_0x8001, \amount callstd STD_OBTAIN_ITEM .endm + @ For picking up items in the overworld. Similar to giveitem, but with different language and + @ sets the flag of the last-talked to object (the item the player picked up). .macro finditem item:req, amount=1 setorcopyvar VAR_0x8000, \item setorcopyvar VAR_0x8001, \amount callstd STD_FIND_ITEM .endm + @ Equivalent to giveitem but for a single decoration. .macro givedecoration decoration:req setorcopyvar VAR_0x8000, \decoration callstd STD_OBTAIN_DECORATION .endm + @ Registers the specified trainer in Match Call and plays a fanfare with a notification message. .macro register_matchcall trainer:req setvar VAR_0x8004, \trainer special SetMatchCallRegisteredFlag @@ -1786,6 +1917,7 @@ callstd STD_REGISTER_MATCH_CALL .endm + @ Does a sparkle field effect (e.g. when the Trick Master is hiding) at the given coordinates. .macro dofieldeffectsparkle x:req, y:req, priority:req setfieldeffectargument 0, \x setfieldeffectargument 1, \y @@ -1793,8 +1925,17 @@ dofieldeffect FLDEFF_SPARKLE .endm + @ Prints a braille message, waits for an A or B press, then closes the message. .macro braillemsgbox text:req braillemessage \text waitbuttonpress closebraillemessage .endm + + @ Creates an "event legal" Pokémon for an encounter + .macro seteventmon species:req, level:req, item=ITEM_NONE + setvar VAR_0x8004, \species + setvar VAR_0x8005, \level + setvar VAR_0x8006, \item + special CreateEventLegalEnemyMon + .endm diff --git a/asm/macros/field_effect_script.inc b/asm/macros/field_effect_script.inc index 597b89acbb..38f7e31750 100644 --- a/asm/macros/field_effect_script.inc +++ b/asm/macros/field_effect_script.inc @@ -1,19 +1,21 @@ - .macro field_eff_loadtiles address +@ The first .byte argument of each macro below is an index into gFieldEffectScriptFuncs + + .macro field_eff_loadtiles address:req .byte 0 .4byte \address .endm - .macro field_eff_loadfadedpal address + .macro field_eff_loadfadedpal address:req .byte 1 .4byte \address .endm - .macro field_eff_loadpal address + .macro field_eff_loadpal address:req .byte 2 .4byte \address .endm - .macro field_eff_callnative address + .macro field_eff_callnative address:req .byte 3 .4byte \address .endm @@ -22,20 +24,20 @@ .byte 4 .endm - .macro field_eff_loadgfx_callnative tiles_address, palette_address, function_address + .macro field_eff_loadgfx_callnative tiles_address:req, palette_address:req, function_address:req .byte 5 .4byte \tiles_address .4byte \palette_address .4byte \function_address .endm - .macro field_eff_loadtiles_callnative tiles_address, function_address + .macro field_eff_loadtiles_callnative tiles_address:req, function_address:req .byte 6 .4byte \tiles_address .4byte \function_address .endm - .macro field_eff_loadfadedpal_callnative palette_address, function_address + .macro field_eff_loadfadedpal_callnative palette_address:req, function_address:req .byte 7 .4byte \palette_address .4byte \function_address diff --git a/asm/macros/function.inc b/asm/macros/function.inc index b109595dfd..0f4e6720c9 100644 --- a/asm/macros/function.inc +++ b/asm/macros/function.inc @@ -1,15 +1,15 @@ - .macro arm_func_start name + .macro arm_func_start name:req .align 2, 0 .global \name .arm .type \name, %function .endm - .macro arm_func_end name + .macro arm_func_end name:req .size \name, .-\name .endm - .macro thumb_func_start name + .macro thumb_func_start name:req .align 2, 0 .global \name .thumb @@ -17,13 +17,13 @@ .type \name, %function .endm - .macro non_word_aligned_thumb_func_start name + .macro non_word_aligned_thumb_func_start name:req .global \name .thumb .thumb_func .type \name, %function .endm - .macro thumb_func_end name + .macro thumb_func_end name:req .size \name, .-\name .endm diff --git a/asm/macros/m4a.inc b/asm/macros/m4a.inc index 6c5abc09b5..b22da3d634 100644 --- a/asm/macros/m4a.inc +++ b/asm/macros/m4a.inc @@ -1,13 +1,13 @@ - .macro song label, music_player, unknown + .macro song label:req, music_player:req, unknown:req .4byte \label .2byte \music_player .2byte \unknown .endm - .macro music_player info_struct, track_struct, unknown_1, unknown_2 + .macro music_player info_struct:req, track_struct:req, num_tracks:req, unknown:req .4byte \info_struct .4byte \track_struct - .byte \unknown_1 - .space 1 - .2byte \unknown_2 + .byte \num_tracks + .space 1 @ Padding + .2byte \unknown .endm diff --git a/asm/macros/map.inc b/asm/macros/map.inc index 74ed069179..662257e416 100644 --- a/asm/macros/map.inc +++ b/asm/macros/map.inc @@ -1,83 +1,110 @@ - .macro map map_id +@ Most of the macros in this file are for arranging map event data, and are output by mapjson using data from each map's JSON file. + + @ Takes a MAP constant and outputs the map group and map number as separate bytes + .macro map map_id:req .byte \map_id >> 8 @ map group .byte \map_id & 0xFF @ map num .endm - .macro map_script type, address + @ Defines a map script. 'type' is any MAP_SCRIPT_* constant (see include/constants/map_scripts.h) + .macro map_script type:req, script:req .byte \type - .4byte \address + .4byte \script .endm - .macro map_script_2 word1, word2, address - .2byte \word1 - .2byte \word2 - .4byte \address + @ Defines an entry in a map script table (for either ON_WARP_INTO_MAP_TABLE or ON_FRAME_TABLE) + .macro map_script_2 var:req, compare:req, script:req + .2byte \var + .2byte \compare + .4byte \script .endm - .macro object_event index:req, gfx:req, replacement:req, x:req, y:req, elevation:req, movement_type:req, x_radius:req, y_radius:req, trainer_type:req, sight_radius_tree_etc:req, script:req, event_flag:req - .byte \index, \gfx, \replacement, 0 - .2byte \x - .2byte \y - .byte \elevation, \movement_type, ((\y_radius << 4) | \x_radius), 0 - .2byte \trainer_type, \sight_radius_tree_etc + @ Defines an object event template for map data. Mirrors the struct layout of ObjectEventTemplate in include/global.fieldmap.h + .macro object_event index:req, gfx:req, inConnection:req, x:req, y:req, elevation:req, movement_type:req, x_radius:req, y_radius:req, trainer_type:req, sight_radius_tree_etc:req, script:req, event_flag:req + .byte \index + .byte \gfx + .byte \inConnection + .space 1 @ Padding + .2byte \x, \y + .byte \elevation + .byte \movement_type + .byte ((\y_radius << 4) | \x_radius) + .space 1 @ Padding + .2byte \trainer_type + .2byte \sight_radius_tree_etc .4byte \script .2byte \event_flag - .2byte 0 + .space 2 @ Padding inc _num_npcs .endm - .macro warp_def x, y, byte, warp, map_id + @ Defines a warp event for map data. Mirrors the struct layout of WarpEvent in include/global.fieldmap.h + .macro warp_def x:req, y:req, elevation:req, warpId:req, map_id:req .2byte \x, \y - .byte \byte, \warp + .byte \elevation + .byte \warpId .byte \map_id & 0xFF @ map num .byte \map_id >> 8 @ map group inc _num_warps .endm - .macro coord_event x, y, elevation, trigger, index, script + @ Defines a coord event for map data. Mirrors the struct layout of CoordEvent in include/global.fieldmap.h + .macro coord_event x:req, y:req, elevation:req, trigger:req, index:req, script:req .2byte \x, \y - .byte \elevation, 0 - .2byte \trigger, \index, 0 + .byte \elevation + .space 1 @ Padding + .2byte \trigger + .2byte \index + .space 2 @ Padding .4byte \script inc _num_traps .endm - .macro coord_weather_event x, y, elevation, weather - .2byte \x, \y - .byte \elevation, 0 - .2byte \weather - .2byte 0, 0 - .4byte 0 - inc _num_traps + @ Defines a weather coord event for map data. Any coord event is treated as a weather coord event if its script is NULL + .macro coord_weather_event x:req, y:req, elevation:req, weather:req + coord_event \x, \y, \elevation, \weather, 0, NULL .endm - .macro bg_event x, y, elevation, kind, arg6, arg7 + @ Defines a generic background event for map data. Mirrors the struct layout of BgEvent in include/global.fieldmap.h + @ 'kind' is any BG_EVENT_* constant (see include/constants/event_bg.h). + @ 'arg6' and 'arg7' are used differently depending on the bg event type. See macros below + .macro bg_event x:req, y:req, elevation:req, kind:req, arg6:req, arg7 .2byte \x, \y - .byte \elevation, \kind - .2byte 0 + .byte \elevation + .byte \kind + .space 2 @ Padding .if \kind != BG_EVENT_HIDDEN_ITEM - .4byte \arg6 + .4byte \arg6 .else - .2byte \arg6 - .2byte \arg7 + .2byte \arg6 + .2byte \arg7 .endif inc _num_signs .endm - .macro bg_hidden_item_event x, y, height, item, flag - bg_event \x, \y, \height, BG_EVENT_HIDDEN_ITEM, \item, ((\flag) - FLAG_HIDDEN_ITEMS_START) + @ Defines a background sign event for map data. 'facing_dir' is any of the BG_EVENT_PLAYER_FACING_* constants (see include/constants/event_bg.h) + .macro bg_sign_event x:req, y:req, elevation:req, facing_dir:req, script:req + bg_event \x, \y, \elevation, \facing_dir, \script .endm - .macro bg_secret_base_event x, y, height, secret_base_id - bg_event \x, \y, \height, BG_EVENT_SECRET_BASE, \secret_base_id + @ Defines a background hidden item event for map data + .macro bg_hidden_item_event x:req, y:req, elevation:req, item:req, flag:req + bg_event \x, \y, \elevation, BG_EVENT_HIDDEN_ITEM, \item, ((\flag) - FLAG_HIDDEN_ITEMS_START) .endm - .macro map_events npcs, warps, traps, signs + @ Defines a background secret base event for map data + .macro bg_secret_base_event x:req, y:req, elevation:req, secret_base_id:req + bg_event \x, \y, \elevation, BG_EVENT_SECRET_BASE, \secret_base_id + .endm + + @ Defines the table of event data for a map. Mirrors the struct layout of MapEvents in include/global.fieldmap.h + .macro map_events npcs:req, warps:req, traps:req, signs:req .byte _num_npcs, _num_warps, _num_traps, _num_signs .4byte \npcs, \warps, \traps, \signs reset_map_events .endm + @ Resets the event counters used to track how many events a map has. Run when the events table is created by map_events .macro reset_map_events .set _num_npcs, 0 .set _num_warps, 0 @@ -85,23 +112,29 @@ .set _num_signs, 0 .endm + @ Initialize the event counters for the first map reset_map_events - .equiv connection_down, 1 - .equiv connection_up, 2 - .equiv connection_left, 3 - .equiv connection_right, 4 - .equiv connection_dive, 5 - .equiv connection_emerge, 6 + @ Directions for connecting maps + @ The map.json files will only have e.g. "down" as direction data, and this will be appended to "connection_" by the connection macro + .equiv connection_down, CONNECTION_SOUTH + .equiv connection_up, CONNECTION_NORTH + .equiv connection_left, CONNECTION_WEST + .equiv connection_right, CONNECTION_EAST + .equiv connection_dive, CONNECTION_DIVE + .equiv connection_emerge, CONNECTION_EMERGE - .macro connection direction, offset, map - .4byte connection_\direction + @ Defines a map connection. Mirrors the struct layout of MapConnection in include/global.fieldmap.h + .macro connection direction:req, offset:req, map:req + .byte connection_\direction + .space 3 @ Padding .4byte \offset map \map - .space 2 + .space 2 @ Padding .endm + @ Defines the flags for a map header. Mirrors the layout of the bitfield in struct MapHeader in include/global.fieldmap.h .macro map_header_flags allow_cycling:req, allow_escaping:req, allow_running:req, show_map_name:req .byte ((\show_map_name & 1) << 3) | ((\allow_running & 1) << 2) | ((\allow_escaping & 1) << 1) | \allow_cycling .endm diff --git a/asm/macros/pokemon_data.inc b/asm/macros/pokemon_data.inc deleted file mode 100644 index ce8ef98ac3..0000000000 --- a/asm/macros/pokemon_data.inc +++ /dev/null @@ -1,56 +0,0 @@ - .macro pokedex_entry height, width, text_pointer, pokemon_scale, pokemon_offset, trainer_scale, trainer_offset - .2byte \height @ in decimeters - .2byte \width @ in hectograms - .4byte \text_pointer - .2byte 0 @ unused - .2byte \pokemon_scale - .2byte \pokemon_offset - .2byte \trainer_scale - .2byte \trainer_offset - .2byte 0 @ padding - .endm - - .macro base_stats hp, attack, defense, speed, sp_attack, sp_defense - .byte \hp - .byte \attack - .byte \defense - .byte \speed - .byte \sp_attack - .byte \sp_defense - .endm - - .macro ev_yield hp, attack, defense, speed, sp_attack, sp_defense - .2byte (\sp_defense << 10) | (\sp_attack << 8) | (\speed << 6) | (\defense << 4) | (\attack << 2) | \hp - .endm - - .macro level_up_move level, move - .2byte (\level << 9) | \move - .endm - - .macro evo_entry method, parameter, target_species - .2byte \method - .2byte \parameter - .2byte \target_species - .2byte 0 @ padding - .endm - - .macro empty_evo_entries count - .fill 8 * \count, 1, 0 - .endm - - .macro egg_moves_begin species - .2byte 20000 + \species - .endm - -@ If the min level equals the max level, only one level argument is needed. - .macro wild_mon species, min_level, max_level - .byte \min_level - - .ifb \max_level - .byte \min_level - .else - .byte \max_level - .endif - - .2byte \species - .endm diff --git a/asm/macros/window.inc b/asm/macros/window.inc deleted file mode 100644 index a91782bbf8..0000000000 --- a/asm/macros/window.inc +++ /dev/null @@ -1,35 +0,0 @@ - .macro window_template bg_id, x, y, width, height, palette, vram_tile_offset - .byte \bg_id - .byte \x - .byte \y - .byte \width - .byte \height - .byte \palette - .2byte \vram_tile_offset - .endm - - .macro null_window_template - window_template 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 - .endm - - .macro glyph_width_func font_id, func - .4byte \font_id - .4byte \func - .endm - - .macro keypad_icon tile_offset, width, height - .2byte \tile_offset - .byte \width - .byte \height - .endm - - .macro font_info func, max_glyph_width, glyph_height, glyph_spacing, line_spacing, text_color, shadow_color, bg_color - .4byte \func - .byte \max_glyph_width - .byte \glyph_height - .byte \glyph_spacing - .byte \line_spacing - .byte \text_color << 4 @ low nybble seems unused - .byte (\shadow_color << 4) | \bg_color - .2byte 0 @ padding - .endm diff --git a/berry_fix/Makefile b/berry_fix/Makefile deleted file mode 100644 index 464e5f9e9c..0000000000 --- a/berry_fix/Makefile +++ /dev/null @@ -1,203 +0,0 @@ -TOOLCHAIN := $(DEVKITARM) -COMPARE ?= 0 - -# don't use dkP's base_tools anymore -# because the redefinition of $(CC) conflicts -# with when we want to use $(CC) to preprocess files -# thus, manually create the variables for the bin -# files, or use arm-none-eabi binaries on the system -# if dkP is not installed on this system - -ifneq (,$(TOOLCHAIN)) -ifneq ($(wildcard $(TOOLCHAIN)/bin),) -export PATH := $(TOOLCHAIN)/bin:$(PATH) -endif -endif - -PREFIX := arm-none-eabi- -OBJCOPY := $(PREFIX)objcopy -AS := $(PREFIX)as -LD := $(PREFIX)ld - -# note: the makefile must be set up so MODERNCC is never called -# if MODERN=0 -MODERNCC := $(PREFIX)gcc - -ifeq ($(OS),Windows_NT) -EXE := .exe -else -EXE := -endif - -# use arm-none-eabi-cpp for macOS -# as macOS's default compiler is clang -# and clang's preprocessor will warn on \u -# when preprocessing asm files, expecting a unicode literal -# we can't unconditionally use arm-none-eabi-cpp -# as installations which install binutils-arm-none-eabi -# don't come with it -ifneq ($(MODERN),1) - ifeq ($(shell uname -s),Darwin) - CPP := $(PREFIX)cpp - else - CPP := $(CC) -E - endif -else - CPP := $(PREFIX)cpp -endif - -GAME_CODE := AGBJ -MAKER_CODE := 01 -REVISION := 0 - -SHELL := /bin/bash -o pipefail - -CPPFLAGS := -I ../tools/agbcc/include -I ../tools/agbcc -iquote include -nostdinc -undef - -ROM := berry_fix.gba -OBJ_DIR := build -CC1 := ../tools/agbcc/bin/agbcc$(EXE) -override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm - - -ELF = $(ROM:.gba=.elf) -MAP = $(ROM:.gba=.map) - -C_SUBDIR = src -ASM_SUBDIR = asm -DATA_ASM_SUBDIR = data - -C_BUILDDIR = $(OBJ_DIR)/$(C_SUBDIR) -ASM_BUILDDIR = $(OBJ_DIR)/$(ASM_SUBDIR) -DATA_ASM_BUILDDIR = $(OBJ_DIR)/$(DATA_ASM_SUBDIR) - -ASFLAGS := -mcpu=arm7tdmi - -LDFLAGS = -Map ../$(MAP) - -SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c -GFX := ../tools/gbagfx/gbagfx$(EXE) -AIF := ../tools/aif2pcm/aif2pcm$(EXE) -MID := ../tools/mid2agb/mid2agb$(EXE) -SCANINC := ../tools/scaninc/scaninc$(EXE) -PREPROC := ../tools/preproc/preproc$(EXE) -RAMSCRGEN := ../tools/ramscrgen/ramscrgen$(EXE) -FIX := ../tools/gbafix/gbafix$(EXE) - -# Clear the default suffixes -.SUFFIXES: -# Don't delete intermediate files -.SECONDARY: -# Delete files that weren't built properly -.DELETE_ON_ERROR: - -# Secondary expansion is required for dependency variables in object rules. -.SECONDEXPANSION: - -.PHONY: all rom clean compare tidy payload - -C_SRCS := $(wildcard $(C_SUBDIR)/*.c $(C_SUBDIR)/*/*.c $(C_SUBDIR)/*/*/*.c) -C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS)) - -ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s) -ASM_OBJS := $(patsubst $(ASM_SUBDIR)/%.s,$(ASM_BUILDDIR)/%.o,$(ASM_SRCS)) - -DATA_ASM_SRCS := $(wildcard $(DATA_ASM_SUBDIR)/*.s) -DATA_ASM_OBJS := $(patsubst $(DATA_ASM_SUBDIR)/%.s,$(DATA_ASM_BUILDDIR)/%.o,$(DATA_ASM_SRCS)) - -SONG_SRCS := $(wildcard $(SONG_SUBDIR)/*.s) -SONG_OBJS := $(patsubst $(SONG_SUBDIR)/%.s,$(SONG_BUILDDIR)/%.o,$(SONG_SRCS)) - -MID_SRCS := $(wildcard $(MID_SUBDIR)/*.mid) -MID_OBJS := $(patsubst $(MID_SUBDIR)/%.mid,$(MID_BUILDDIR)/%.o,$(MID_SRCS)) - -OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS) $(MID_OBJS) -# OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS)) - -SUBDIRS := $(sort $(dir $(OBJS))) - -$(shell mkdir -p $(SUBDIRS)) - -all: payload rom - @: - -rom: $(ROM) -ifeq ($(COMPARE),1) - @$(SHA1) rom.sha1 -endif - -# For contributors to make sure a change didn't affect the contents of the ROM. -compare: ; @$(MAKE) COMPARE=1 - -clean: tidy - rm -f sound/direct_sound_samples/*.bin - rm -f $(SONG_OBJS) $(MID_OBJS) $(MID_SUBDIR)/*.s - find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} + - make -C payload clean - -tidy: - rm -f $(ROM) $(ELF) $(MAP) - rm -r build/* - make -C payload tidy - -%.s: ; -%.png: ; -%.pal: ; -%.aif: ; - -%.1bpp: %.png ; $(GFX) $< $@ -%.4bpp: %.png ; $(GFX) $< $@ -%.8bpp: %.png ; $(GFX) $< $@ -%.gbapal: %.pal ; $(GFX) $< $@ -%.gbapal: %.png ; $(GFX) $< $@ -%.lz: % ; $(GFX) $< $@ -%.rl: % ; $(GFX) $< $@ - - -ifeq ($(NODEP),1) -$(C_BUILDDIR)/%.o: c_dep := -else -$(C_BUILDDIR)/%.o: c_dep = $(shell $(SCANINC) -I include $(C_SUBDIR)/$*.c) -endif - -$(C_BUILDDIR)/%.o : $(C_SUBDIR)/%.c $$(c_dep) - @$(CPP) $(CPPFLAGS) $< -o $(C_BUILDDIR)/$*.i - @$(PREPROC) $(C_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CFLAGS) -o $(C_BUILDDIR)/$*.s - $(AS) $(ASFLAGS) -o $@ $(C_BUILDDIR)/$*.s - -ifeq ($(NODEP),1) -$(ASM_BUILDDIR)/%.o: asm_dep := -else -$(ASM_BUILDDIR)/%.o: asm_dep = $(shell $(SCANINC) $(ASM_SUBDIR)/$*.s) -endif - -$(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s $$(asm_dep) - $(AS) $(ASFLAGS) -o $@ $< - -ifeq ($(NODEP),1) -$(DATA_ASM_BUILDDIR)/%.o: data_dep := -else -$(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) $(DATA_ASM_SUBDIR)/$*.s) -endif - -payload: - @$(MAKE) -C payload COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN) - -payload/payload.gba: payload - -data/payload.gba.lz: payload/payload.gba - $(GFX) $< $@ -search 1 - -$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep) - $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(AS) $(ASFLAGS) -o $@ - -$(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s - $(AS) $(ASFLAGS) -I sound -o $@ $< - -$(ELF): ld_script.txt $(OBJS) - cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ../ld_script.txt -o ../$@ - -$(ROM): $(ELF) - $(OBJCOPY) -O binary $< $@ - $(FIX) $@ -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent - diff --git a/berry_fix/asm/berry_fix_header.inc b/berry_fix/asm/berry_fix_header.inc deleted file mode 100644 index 5167d2ff03..0000000000 --- a/berry_fix/asm/berry_fix_header.inc +++ /dev/null @@ -1,35 +0,0 @@ - .global BerryFixMBHeaderNintendoLogo -BerryFixMBHeaderNintendoLogo: - .space 156 - -BerryFixMBHeaderGameTitle: - .space 12 - - .global BerryFixMBHeaderGameCode -BerryFixMBHeaderGameCode: - .space 4 - -BerryFixMBHeaderMakerCode: - .space 2 - -BerryFixMBHeaderMagic: - .byte 0 - -BerryFixMBHeaderMainUnitCode: - .byte 0 - -BerryFixMBHeaderDeviceType: - .byte 0 - -BerryFixMBHeaderReserved1: - .space 7 - - .global BerryFixMBHeaderSoftwareVersion -BerryFixMBHeaderSoftwareVersion: - .byte 0 - -BerryFixMBHeaderChecksum: - .byte 0 - -BerryFixMBHeaderReserved2: - .space 2 diff --git a/berry_fix/asm/loader.s b/berry_fix/asm/loader.s deleted file mode 100644 index a780140785..0000000000 --- a/berry_fix/asm/loader.s +++ /dev/null @@ -1,119 +0,0 @@ - .include "../asm/macros/asm.inc" - .include "../asm/macros/function.inc" - .include "../constants/gba_constants.inc" - - .set SIO_ERROR, 0x0040 - .set SIO_MULTI_BUSY, 0x0080 - - .set EWRAM_ORIG, 0x02000000 - .set gCode, 0x02010000 - .set PROG_ORIG, 0x00008000 - - .syntax unified - - .text - - arm_func_start _start -_start: @ 0 - b _entry - arm_func_end _start - - .include "asm/berry_fix_header.inc" - -@ C0 - .word 0 - - .global _GPIOPortData -_GPIOPortData: @ C4 - .2byte 0 - - .global _GPIOPortDirection -_GPIOPortDirection: @ C6 - .2byte 0 - - .global _GPIOPortReadEnable -_GPIOPortReadEnable: @ C8 - .2byte 0 - -@ CA - .2byte 0 - -@ CC - .space 0x34 - - arm_func_start _entry -_entry: @ 100 - b _send - arm_func_end _entry - - .space 0x1C - - arm_func_start _recv -_recv: - @ Waits until link cable is no longer busy. - @ Returns nz if an error has occurred - @ Otherwise, returns the received short in r1. - @ Preserves r0 -_120: - ldrh r1, [r0, 0x8] @ SIOCNT - tst r1, SIO_MULTI_BUSY - beq _120 -_12c: - ldrh r1, [r0, 0x8] @ SIOCNT - tst r1, SIO_MULTI_BUSY - bne _12c - ldrh r1, [r0, 0x8] @ SIOCNT - tst r1, SIO_ERROR - bxne lr - ldrh r1, [r0] @ SIOMULTI0 - bx lr - arm_func_end _recv - - arm_func_start _send -_send: @ 14c - ldr r0, =REG_SIOMULTI0 -_150: - bl _recv - bne _150 - mov r2, #0 - strh r2, [r0, 0xa] @ SIOMLT_SEND - cmp r1, #0 - bne _150 - mov r2, 0x8000 -_16c: - mov r1, #0 -_170: - strh r1, [r0, 0xa] @ SIOMLT_SEND - bl _recv - bne _150 - cmp r1, r2 - bne _16c - lsr r2, #5 - cmp r1, #0 - bne _170 - ldr r3, =BerryFixMBHeaderGameCode - ldrh r2, [r3] - strh r2, [r0, 0xa] @ SIOMLT_SEND - bl _recv -_1a0: - bne _1a0 - cmp r1, r2 - bne _1a0 - ldrh r2, [r3, 0x2] - strh r2, [r0, 0xa] @ SIOMLT_SEND - bl _recv - bne _1a0 - cmp r1, r2 - bne _1a0 - mov r1, #0 - strh r1, [r0, 0xa] @ SIOMLT_SEND - ldr r0, =_data_2f0 - ldr r1, =gCode - swi 0x11 << 16 - ldr lr, =gCode - bx lr - .pool - arm_func_end _send - @ 1f0 - - .align 2, 0 @ don't pad with nop diff --git a/berry_fix/charmap.txt b/berry_fix/charmap.txt deleted file mode 100644 index 1c143ada4f..0000000000 --- a/berry_fix/charmap.txt +++ /dev/null @@ -1,1067 +0,0 @@ -' ' = 00 -'À' = 01 -'Á' = 02 -'Â' = 03 -'Ç' = 04 -'È' = 05 -'É' = 06 -'Ê' = 07 -'Ë' = 08 -'Ì' = 09 -'Î' = 0B -'Ï' = 0C -'Ò' = 0D -'Ó' = 0E -'Ô' = 0F -'Œ' = 10 -'Ù' = 11 -'Ú' = 12 -'Û' = 13 -'Ñ' = 14 -'ß' = 15 -'à' = 16 -'á' = 17 -'ç' = 19 -'è' = 1A -'é' = 1B -'ê' = 1C -'ë' = 1D -'ì' = 1E -'î' = 20 -'ï' = 21 -'ò' = 22 -'ó' = 23 -'ô' = 24 -'œ' = 25 -'ù' = 26 -'ú' = 27 -'û' = 28 -'ñ' = 29 -'º' = 2A -'ª' = 2B -SUPER_ER = 2C -'&' = 2D -'+' = 2E -LV = 34 -'=' = 35 -';' = 36 -'¿' = 51 -'¡' = 52 -PK = 53 -PKMN = 53 54 -POKEBLOCK = 55 56 57 58 59 -'Í' = 5A -'%' = 5B -'(' = 5C -')' = 5D -'â' = 68 -'í' = 6F -UNK_SPACER = 77 -UP_ARROW = 79 -DOWN_ARROW = 7A -LEFT_ARROW = 7B -RIGHT_ARROW = 7C -'0' = A1 -'1' = A2 -'2' = A3 -'3' = A4 -'4' = A5 -'5' = A6 -'6' = A7 -'7' = A8 -'8' = A9 -'9' = AA -'!' = AB -'?' = AC -'.' = AD -'-' = AE -'·' = AF -'…' = B0 -'“' = B1 -'”' = B2 -'‘' = B3 -'’' = B4 -'♂' = B5 -'♀' = B6 -'¥' = B7 -',' = B8 -'×' = B9 -'/' = BA -'A' = BB -'B' = BC -'C' = BD -'D' = BE -'E' = BF -'F' = C0 -'G' = C1 -'H' = C2 -'I' = C3 -'J' = C4 -'K' = C5 -'L' = C6 -'M' = C7 -'N' = C8 -'O' = C9 -'P' = CA -'Q' = CB -'R' = CC -'S' = CD -'T' = CE -'U' = CF -'V' = D0 -'W' = D1 -'X' = D2 -'Y' = D3 -'Z' = D4 -'a' = D5 -'b' = D6 -'c' = D7 -'d' = D8 -'e' = D9 -'f' = DA -'g' = DB -'h' = DC -'i' = DD -'j' = DE -'k' = DF -'l' = E0 -'m' = E1 -'n' = E2 -'o' = E3 -'p' = E4 -'q' = E5 -'r' = E6 -'s' = E7 -'t' = E8 -'u' = E9 -'v' = EA -'w' = EB -'x' = EC -'y' = ED -'z' = EE -'▶' = EF -':' = F0 -'Ä' = F1 -'Ö' = F2 -'Ü' = F3 -'ä' = F4 -'ö' = F5 -'ü' = F6 -TALL_PLUS = FC 0C FB -'$' = FF - -@ Hiragana -'あ' = 01 -'い' = 02 -'う' = 03 -'え' = 04 -'お' = 05 -'か' = 06 -'き' = 07 -'く' = 08 -'け' = 09 -'こ' = 0A -'さ' = 0B -'し' = 0C -'す' = 0D -'せ' = 0E -'そ' = 0F -'た' = 10 -'ち' = 11 -'つ' = 12 -'て' = 13 -'と' = 14 -'な' = 15 -'に' = 16 -'ぬ' = 17 -'ね' = 18 -'の' = 19 -'は' = 1A -'ひ' = 1B -'ふ' = 1C -'へ' = 1D -'ほ' = 1E -'ま' = 1F -'み' = 20 -'む' = 21 -'め' = 22 -'も' = 23 -'や' = 24 -'ゆ' = 25 -'よ' = 26 -'ら' = 27 -'り' = 28 -'る' = 29 -'れ' = 2A -'ろ' = 2B -'わ' = 2C -'を' = 2D -'ん' = 2E -'ぁ' = 2F -'ぃ' = 30 -'ぅ' = 31 -'ぇ' = 32 -'ぉ' = 33 -'ゃ' = 34 -'ゅ' = 35 -'ょ' = 36 -'が' = 37 -'ぎ' = 38 -'ぐ' = 39 -'げ' = 3A -'ご' = 3B -'ざ' = 3C -'じ' = 3D -'ず' = 3E -'ぜ' = 3F -'ぞ' = 40 -'だ' = 41 -'ぢ' = 42 -'づ' = 43 -'で' = 44 -'ど' = 45 -'ば' = 46 -'び' = 47 -'ぶ' = 48 -'べ' = 49 -'ぼ' = 4A -'ぱ' = 4B -'ぴ' = 4C -'ぷ' = 4D -'ぺ' = 4E -'ぽ' = 4F -'っ' = 50 - -@ Katakana -'ア' = 51 -'イ' = 52 -'ウ' = 53 -'エ' = 54 -'オ' = 55 -'カ' = 56 -'キ' = 57 -'ク' = 58 -'ケ' = 59 -'コ' = 5A -'サ' = 5B -'シ' = 5C -'ス' = 5D -'セ' = 5E -'ソ' = 5F -'タ' = 60 -'チ' = 61 -'ツ' = 62 -'テ' = 63 -'ト' = 64 -'ナ' = 65 -'ニ' = 66 -'ヌ' = 67 -'ネ' = 68 -'ノ' = 69 -'ハ' = 6A -'ヒ' = 6B -'フ' = 6C -'ヘ' = 6D -'ホ' = 6E -'マ' = 6F -'ミ' = 70 -'ム' = 71 -'メ' = 72 -'モ' = 73 -'ヤ' = 74 -'ユ' = 75 -'ヨ' = 76 -'ラ' = 77 -'リ' = 78 -'ル' = 79 -'レ' = 7A -'ロ' = 7B -'ワ' = 7C -'ヲ' = 7D -'ン' = 7E -'ァ' = 7F -'ィ' = 80 -'ゥ' = 81 -'ェ' = 82 -'ォ' = 83 -'ャ' = 84 -'ュ' = 85 -'ョ' = 86 -'ガ' = 87 -'ギ' = 88 -'グ' = 89 -'ゲ' = 8A -'ゴ' = 8B -'ザ' = 8C -'ジ' = 8D -'ズ' = 8E -'ゼ' = 8F -'ゾ' = 90 -'ダ' = 91 -'ヂ' = 92 -'ヅ' = 93 -'デ' = 94 -'ド' = 95 -'バ' = 96 -'ビ' = 97 -'ブ' = 98 -'ベ' = 99 -'ボ' = 9A -'パ' = 9B -'ピ' = 9C -'プ' = 9D -'ペ' = 9E -'ポ' = 9F -'ッ' = A0 - -@ Japanese punctuation -' ' = 00 -'!' = AB -'?' = AC -'。' = AD -'ー' = AE -'⋯' = B0 - -STRING = FD - -@ string placeholders -PLAYER = FD 01 -STR_VAR_1 = FD 02 -STR_VAR_2 = FD 03 -STR_VAR_3 = FD 04 -KUN = FD 05 -RIVAL = FD 06 -@ version-dependent strings (originally made for Ruby/Sapphire differences) -@ Emerald uses the Sapphire strings (except for VERSION). -VERSION = FD 07 @ "EMERALD" -AQUA = FD 08 -MAGMA = FD 09 -ARCHIE = FD 0A -MAXIE = FD 0B -KYOGRE = FD 0C -GROUDON = FD 0D - -@ battle string placeholders - -B_BUFF1 = FD 00 -B_BUFF2 = FD 01 -B_COPY_VAR_1 = FD 02 -B_COPY_VAR_2 = FD 03 -B_COPY_VAR_3 = FD 04 -B_PLAYER_MON1_NAME = FD 05 -B_OPPONENT_MON1_NAME = FD 06 -B_PLAYER_MON2_NAME = FD 07 -B_OPPONENT_MON2_NAME = FD 08 -B_LINK_PLAYER_MON1_NAME = FD 09 -B_LINK_OPPONENT_MON1_NAME = FD 0A -B_LINK_PLAYER_MON2_NAME = FD 0B -B_LINK_OPPONENT_MON2_NAME = FD 0C -B_ATK_NAME_WITH_PREFIX_MON1 = FD 0D -B_ATK_PARTNER_NAME = FD 0E -B_ATK_NAME_WITH_PREFIX = FD 0F -B_DEF_NAME_WITH_PREFIX = FD 10 -B_EFF_NAME_WITH_PREFIX = FD 11 @ EFF = short for gEffectBattler -B_ACTIVE_NAME_WITH_PREFIX = FD 12 -B_SCR_ACTIVE_NAME_WITH_PREFIX = FD 13 -B_CURRENT_MOVE = FD 14 -B_LAST_MOVE = FD 15 -B_LAST_ITEM = FD 16 -B_LAST_ABILITY = FD 17 -B_ATK_ABILITY = FD 18 -B_DEF_ABILITY = FD 19 -B_SCR_ACTIVE_ABILITY = FD 1A -B_EFF_ABILITY = FD 1B -B_TRAINER1_CLASS = FD 1C -B_TRAINER1_NAME = FD 1D -B_LINK_PLAYER_NAME = FD 1E -B_LINK_PARTNER_NAME = FD 1F -B_LINK_OPPONENT1_NAME = FD 20 -B_LINK_OPPONENT2_NAME = FD 21 -B_LINK_SCR_TRAINER_NAME = FD 22 -B_PLAYER_NAME = FD 23 -B_TRAINER1_LOSE_TEXT = FD 24 -B_TRAINER1_WIN_TEXT = FD 25 -B_26 = FD 26 -B_PC_CREATOR_NAME = FD 27 -B_ATK_PREFIX1 = FD 28 -B_DEF_PREFIX1 = FD 29 -B_ATK_PREFIX2 = FD 2A -B_DEF_PREFIX2 = FD 2B -B_ATK_PREFIX3 = FD 2C -B_DEF_PREFIX3 = FD 2D -B_TRAINER2_CLASS = FD 2E -B_TRAINER2_NAME = FD 2F -B_TRAINER2_LOSE_TEXT = FD 30 -B_TRAINER2_WIN_TEXT = FD 31 -B_PARTNER_CLASS = FD 32 -B_PARTNER_NAME = FD 33 -B_BUFF3 = FD 34 - -@ indicates the end of a town/city name (before " TOWN" or " CITY") -NAME_END = FC 00 - -@ special 0xF7 character -SPECIAL_F7 = F7 - -@ more text functions - -COLOR = FC 01 @ use a color listed below right after -HIGHLIGHT = FC 02 @ same as fc 01 -SHADOW = FC 03 @ same as fc 01 -COLOR_HIGHLIGHT_SHADOW = FC 04 @ takes 3 bytes -PALETTE = FC 05 @ used in credits -SIZE = FC 06 @ note that anything other than "SMALL" is invalid -UNKNOWN_7 = FC 07 -PAUSE = FC 08 @ manually print the wait byte after this, havent mapped them -PAUSE_UNTIL_PRESS = FC 09 -WAIT_SE = FC 0A -PLAY_BGM = FC 0B -ESCAPE = FC 0C -SHIFT_TEXT = FC 0D -UNKNOWN_E = FC 0E -UNKNOWN_F = FC 0F -PLAY_SE = FC 10 -CLEAR = FC 11 -SKIP = FC 12 -CLEAR_TO = FC 13 -UNKNOWN_14 = FC 14 -JPN = FC 15 -ENG = FC 16 -PAUSE_MUSIC = FC 17 -RESUME_MUSIC = FC 18 - -@ colors - -TRANSPARENT = 00 -WHITE = 01 -DARK_GRAY = 02 -LIGHT_GRAY = 03 -RED = 04 -LIGHT_RED = 05 -GREEN = 06 -LIGHT_GREEN = 07 -BLUE = 08 -LIGHT_BLUE = 09 -@ these next colors can be set to anything arbitrary at runtime -@ usually though they'll have the textbox border colors as described below -DYNAMIC_COLOR1 = 0A @ white -DYNAMIC_COLOR2 = 0B @ white with a tinge of green -DYNAMIC_COLOR3 = 0C @ white 2 -DYNAMIC_COLOR4 = 0D @ aquamarine -DYNAMIC_COLOR5 = 0E @ blue-green -DYNAMIC_COLOR6 = 0F @ cerulean - -@ sound and music - -MUS_DUMMY = 00 00 -SE_USE_ITEM = 01 00 -SE_PC_LOGIN = 02 00 -SE_PC_OFF = 03 00 -SE_PC_ON = 04 00 -SE_SELECT = 05 00 -SE_WIN_OPEN = 06 00 -SE_WALL_HIT = 07 00 -SE_DOOR = 08 00 -SE_EXIT = 09 00 -SE_LEDGE = 0A 00 -SE_BIKE_BELL = 0B 00 -SE_NOT_EFFECTIVE = 0C 00 -SE_EFFECTIVE = 0D 00 -SE_SUPER_EFFECTIVE = 0E 00 -SE_BALL_OPEN = 0F 00 -SE_FAINT = 10 00 -SE_FLEE = 11 00 -SE_SLIDING_DOOR = 12 00 -SE_SHIP = 13 00 -SE_BANG = 14 00 -SE_PIN = 15 00 -SE_BOO = 16 00 -SE_BALL = 17 00 -SE_CONTEST_PLACE = 18 00 -SE_A = 19 00 -SE_I = 1A 00 -SE_U = 1B 00 -SE_E = 1C 00 -SE_O = 1D 00 -SE_N = 1E 00 -SE_SUCCESS = 1F 00 -SE_FAILURE = 20 00 -SE_EXP = 21 00 -SE_BIKE_HOP = 22 00 -SE_SWITCH = 23 00 -SE_CLICK = 24 00 -SE_FU_ZAKU = 25 00 -SE_CONTEST_CONDITION_LOSE = 26 00 -SE_LAVARIDGE_FALL_WARP = 27 00 -SE_ICE_STAIRS = 28 00 -SE_ICE_BREAK = 29 00 -SE_ICE_CRACK = 2A 00 -SE_FALL = 2B 00 -SE_UNLOCK = 2C 00 -SE_WARP_IN = 2D 00 -SE_WARP_OUT = 2E 00 -SE_REPEL = 2F 00 -SE_ROTATING_GATE = 30 00 -SE_TRUCK_MOVE = 31 00 -SE_TRUCK_STOP = 32 00 -SE_TRUCK_UNLOAD = 33 00 -SE_TRUCK_DOOR = 34 00 -SE_BERRY_BLENDER = 35 00 -SE_CARD = 36 00 -SE_SAVE = 37 00 -SE_BALL_BOUNCE_1 = 38 00 -SE_BALL_BOUNCE_2 = 39 00 -SE_BALL_BOUNCE_3 = 3A 00 -SE_BALL_BOUNCE_4 = 3B 00 -SE_BALL_TRADE = 3C 00 -SE_BALL_THROW = 3D 00 -SE_NOTE_C = 3E 00 -SE_NOTE_D = 3F 00 -SE_NOTE_E = 40 00 -SE_NOTE_F = 41 00 -SE_NOTE_G = 42 00 -SE_NOTE_A = 43 00 -SE_NOTE_B = 44 00 -SE_NOTE_C_HIGH = 45 00 -SE_PUDDLE = 46 00 -SE_BRIDGE_WALK = 47 00 -SE_ITEMFINDER = 48 00 -SE_DING_DONG = 49 00 -SE_BALLOON_RED = 4A 00 -SE_BALLOON_BLUE = 4B 00 -SE_BALLOON_YELLOW = 4C 00 -SE_BREAKABLE_DOOR = 4D 00 -SE_MUD_BALL = 4E 00 -SE_FIELD_POISON = 4F 00 -SE_ESCALATOR = 50 00 -SE_THUNDERSTORM = 51 00 -SE_THUNDERSTORM_STOP = 52 00 -SE_DOWNPOUR = 53 00 -SE_DOWNPOUR_STOP = 54 00 -SE_RAIN = 55 00 -SE_RAIN_STOP = 56 00 -SE_THUNDER = 57 00 -SE_THUNDER2 = 58 00 -SE_ELEVATOR = 59 00 -SE_LOW_HEALTH = 5A 00 -SE_EXP_MAX = 5B 00 -SE_ROULETTE_BALL = 5C 00 -SE_ROULETTE_BALL2 = 5D 00 -SE_TAILLOW_WING_FLAP = 5E 00 -SE_SHOP = 5F 00 -SE_CONTEST_HEART = 60 00 -SE_CONTEST_CURTAIN_RISE = 61 00 -SE_CONTEST_CURTAIN_FALL = 62 00 -SE_CONTEST_ICON_CHANGE = 63 00 -SE_CONTEST_ICON_CLEAR = 64 00 -SE_CONTEST_MONS_TURN = 65 00 -SE_SHINY = 66 00 -SE_INTRO_BLAST = 67 00 -SE_MUGSHOT = 68 00 -SE_APPLAUSE = 69 00 -SE_VEND = 6A 00 -SE_ORB = 6B 00 -SE_DEX_SCROLL = 6C 00 -SE_DEX_PAGE = 6D 00 -SE_POKENAV_ON = 6E 00 -SE_POKENAV_OFF = 6F 00 -SE_DEX_SEARCH = 70 00 -SE_EGG_HATCH = 71 00 -SE_BALL_TRAY_ENTER = 72 00 -SE_BALL_TRAY_BALL = 73 00 -SE_BALL_TRAY_EXIT = 74 00 -SE_GLASS_FLUTE = 75 00 -SE_M_THUNDERBOLT = 76 00 -SE_M_THUNDERBOLT2 = 77 00 -SE_M_HARDEN = 78 00 -SE_M_NIGHTMARE = 79 00 -SE_M_VITAL_THROW = 7A 00 -SE_M_VITAL_THROW2 = 7B 00 -SE_M_BUBBLE = 7C 00 -SE_M_BUBBLE2 = 7D 00 -SE_M_BUBBLE3 = 7E 00 -SE_M_RAIN_DANCE = 7F 00 -SE_M_CUT = 80 00 -SE_M_STRING_SHOT = 81 00 -SE_M_STRING_SHOT2 = 82 00 -SE_M_ROCK_THROW = 83 00 -SE_M_GUST = 84 00 -SE_M_GUST2 = 85 00 -SE_M_DOUBLE_SLAP = 86 00 -SE_M_DOUBLE_TEAM = 87 00 -SE_M_RAZOR_WIND = 88 00 -SE_M_ICY_WIND = 89 00 -SE_M_THUNDER_WAVE = 8A 00 -SE_M_COMET_PUNCH = 8B 00 -SE_M_MEGA_KICK = 8C 00 -SE_M_MEGA_KICK2 = 8D 00 -SE_M_CRABHAMMER = 8E 00 -SE_M_JUMP_KICK = 8F 00 -SE_M_FLAME_WHEEL = 90 00 -SE_M_FLAME_WHEEL2 = 91 00 -SE_M_FLAMETHROWER = 92 00 -SE_M_FIRE_PUNCH = 93 00 -SE_M_TOXIC = 94 00 -SE_M_SACRED_FIRE = 95 00 -SE_M_SACRED_FIRE2 = 96 00 -SE_M_EMBER = 97 00 -SE_M_TAKE_DOWN = 98 00 -SE_M_BLIZZARD = 99 00 -SE_M_BLIZZARD2 = 9A 00 -SE_M_SCRATCH = 9B 00 -SE_M_VICEGRIP = 9C 00 -SE_M_WING_ATTACK = 9D 00 -SE_M_FLY = 9E 00 -SE_M_SAND_ATTACK = 9F 00 -SE_M_RAZOR_WIND2 = A0 00 -SE_M_BITE = A1 00 -SE_M_HEADBUTT = A2 00 -SE_M_SURF = A3 00 -SE_M_HYDRO_PUMP = A4 00 -SE_M_WHIRLPOOL = A5 00 -SE_M_HORN_ATTACK = A6 00 -SE_M_TAIL_WHIP = A7 00 -SE_M_MIST = A8 00 -SE_M_POISON_POWDER = A9 00 -SE_M_BIND = AA 00 -SE_M_DRAGON_RAGE = AB 00 -SE_M_SING = AC 00 -SE_M_PERISH_SONG = AD 00 -SE_M_PAY_DAY = AE 00 -SE_M_DIG = AF 00 -SE_M_DIZZY_PUNCH = B0 00 -SE_M_SELF_DESTRUCT = B1 00 -SE_M_EXPLOSION = B2 00 -SE_M_ABSORB_2 = B3 00 -SE_M_ABSORB = B4 00 -SE_M_SCREECH = B5 00 -SE_M_BUBBLE_BEAM = B6 00 -SE_M_BUBBLE_BEAM2 = B7 00 -SE_M_SUPERSONIC = B8 00 -SE_M_BELLY_DRUM = B9 00 -SE_M_METRONOME = BA 00 -SE_M_BONEMERANG = BB 00 -SE_M_LICK = BC 00 -SE_M_PSYBEAM = BD 00 -SE_M_FAINT_ATTACK = BE 00 -SE_M_SWORDS_DANCE = BF 00 -SE_M_LEER = C0 00 -SE_M_SWAGGER = C1 00 -SE_M_SWAGGER2 = C2 00 -SE_M_HEAL_BELL = C3 00 -SE_M_CONFUSE_RAY = C4 00 -SE_M_SNORE = C5 00 -SE_M_BRICK_BREAK = C6 00 -SE_M_GIGA_DRAIN = C7 00 -SE_M_PSYBEAM2 = C8 00 -SE_M_SOLAR_BEAM = C9 00 -SE_M_PETAL_DANCE = CA 00 -SE_M_TELEPORT = CB 00 -SE_M_MINIMIZE = CC 00 -SE_M_SKETCH = CD 00 -SE_M_SWIFT = CE 00 -SE_M_REFLECT = CF 00 -SE_M_BARRIER = D0 00 -SE_M_DETECT = D1 00 -SE_M_LOCK_ON = D2 00 -SE_M_MOONLIGHT = D3 00 -SE_M_CHARM = D4 00 -SE_M_CHARGE = D5 00 -SE_M_STRENGTH = D6 00 -SE_M_HYPER_BEAM = D7 00 -SE_M_WATERFALL = D8 00 -SE_M_REVERSAL = D9 00 -SE_M_ACID_ARMOR = DA 00 -SE_M_SANDSTORM = DB 00 -SE_M_TRI_ATTACK = DC 00 -SE_M_TRI_ATTACK2 = DD 00 -SE_M_ENCORE = DE 00 -SE_M_ENCORE2 = DF 00 -SE_M_BATON_PASS = E0 00 -SE_M_MILK_DRINK = E1 00 -SE_M_ATTRACT = E2 00 -SE_M_ATTRACT2 = E3 00 -SE_M_MORNING_SUN = E4 00 -SE_M_FLATTER = E5 00 -SE_M_SAND_TOMB = E6 00 -SE_M_GRASSWHISTLE = E7 00 -SE_M_SPIT_UP = E8 00 -SE_M_DIVE = E9 00 -SE_M_EARTHQUAKE = EA 00 -SE_M_TWISTER = EB 00 -SE_M_SWEET_SCENT = EC 00 -SE_M_YAWN = ED 00 -SE_M_SKY_UPPERCUT = EE 00 -SE_M_STAT_INCREASE = EF 00 -SE_M_HEAT_WAVE = F0 00 -SE_M_UPROAR = F1 00 -SE_M_HAIL = F2 00 -SE_M_COSMIC_POWER = F3 00 -SE_M_TEETER_DANCE = F4 00 -SE_M_STAT_DECREASE = F5 00 -SE_M_HAZE = F6 00 -SE_M_HYPER_BEAM2 = F7 00 -SE_RG_DOOR = F8 00 -SE_RG_CARD_FLIP = F9 00 -SE_RG_CARD_FLIPPING = FA 00 -SE_RG_CARD_OPEN = FB 00 -SE_RG_BAG_CURSOR = FC 00 -SE_RG_BAG_POCKET = FD 00 -SE_RG_BALL_CLICK = FE 00 -SE_RG_SHOP = FF 00 -SE_RG_SS_ANNE_HORN = 00 01 -SE_RG_HELP_OPEN = 01 01 -SE_RG_HELP_CLOSE = 02 01 -SE_RG_HELP_ERROR = 03 01 -SE_RG_DEOXYS_MOVE = 04 01 -SE_RG_POKE_JUMP_SUCCESS = 05 01 -SE_RG_POKE_JUMP_FAILURE = 06 01 -SE_POKENAV_CALL = 07 01 -SE_POKENAV_HANG_UP = 08 01 -SE_ARENA_TIMEUP1 = 09 01 -SE_ARENA_TIMEUP2 = 0A 01 -SE_PIKE_CURTAIN_CLOSE = 0B 01 -SE_PIKE_CURTAIN_OPEN = 0C 01 -SE_SUDOWOODO_SHAKE = 0D 01 -MUS_LITTLEROOT_TEST = 5E 01 -MUS_GSC_ROUTE38 = 5F 01 -MUS_CAUGHT = 60 01 -MUS_VICTORY_WILD = 61 01 -MUS_VICTORY_GYM_LEADER = 62 01 -MUS_VICTORY_LEAGUE = 63 01 -MUS_C_COMM_CENTER = 64 01 -MUS_GSC_PEWTER = 65 01 -MUS_C_VS_LEGEND_BEAST = 66 01 -MUS_ROUTE101 = 67 01 -MUS_ROUTE110 = 68 01 -MUS_ROUTE120 = 69 01 -MUS_PETALBURG = 6A 01 -MUS_OLDALE = 6B 01 -MUS_GYM = 6C 01 -MUS_SURF = 6D 01 -MUS_PETALBURG_WOODS = 6E 01 -MUS_LEVEL_UP = 6F 01 -MUS_HEAL = 70 01 -MUS_OBTAIN_BADGE = 71 01 -MUS_OBTAIN_ITEM = 72 01 -MUS_EVOLVED = 73 01 -MUS_OBTAIN_TMHM = 74 01 -MUS_LILYCOVE_MUSEUM = 75 01 -MUS_ROUTE122 = 76 01 -MUS_OCEANIC_MUSEUM = 77 01 -MUS_EVOLUTION_INTRO = 78 01 -MUS_EVOLUTION = 79 01 -MUS_MOVE_DELETED = 7A 01 -MUS_ENCOUNTER_GIRL = 7B 01 -MUS_ENCOUNTER_MALE = 7C 01 -MUS_ABANDONED_SHIP = 7D 01 -MUS_FORTREE = 7E 01 -MUS_BIRCH_LAB = 7F 01 -MUS_B_TOWER_RS = 80 01 -MUS_ENCOUNTER_SWIMMER = 81 01 -MUS_CAVE_OF_ORIGIN = 82 01 -MUS_OBTAIN_BERRY = 83 01 -MUS_AWAKEN_LEGEND = 84 01 -MUS_SLOTS_JACKPOT = 85 01 -MUS_SLOTS_WIN = 86 01 -MUS_TOO_BAD = 87 01 -MUS_ROULETTE = 88 01 -MUS_LINK_CONTEST_P1 = 89 01 -MUS_LINK_CONTEST_P2 = 8A 01 -MUS_LINK_CONTEST_P3 = 8B 01 -MUS_LINK_CONTEST_P4 = 8C 01 -MUS_ENCOUNTER_RICH = 8D 01 -MUS_VERDANTURF = 8E 01 -MUS_RUSTBORO = 8F 01 -MUS_POKE_CENTER = 90 01 -MUS_ROUTE104 = 91 01 -MUS_ROUTE119 = 92 01 -MUS_CYCLING = 93 01 -MUS_POKE_MART = 94 01 -MUS_LITTLEROOT = 95 01 -MUS_MT_CHIMNEY = 96 01 -MUS_ENCOUNTER_FEMALE = 97 01 -MUS_LILYCOVE = 98 01 -MUS_ROUTE111 = 99 01 -MUS_HELP = 9A 01 -MUS_UNDERWATER = 9B 01 -MUS_VICTORY_TRAINER = 9C 01 -MUS_TITLE = 9D 01 -MUS_INTRO = 9E 01 -MUS_ENCOUNTER_MAY = 9F 01 -MUS_ENCOUNTER_INTENSE = A0 01 -MUS_ENCOUNTER_COOL = A1 01 -MUS_ROUTE113 = A2 01 -MUS_ENCOUNTER_AQUA = A3 01 -MUS_FOLLOW_ME = A4 01 -MUS_ENCOUNTER_BRENDAN = A5 01 -MUS_EVER_GRANDE = A6 01 -MUS_ENCOUNTER_SUSPICIOUS = A7 01 -MUS_VICTORY_AQUA_MAGMA = A8 01 -MUS_CABLE_CAR = A9 01 -MUS_GAME_CORNER = AA 01 -MUS_DEWFORD = AB 01 -MUS_SAFARI_ZONE = AC 01 -MUS_VICTORY_ROAD = AD 01 -MUS_AQUA_MAGMA_HIDEOUT = AE 01 -MUS_SAILING = AF 01 -MUS_MT_PYRE = B0 01 -MUS_SLATEPORT = B1 01 -MUS_MT_PYRE_EXTERIOR = B2 01 -MUS_SCHOOL = B3 01 -MUS_HALL_OF_FAME = B4 01 -MUS_FALLARBOR = B5 01 -MUS_SEALED_CHAMBER = B6 01 -MUS_CONTEST_WINNER = B7 01 -MUS_CONTEST = B8 01 -MUS_ENCOUNTER_MAGMA = B9 01 -MUS_INTRO_BATTLE = BA 01 -MUS_ABNORMAL_WEATHER = BB 01 -MUS_WEATHER_GROUDON = BC 01 -MUS_SOOTOPOLIS = BD 01 -MUS_CONTEST_RESULTS = BE 01 -MUS_HALL_OF_FAME_ROOM = BF 01 -MUS_TRICK_HOUSE = C0 01 -MUS_ENCOUNTER_TWINS = C1 01 -MUS_ENCOUNTER_ELITE_FOUR = C2 01 -MUS_ENCOUNTER_HIKER = C3 01 -MUS_CONTEST_LOBBY = C4 01 -MUS_ENCOUNTER_INTERVIEWER = C5 01 -MUS_ENCOUNTER_CHAMPION = C6 01 -MUS_CREDITS = C7 01 -MUS_END = C8 01 -MUS_B_FRONTIER = C9 01 -MUS_B_ARENA = CA 01 -MUS_OBTAIN_B_POINTS = CB 01 -MUS_REGISTER_MATCH_CALL = CC 01 -MUS_B_PYRAMID = CD 01 -MUS_B_PYRAMID_TOP = CE 01 -MUS_B_PALACE = CF 01 -MUS_RAYQUAZA_APPEARS = D0 01 -MUS_B_TOWER = D1 01 -MUS_OBTAIN_SYMBOL = D2 01 -MUS_B_DOME = D3 01 -MUS_B_PIKE = D4 01 -MUS_B_FACTORY = D5 01 -MUS_VS_RAYQUAZA = D6 01 -MUS_VS_FRONTIER_BRAIN = D7 01 -MUS_VS_MEW = D8 01 -MUS_B_DOME_LOBBY = D9 01 -MUS_VS_WILD = DA 01 -MUS_VS_AQUA_MAGMA = DB 01 -MUS_VS_TRAINER = DC 01 -MUS_VS_GYM_LEADER = DD 01 -MUS_VS_CHAMPION = DE 01 -MUS_VS_REGI = DF 01 -MUS_VS_KYOGRE_GROUDON = E0 01 -MUS_VS_RIVAL = E1 01 -MUS_VS_ELITE_FOUR = E2 01 -MUS_VS_AQUA_MAGMA_LEADER = E3 01 -MUS_RG_FOLLOW_ME = E4 01 -MUS_RG_GAME_CORNER = E5 01 -MUS_RG_ROCKET_HIDEOUT = E6 01 -MUS_RG_GYM = E7 01 -MUS_RG_JIGGLYPUFF = E8 01 -MUS_RG_INTRO_FIGHT = E9 01 -MUS_RG_TITLE = EA 01 -MUS_RG_CINNABAR = EB 01 -MUS_RG_LAVENDER = EC 01 -MUS_RG_HEAL = ED 01 -MUS_RG_CYCLING = EE 01 -MUS_RG_ENCOUNTER_ROCKET = EF 01 -MUS_RG_ENCOUNTER_GIRL = F0 01 -MUS_RG_ENCOUNTER_BOY = F1 01 -MUS_RG_HALL_OF_FAME = F2 01 -MUS_RG_VIRIDIAN_FOREST = F3 01 -MUS_RG_MT_MOON = F4 01 -MUS_RG_POKE_MANSION = F5 01 -MUS_RG_CREDITS = F6 01 -MUS_RG_ROUTE1 = F7 01 -MUS_RG_ROUTE24 = F8 01 -MUS_RG_ROUTE3 = F9 01 -MUS_RG_ROUTE11 = FA 01 -MUS_RG_VICTORY_ROAD = FB 01 -MUS_RG_VS_GYM_LEADER = FC 01 -MUS_RG_VS_TRAINER = FD 01 -MUS_RG_VS_WILD = FE 01 -MUS_RG_VS_CHAMPION = FF 01 -MUS_RG_PALLET = 00 02 -MUS_RG_OAK_LAB = 01 02 -MUS_RG_OAK = 02 02 -MUS_RG_POKE_CENTER = 03 02 -MUS_RG_SS_ANNE = 04 02 -MUS_RG_SURF = 05 02 -MUS_RG_POKE_TOWER = 06 02 -MUS_RG_SILPH = 07 02 -MUS_RG_FUCHSIA = 08 02 -MUS_RG_CELADON = 09 02 -MUS_RG_VICTORY_TRAINER = 0A 02 -MUS_RG_VICTORY_WILD = 0B 02 -MUS_RG_VICTORY_GYM_LEADER = 0C 02 -MUS_RG_VERMILLION = 0D 02 -MUS_RG_PEWTER = 0E 02 -MUS_RG_ENCOUNTER_RIVAL = 0F 02 -MUS_RG_RIVAL_EXIT = 10 02 -MUS_RG_DEX_RATING = 11 02 -MUS_RG_OBTAIN_KEY_ITEM = 12 02 -MUS_RG_CAUGHT_INTRO = 13 02 -MUS_RG_PHOTO = 14 02 -MUS_RG_GAME_FREAK = 15 02 -MUS_RG_CAUGHT = 16 02 -MUS_RG_NEW_GAME_INSTRUCT = 17 02 -MUS_RG_NEW_GAME_INTRO = 18 02 -MUS_RG_NEW_GAME_EXIT = 19 02 -MUS_RG_POKE_JUMP = 1A 02 -MUS_RG_UNION_ROOM = 1B 02 -MUS_RG_NET_CENTER = 1C 02 -MUS_RG_MYSTERY_GIFT = 1D 02 -MUS_RG_BERRY_PICK = 1E 02 -MUS_RG_SEVII_CAVE = 1F 02 -MUS_RG_TEACHY_TV_SHOW = 20 02 -MUS_RG_SEVII_ROUTE = 21 02 -MUS_RG_SEVII_DUNGEON = 22 02 -MUS_RG_SEVII_123 = 23 02 -MUS_RG_SEVII_45 = 24 02 -MUS_RG_SEVII_67 = 25 02 -MUS_RG_POKE_FLUTE = 26 02 -MUS_RG_VS_DEOXYS = 27 02 -MUS_RG_VS_MEWTWO = 28 02 -MUS_RG_VS_LEGEND = 29 02 -MUS_RG_ENCOUNTER_GYM_LEADER = 2A 02 -MUS_RG_ENCOUNTER_DEOXYS = 2B 02 -MUS_RG_TRAINER_TOWER = 2C 02 -MUS_RG_SLOW_PALLET = 2D 02 -MUS_RG_TEACHY_TV_MENU = 2E 02 -PH_TRAP_BLEND = 2F 02 -PH_TRAP_HELD = 30 02 -PH_TRAP_SOLO = 31 02 -PH_FACE_BLEND = 32 02 -PH_FACE_HELD = 33 02 -PH_FACE_SOLO = 34 02 -PH_CLOTH_BLEND = 35 02 -PH_CLOTH_HELD = 36 02 -PH_CLOTH_SOLO = 37 02 -PH_DRESS_BLEND = 38 02 -PH_DRESS_HELD = 39 02 -PH_DRESS_SOLO = 3A 02 -PH_FLEECE_BLEND = 3B 02 -PH_FLEECE_HELD = 3C 02 -PH_FLEECE_SOLO = 3D 02 -PH_KIT_BLEND = 3E 02 -PH_KIT_HELD = 3F 02 -PH_KIT_SOLO = 40 02 -PH_PRICE_BLEND = 41 02 -PH_PRICE_HELD = 42 02 -PH_PRICE_SOLO = 43 02 -PH_LOT_BLEND = 44 02 -PH_LOT_HELD = 45 02 -PH_LOT_SOLO = 46 02 -PH_GOAT_BLEND = 47 02 -PH_GOAT_HELD = 48 02 -PH_GOAT_SOLO = 49 02 -PH_THOUGHT_BLEND = 4A 02 -PH_THOUGHT_HELD = 4B 02 -PH_THOUGHT_SOLO = 4C 02 -PH_CHOICE_BLEND = 4D 02 -PH_CHOICE_HELD = 4E 02 -PH_CHOICE_SOLO = 4F 02 -PH_MOUTH_BLEND = 50 02 -PH_MOUTH_HELD = 51 02 -PH_MOUTH_SOLO = 52 02 -PH_FOOT_BLEND = 53 02 -PH_FOOT_HELD = 54 02 -PH_FOOT_SOLO = 55 02 -PH_GOOSE_BLEND = 56 02 -PH_GOOSE_HELD = 57 02 -PH_GOOSE_SOLO = 58 02 -PH_STRUT_BLEND = 59 02 -PH_STRUT_HELD = 5A 02 -PH_STRUT_SOLO = 5B 02 -PH_CURE_BLEND = 5C 02 -PH_CURE_HELD = 5D 02 -PH_CURE_SOLO = 5E 02 -PH_NURSE_BLEND = 5F 02 -PH_NURSE_HELD = 60 02 -PH_NURSE_SOLO = 61 02 - -A_BUTTON = F8 00 -B_BUTTON = F8 01 -DPAD_UPDOWN = F8 0A -DPAD_NONE = F8 0C - -UP_ARROW_2 = F9 00 -DOWN_ARROW_2 = F9 01 -LEFT_ARROW_2 = F9 02 -RIGHT_ARROW_2 = F9 03 -PLUS = F9 04 -LV_2 = F9 05 -PP = F9 06 -ID = F9 07 -NO = F9 08 -UNDERSCORE = F9 09 -CIRCLE_1 = F9 0A -CIRCLE_2 = F9 0B -CIRCLE_3 = F9 0C -CIRCLE_4 = F9 0D -CIRCLE_5 = F9 0E -CIRCLE_6 = F9 0F -CIRCLE_7 = F9 10 -CIRCLE_8 = F9 11 -CIRCLE_9 = F9 12 -ROUND_LEFT_PAREN = F9 13 -ROUND_RIGHT_PAREN = F9 14 -CIRCLE_DOT = F9 15 -TRIANGLE = F9 16 -BIG_MULT_X = F9 17 - -EMOJI_UNDERSCORE = F9 D0 -EMOJI_PIPE = F9 D1 -EMOJI_HIGHBAR = F9 D2 -EMOJI_TILDE = F9 D3 -EMOJI_LEFT_PAREN = F9 D4 -EMOJI_RIGHT_PAREN = F9 D5 -EMOJI_UNION = F9 D6 @ ⊂ -EMOJI_GREATER_THAN = F9 D7 -EMOJI_LEFT_EYE = F9 D8 -EMOJI_RIGHT_EYE = F9 D9 -EMOJI_AT = F9 DA -EMOJI_SEMICOLON = F9 DB -EMOJI_PLUS = F9 DC -EMOJI_MINUS = F9 DD -EMOJI_EQUALS = F9 DE -EMOJI_SPIRAL = F9 DF -EMOJI_TONGUE = F9 E0 -EMOJI_TRIANGLE_OUTLINE = F9 E1 -EMOJI_ACUTE = F9 E2 -EMOJI_GRAVE = F9 E3 -EMOJI_CIRCLE = F9 E4 -EMOJI_TRIANGLE = F9 E5 -EMOJI_SQUARE = F9 E6 -EMOJI_HEART = F9 E7 -EMOJI_MOON = F9 E8 -EMOJI_NOTE = F9 E9 -EMOJI_BALL = F9 EA -EMOJI_BOLT = F9 EB -EMOJI_LEAF = F9 EC -EMOJI_FIRE = F9 ED -EMOJI_WATER = F9 EE -EMOJI_LEFT_FIST = F9 EF -EMOJI_RIGHT_FIST = F9 F0 -EMOJI_BIGWHEEL = F9 F1 -EMOJI_SMALLWHEEL = F9 F2 -EMOJI_SPHERE = F9 F3 -EMOJI_IRRITATED = F9 F4 -EMOJI_MISCHIEVOUS = F9 F5 -EMOJI_HAPPY = F9 F6 -EMOJI_ANGRY = F9 F7 -EMOJI_SURPRISED = F9 F8 -EMOJI_BIGSMILE = F9 F9 -EMOJI_EVIL = F9 FA -EMOJI_TIRED = F9 FB -EMOJI_NEUTRAL = F9 FC -EMOJI_SHOCKED = F9 FD -EMOJI_BIGANGER = F9 FE - -'\l' = FA @ scroll up window text -'\p' = FB @ new paragraph -'\n' = FE @ new line diff --git a/berry_fix/data/data.s b/berry_fix/data/data.s deleted file mode 100644 index dbb86b13ba..0000000000 --- a/berry_fix/data/data.s +++ /dev/null @@ -1,4 +0,0 @@ - .section .rodata - -_data_2f0:: - .incbin "data/payload.gba.lz" diff --git a/berry_fix/ld_script.sed b/berry_fix/ld_script.sed deleted file mode 100644 index b91542b6f8..0000000000 --- a/berry_fix/ld_script.sed +++ /dev/null @@ -1,14 +0,0 @@ -// { - r sym_ewram.ld - d -} - -// { - r sym_bss.ld - d -} - -// { - r sym_common.ld - d -} diff --git a/berry_fix/ld_script.txt b/berry_fix/ld_script.txt deleted file mode 100644 index 2edeaef7cb..0000000000 --- a/berry_fix/ld_script.txt +++ /dev/null @@ -1,31 +0,0 @@ -ENTRY(_start) - -SECTIONS { - . = 0x2000000; - - .text : - ALIGN(4) - { - asm/loader.o(.text); - } =0 - - . += 0x100; - .rodata : - ALIGN(4) - { - data/data.o(.rodata); - } =0 - - . = 0x2010000; - - ewram (NOLOAD) : - ALIGN(4) - { - gCode = .; - } - - /DISCARD/ : - { - *(*); - } -} diff --git a/berry_fix/payload/Makefile b/berry_fix/payload/Makefile deleted file mode 100644 index 2779c43ba8..0000000000 --- a/berry_fix/payload/Makefile +++ /dev/null @@ -1,209 +0,0 @@ -TOOLCHAIN := $(DEVKITARM) -COMPARE ?= 0 - -# don't use dkP's base_tools anymore -# because the redefinition of $(CC) conflicts -# with when we want to use $(CC) to preprocess files -# thus, manually create the variables for the bin -# files, or use arm-none-eabi binaries on the system -# if dkP is not installed on this system - -ifneq (,$(TOOLCHAIN)) -ifneq ($(wildcard $(TOOLCHAIN)/bin),) -export PATH := $(TOOLCHAIN)/bin:$(PATH) -endif -endif - -PREFIX := arm-none-eabi- -OBJCOPY := $(PREFIX)objcopy -AS := $(PREFIX)as -LD := $(PREFIX)ld - -# note: the makefile must be set up so MODERNCC is never called -# if MODERN=0 -MODERNCC := $(PREFIX)gcc - -ifeq ($(OS),Windows_NT) -EXE := .exe -else -EXE := -endif - -# use arm-none-eabi-cpp for macOS -# as macOS's default compiler is clang -# and clang's preprocessor will warn on \u -# when preprocessing asm files, expecting a unicode literal -# we can't unconditionally use arm-none-eabi-cpp -# as installations which install binutils-arm-none-eabi -# don't come with it -ifneq ($(MODERN),1) - ifeq ($(shell uname -s),Darwin) - CPP := $(PREFIX)cpp - else - CPP := $(CC) -E - endif -else - CPP := $(PREFIX)cpp -endif - -SHELL := /bin/bash -o pipefail - -CPPFLAGS := -I ../../tools/agbcc/include -I ../../tools/agbcc -iquote include -nostdinc -undef - -ROM := payload.gba -OBJ_DIR := build -CC1 := ../../tools/agbcc/bin/agbcc$(EXE) -override CC1FLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm - - -ELF = $(ROM:.gba=.elf) -MAP = $(ROM:.gba=.map) - -C_SUBDIR = src -ASM_SUBDIR = asm -DATA_ASM_SUBDIR = data - -C_BUILDDIR = $(OBJ_DIR)/$(C_SUBDIR) -ASM_BUILDDIR = $(OBJ_DIR)/$(ASM_SUBDIR) -DATA_ASM_BUILDDIR = $(OBJ_DIR)/$(DATA_ASM_SUBDIR) - -ASFLAGS := -mcpu=arm7tdmi - -LDFLAGS = -Map ../$(MAP) - -LIB := -L ../../../tools/agbcc/lib -lgcc - -SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c -GFX := ../../tools/gbagfx/gbagfx$(EXE) -AIF := ../../tools/aif2pcm/aif2pcm$(EXE) -MID := ../../tools/mid2agb/mid2agb$(EXE) -SCANINC := ../../tools/scaninc/scaninc$(EXE) -PREPROC := ../../tools/preproc/preproc$(EXE) -RAMSCRGEN := ../../tools/ramscrgen/ramscrgen$(EXE) -FIX := ../../tools/gbafix/gbafix$(EXE) - -# Clear the default suffixes -.SUFFIXES: -# Don't delete intermediate files -.SECONDARY: -# Delete files that weren't built properly -.DELETE_ON_ERROR: - -# Secondary expansion is required for dependency variables in object rules. -.SECONDEXPANSION: - -.PHONY: all rom clean compare tidy - -C_SRCS := $(wildcard $(C_SUBDIR)/*.c $(C_SUBDIR)/*/*.c $(C_SUBDIR)/*/*/*.c) -C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS)) - -ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s) -ASM_OBJS := $(patsubst $(ASM_SUBDIR)/%.s,$(ASM_BUILDDIR)/%.o,$(ASM_SRCS)) - -DATA_ASM_SRCS := $(wildcard $(DATA_ASM_SUBDIR)/*.s) -DATA_ASM_OBJS := $(patsubst $(DATA_ASM_SUBDIR)/%.s,$(DATA_ASM_BUILDDIR)/%.o,$(DATA_ASM_SRCS)) - -SONG_SRCS := $(wildcard $(SONG_SUBDIR)/*.s) -SONG_OBJS := $(patsubst $(SONG_SUBDIR)/%.s,$(SONG_BUILDDIR)/%.o,$(SONG_SRCS)) - -MID_SRCS := $(wildcard $(MID_SUBDIR)/*.mid) -MID_OBJS := $(patsubst $(MID_SUBDIR)/%.mid,$(MID_BUILDDIR)/%.o,$(MID_SRCS)) - -OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS) $(MID_OBJS) -# OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS)) - -SUBDIRS := $(sort $(dir $(OBJS))) - -$(shell mkdir -p $(SUBDIRS)) - -$(C_BUILDDIR)/siirtc.o: CC1FLAGS := -mthumb-interwork -$(C_BUILDDIR)/agb_flash.o: CC1FLAGS := -O1 -mthumb-interwork -$(C_BUILDDIR)/agb_flash_1m.o: CC1FLAGS := -O1 -mthumb-interwork -$(C_BUILDDIR)/agb_flash_mx.o: CC1FLAGS := -O1 -mthumb-interwork -$(C_BUILDDIR)/agb_flash_le.o: CC1FLAGS := -O1 -mthumb-interwork - -all: rom - @: - -rom: $(ROM) -ifeq ($(COMPARE),1) - @$(SHA1) rom.sha1 -endif - -# For contributors to make sure a change didn't affect the contents of the ROM. -compare: ; @$(MAKE) COMPARE=1 - -clean: tidy - rm -f sound/direct_sound_samples/*.bin - rm -f $(SONG_OBJS) $(MID_OBJS) $(MID_SUBDIR)/*.s - find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} + - -tidy: - rm -f $(ROM) $(ELF) $(MAP) - rm -r build/* - -%.s: ; -%.png: ; -%.pal: ; -%.aif: ; - -%.1bpp: %.png ; $(GFX) $< $@ -%.4bpp: %.png ; $(GFX) $< $@ -%.8bpp: %.png ; $(GFX) $< $@ -%.gbapal: %.pal ; $(GFX) $< $@ -%.gbapal: %.png ; $(GFX) $< $@ -%.lz: % ; $(GFX) $< $@ -%.rl: % ; $(GFX) $< $@ - - -ifeq ($(NODEP),1) -$(C_BUILDDIR)/%.o: c_dep := -else -$(C_BUILDDIR)/%.o: c_dep = $(shell $(SCANINC) -I include $(C_SUBDIR)/$*.c) -endif - -$(C_BUILDDIR)/%.o : $(C_SUBDIR)/%.c $$(c_dep) - @$(CPP) $(CPPFLAGS) $< -o $(C_BUILDDIR)/$*.i - @$(PREPROC) $(C_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CC1FLAGS) -o $(C_BUILDDIR)/$*.s - @echo -e ".text\n\t.align\t2, 0\n" >> $(C_BUILDDIR)/$*.s - $(AS) $(ASFLAGS) -o $@ $(C_BUILDDIR)/$*.s - -ifeq ($(NODEP),1) -$(ASM_BUILDDIR)/%.o: asm_dep := -else -$(ASM_BUILDDIR)/%.o: asm_dep = $(shell $(SCANINC) $(ASM_SUBDIR)/$*.s) -endif - -$(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s $$(asm_dep) - $(AS) $(ASFLAGS) -o $@ $< - -ifeq ($(NODEP),1) -$(DATA_ASM_BUILDDIR)/%.o: data_dep := -else -$(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) $(DATA_ASM_SUBDIR)/$*.s) -endif - -$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep) - $(PREPROC) $< charmap.txt | $(CPP) -I include | $(AS) $(ASFLAGS) -o $@ - -$(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s - $(AS) $(ASFLAGS) -I sound -o $@ $< - -$(OBJ_DIR)/sym_bss.ld: sym_bss.txt - $(RAMSCRGEN) .bss $< ENGLISH > $@ - -$(OBJ_DIR)/sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt) - $(RAMSCRGEN) COMMON $< ENGLISH -c $(C_BUILDDIR),common_syms > $@ - -$(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt - $(RAMSCRGEN) ewram_data $< ENGLISH > $@ - -$(OBJ_DIR)/ld_script.ld: ld_script.txt $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld - cd $(OBJ_DIR) && sed -f ../../ld_script.sed ../$< | sed "s#tools/#../tools/#g" > ld_script.ld - -$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) - cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../$@ $(LIB) - -$(ROM): $(ELF) - $(OBJCOPY) -O binary $< $@ - diff --git a/berry_fix/payload/asm/crt0.s b/berry_fix/payload/asm/crt0.s deleted file mode 100644 index 2bca006365..0000000000 --- a/berry_fix/payload/asm/crt0.s +++ /dev/null @@ -1,82 +0,0 @@ - .include "asm/macros/function.inc" - .include "constants/gba_constants.inc" - - .syntax unified - - .text - - .arm - .align 2, 0 - .global Init -Init: - mov r0, #PSR_IRQ_MODE - msr cpsr_cf, r0 - ldr sp, sp_irq - mov r0, #PSR_SYS_MODE - msr cpsr_cf, r0 - ldr sp, sp_sys - ldr r1, =INTR_VECTOR - ldr r0, =IntrMain - str r0, [r1] - ldr r1, =AgbMain + 1 - mov lr, pc - bx r1 - b Init - - .align 2, 0 -sp_sys: .word IWRAM_END - 0x100 -sp_irq: .word IWRAM_END - 0x60 - - .pool - .size Init, .-Init - - .arm - .align 2, 0 - .global IntrMain -IntrMain: @ 0x2010048 - mov ip, #REG_BASE - add r3, ip, #OFFSET_REG_IE - ldr r2, [r3] - and r1, r2, r2, lsr #16 - mov r2, #0 - ands r0, r1, #0x2000 - strbne r0, [r3, #-0x17c] -_02010064: - bne _02010064 - ands r0, r1, #0xc0 - bne _020100DC - add r2, r2, #4 - ands r0, r1, #1 - strhne r0, [ip, #-8] - bne _020100DC - add r2, r2, #4 - ands r0, r1, #2 - bne _020100DC - add r2, r2, #4 - ands r0, r1, #4 - bne _020100DC - add r2, r2, #4 - ands r0, r1, #0x100 - bne _020100DC - add r2, r2, #4 - ands r0, r1, #0x200 - bne _020100DC - add r2, r2, #4 - ands r0, r1, #0x400 - bne _020100DC - add r2, r2, #4 - ands r0, r1, #0x800 - bne _020100DC - add r2, r2, #4 - ands r0, r1, #0x1000 - bne _020100DC - add r2, r2, #4 - ands r0, r1, #8 -_020100DC: - strh r0, [r3, #2] - ldr r1, =gIntrTable - add r1, r1, r2 - ldr r0, [r1] - bx r0 - .pool - .size IntrMain, .-IntrMain diff --git a/berry_fix/payload/asm/libagbsyscall.s b/berry_fix/payload/asm/libagbsyscall.s deleted file mode 100644 index 9548e80d28..0000000000 --- a/berry_fix/payload/asm/libagbsyscall.s +++ /dev/null @@ -1,46 +0,0 @@ - .include "asm/macros/function.inc" - .include "constants/gba_constants.inc" - - .syntax unified - - .text - - thumb_func_start CpuSet -CpuSet: @ 81E3B64 - svc 0xB - bx lr - thumb_func_end CpuSet - - thumb_func_start Div -Div: @ 81E3B68 - svc 0x6 - bx lr - thumb_func_end Div - - thumb_func_start Mod -Mod: - svc 0x6 - adds r0, r1, 0 - bx lr - thumb_func_end Mod - - thumb_func_start LZ77UnCompVram -LZ77UnCompVram: @ 81E3B6C - svc 0x12 - bx lr - thumb_func_end LZ77UnCompVram - - thumb_func_start RegisterRamReset -RegisterRamReset: @ 81E3B80 - svc 0x1 - bx lr - thumb_func_end RegisterRamReset - - thumb_func_start VBlankIntrWait -VBlankIntrWait: @ 81E3BA0 - movs r2, 0 - svc 0x5 - bx lr - thumb_func_end VBlankIntrWait - - .align 2, 0 @ Don't pad with nop. diff --git a/berry_fix/payload/asm/macros/function.inc b/berry_fix/payload/asm/macros/function.inc deleted file mode 100644 index 67fb373a80..0000000000 --- a/berry_fix/payload/asm/macros/function.inc +++ /dev/null @@ -1,29 +0,0 @@ - .macro arm_func_start name - .align 2, 0 - .global \name - .arm - .type \name, function - .endm - - .macro arm_func_end name - .size \name, .-\name - .endm - - .macro thumb_func_start name - .align 2, 0 - .global \name - .thumb - .thumb_func - .type \name, function - .endm - - .macro non_word_aligned_thumb_func_start name - .global \name - .thumb - .thumb_func - .type \name, function - .endm - - .macro thumb_func_end name - .size \name, .-\name - .endm diff --git a/berry_fix/payload/charmap.txt b/berry_fix/payload/charmap.txt deleted file mode 100644 index 1c143ada4f..0000000000 --- a/berry_fix/payload/charmap.txt +++ /dev/null @@ -1,1067 +0,0 @@ -' ' = 00 -'À' = 01 -'Á' = 02 -'Â' = 03 -'Ç' = 04 -'È' = 05 -'É' = 06 -'Ê' = 07 -'Ë' = 08 -'Ì' = 09 -'Î' = 0B -'Ï' = 0C -'Ò' = 0D -'Ó' = 0E -'Ô' = 0F -'Œ' = 10 -'Ù' = 11 -'Ú' = 12 -'Û' = 13 -'Ñ' = 14 -'ß' = 15 -'à' = 16 -'á' = 17 -'ç' = 19 -'è' = 1A -'é' = 1B -'ê' = 1C -'ë' = 1D -'ì' = 1E -'î' = 20 -'ï' = 21 -'ò' = 22 -'ó' = 23 -'ô' = 24 -'œ' = 25 -'ù' = 26 -'ú' = 27 -'û' = 28 -'ñ' = 29 -'º' = 2A -'ª' = 2B -SUPER_ER = 2C -'&' = 2D -'+' = 2E -LV = 34 -'=' = 35 -';' = 36 -'¿' = 51 -'¡' = 52 -PK = 53 -PKMN = 53 54 -POKEBLOCK = 55 56 57 58 59 -'Í' = 5A -'%' = 5B -'(' = 5C -')' = 5D -'â' = 68 -'í' = 6F -UNK_SPACER = 77 -UP_ARROW = 79 -DOWN_ARROW = 7A -LEFT_ARROW = 7B -RIGHT_ARROW = 7C -'0' = A1 -'1' = A2 -'2' = A3 -'3' = A4 -'4' = A5 -'5' = A6 -'6' = A7 -'7' = A8 -'8' = A9 -'9' = AA -'!' = AB -'?' = AC -'.' = AD -'-' = AE -'·' = AF -'…' = B0 -'“' = B1 -'”' = B2 -'‘' = B3 -'’' = B4 -'♂' = B5 -'♀' = B6 -'¥' = B7 -',' = B8 -'×' = B9 -'/' = BA -'A' = BB -'B' = BC -'C' = BD -'D' = BE -'E' = BF -'F' = C0 -'G' = C1 -'H' = C2 -'I' = C3 -'J' = C4 -'K' = C5 -'L' = C6 -'M' = C7 -'N' = C8 -'O' = C9 -'P' = CA -'Q' = CB -'R' = CC -'S' = CD -'T' = CE -'U' = CF -'V' = D0 -'W' = D1 -'X' = D2 -'Y' = D3 -'Z' = D4 -'a' = D5 -'b' = D6 -'c' = D7 -'d' = D8 -'e' = D9 -'f' = DA -'g' = DB -'h' = DC -'i' = DD -'j' = DE -'k' = DF -'l' = E0 -'m' = E1 -'n' = E2 -'o' = E3 -'p' = E4 -'q' = E5 -'r' = E6 -'s' = E7 -'t' = E8 -'u' = E9 -'v' = EA -'w' = EB -'x' = EC -'y' = ED -'z' = EE -'▶' = EF -':' = F0 -'Ä' = F1 -'Ö' = F2 -'Ü' = F3 -'ä' = F4 -'ö' = F5 -'ü' = F6 -TALL_PLUS = FC 0C FB -'$' = FF - -@ Hiragana -'あ' = 01 -'い' = 02 -'う' = 03 -'え' = 04 -'お' = 05 -'か' = 06 -'き' = 07 -'く' = 08 -'け' = 09 -'こ' = 0A -'さ' = 0B -'し' = 0C -'す' = 0D -'せ' = 0E -'そ' = 0F -'た' = 10 -'ち' = 11 -'つ' = 12 -'て' = 13 -'と' = 14 -'な' = 15 -'に' = 16 -'ぬ' = 17 -'ね' = 18 -'の' = 19 -'は' = 1A -'ひ' = 1B -'ふ' = 1C -'へ' = 1D -'ほ' = 1E -'ま' = 1F -'み' = 20 -'む' = 21 -'め' = 22 -'も' = 23 -'や' = 24 -'ゆ' = 25 -'よ' = 26 -'ら' = 27 -'り' = 28 -'る' = 29 -'れ' = 2A -'ろ' = 2B -'わ' = 2C -'を' = 2D -'ん' = 2E -'ぁ' = 2F -'ぃ' = 30 -'ぅ' = 31 -'ぇ' = 32 -'ぉ' = 33 -'ゃ' = 34 -'ゅ' = 35 -'ょ' = 36 -'が' = 37 -'ぎ' = 38 -'ぐ' = 39 -'げ' = 3A -'ご' = 3B -'ざ' = 3C -'じ' = 3D -'ず' = 3E -'ぜ' = 3F -'ぞ' = 40 -'だ' = 41 -'ぢ' = 42 -'づ' = 43 -'で' = 44 -'ど' = 45 -'ば' = 46 -'び' = 47 -'ぶ' = 48 -'べ' = 49 -'ぼ' = 4A -'ぱ' = 4B -'ぴ' = 4C -'ぷ' = 4D -'ぺ' = 4E -'ぽ' = 4F -'っ' = 50 - -@ Katakana -'ア' = 51 -'イ' = 52 -'ウ' = 53 -'エ' = 54 -'オ' = 55 -'カ' = 56 -'キ' = 57 -'ク' = 58 -'ケ' = 59 -'コ' = 5A -'サ' = 5B -'シ' = 5C -'ス' = 5D -'セ' = 5E -'ソ' = 5F -'タ' = 60 -'チ' = 61 -'ツ' = 62 -'テ' = 63 -'ト' = 64 -'ナ' = 65 -'ニ' = 66 -'ヌ' = 67 -'ネ' = 68 -'ノ' = 69 -'ハ' = 6A -'ヒ' = 6B -'フ' = 6C -'ヘ' = 6D -'ホ' = 6E -'マ' = 6F -'ミ' = 70 -'ム' = 71 -'メ' = 72 -'モ' = 73 -'ヤ' = 74 -'ユ' = 75 -'ヨ' = 76 -'ラ' = 77 -'リ' = 78 -'ル' = 79 -'レ' = 7A -'ロ' = 7B -'ワ' = 7C -'ヲ' = 7D -'ン' = 7E -'ァ' = 7F -'ィ' = 80 -'ゥ' = 81 -'ェ' = 82 -'ォ' = 83 -'ャ' = 84 -'ュ' = 85 -'ョ' = 86 -'ガ' = 87 -'ギ' = 88 -'グ' = 89 -'ゲ' = 8A -'ゴ' = 8B -'ザ' = 8C -'ジ' = 8D -'ズ' = 8E -'ゼ' = 8F -'ゾ' = 90 -'ダ' = 91 -'ヂ' = 92 -'ヅ' = 93 -'デ' = 94 -'ド' = 95 -'バ' = 96 -'ビ' = 97 -'ブ' = 98 -'ベ' = 99 -'ボ' = 9A -'パ' = 9B -'ピ' = 9C -'プ' = 9D -'ペ' = 9E -'ポ' = 9F -'ッ' = A0 - -@ Japanese punctuation -' ' = 00 -'!' = AB -'?' = AC -'。' = AD -'ー' = AE -'⋯' = B0 - -STRING = FD - -@ string placeholders -PLAYER = FD 01 -STR_VAR_1 = FD 02 -STR_VAR_2 = FD 03 -STR_VAR_3 = FD 04 -KUN = FD 05 -RIVAL = FD 06 -@ version-dependent strings (originally made for Ruby/Sapphire differences) -@ Emerald uses the Sapphire strings (except for VERSION). -VERSION = FD 07 @ "EMERALD" -AQUA = FD 08 -MAGMA = FD 09 -ARCHIE = FD 0A -MAXIE = FD 0B -KYOGRE = FD 0C -GROUDON = FD 0D - -@ battle string placeholders - -B_BUFF1 = FD 00 -B_BUFF2 = FD 01 -B_COPY_VAR_1 = FD 02 -B_COPY_VAR_2 = FD 03 -B_COPY_VAR_3 = FD 04 -B_PLAYER_MON1_NAME = FD 05 -B_OPPONENT_MON1_NAME = FD 06 -B_PLAYER_MON2_NAME = FD 07 -B_OPPONENT_MON2_NAME = FD 08 -B_LINK_PLAYER_MON1_NAME = FD 09 -B_LINK_OPPONENT_MON1_NAME = FD 0A -B_LINK_PLAYER_MON2_NAME = FD 0B -B_LINK_OPPONENT_MON2_NAME = FD 0C -B_ATK_NAME_WITH_PREFIX_MON1 = FD 0D -B_ATK_PARTNER_NAME = FD 0E -B_ATK_NAME_WITH_PREFIX = FD 0F -B_DEF_NAME_WITH_PREFIX = FD 10 -B_EFF_NAME_WITH_PREFIX = FD 11 @ EFF = short for gEffectBattler -B_ACTIVE_NAME_WITH_PREFIX = FD 12 -B_SCR_ACTIVE_NAME_WITH_PREFIX = FD 13 -B_CURRENT_MOVE = FD 14 -B_LAST_MOVE = FD 15 -B_LAST_ITEM = FD 16 -B_LAST_ABILITY = FD 17 -B_ATK_ABILITY = FD 18 -B_DEF_ABILITY = FD 19 -B_SCR_ACTIVE_ABILITY = FD 1A -B_EFF_ABILITY = FD 1B -B_TRAINER1_CLASS = FD 1C -B_TRAINER1_NAME = FD 1D -B_LINK_PLAYER_NAME = FD 1E -B_LINK_PARTNER_NAME = FD 1F -B_LINK_OPPONENT1_NAME = FD 20 -B_LINK_OPPONENT2_NAME = FD 21 -B_LINK_SCR_TRAINER_NAME = FD 22 -B_PLAYER_NAME = FD 23 -B_TRAINER1_LOSE_TEXT = FD 24 -B_TRAINER1_WIN_TEXT = FD 25 -B_26 = FD 26 -B_PC_CREATOR_NAME = FD 27 -B_ATK_PREFIX1 = FD 28 -B_DEF_PREFIX1 = FD 29 -B_ATK_PREFIX2 = FD 2A -B_DEF_PREFIX2 = FD 2B -B_ATK_PREFIX3 = FD 2C -B_DEF_PREFIX3 = FD 2D -B_TRAINER2_CLASS = FD 2E -B_TRAINER2_NAME = FD 2F -B_TRAINER2_LOSE_TEXT = FD 30 -B_TRAINER2_WIN_TEXT = FD 31 -B_PARTNER_CLASS = FD 32 -B_PARTNER_NAME = FD 33 -B_BUFF3 = FD 34 - -@ indicates the end of a town/city name (before " TOWN" or " CITY") -NAME_END = FC 00 - -@ special 0xF7 character -SPECIAL_F7 = F7 - -@ more text functions - -COLOR = FC 01 @ use a color listed below right after -HIGHLIGHT = FC 02 @ same as fc 01 -SHADOW = FC 03 @ same as fc 01 -COLOR_HIGHLIGHT_SHADOW = FC 04 @ takes 3 bytes -PALETTE = FC 05 @ used in credits -SIZE = FC 06 @ note that anything other than "SMALL" is invalid -UNKNOWN_7 = FC 07 -PAUSE = FC 08 @ manually print the wait byte after this, havent mapped them -PAUSE_UNTIL_PRESS = FC 09 -WAIT_SE = FC 0A -PLAY_BGM = FC 0B -ESCAPE = FC 0C -SHIFT_TEXT = FC 0D -UNKNOWN_E = FC 0E -UNKNOWN_F = FC 0F -PLAY_SE = FC 10 -CLEAR = FC 11 -SKIP = FC 12 -CLEAR_TO = FC 13 -UNKNOWN_14 = FC 14 -JPN = FC 15 -ENG = FC 16 -PAUSE_MUSIC = FC 17 -RESUME_MUSIC = FC 18 - -@ colors - -TRANSPARENT = 00 -WHITE = 01 -DARK_GRAY = 02 -LIGHT_GRAY = 03 -RED = 04 -LIGHT_RED = 05 -GREEN = 06 -LIGHT_GREEN = 07 -BLUE = 08 -LIGHT_BLUE = 09 -@ these next colors can be set to anything arbitrary at runtime -@ usually though they'll have the textbox border colors as described below -DYNAMIC_COLOR1 = 0A @ white -DYNAMIC_COLOR2 = 0B @ white with a tinge of green -DYNAMIC_COLOR3 = 0C @ white 2 -DYNAMIC_COLOR4 = 0D @ aquamarine -DYNAMIC_COLOR5 = 0E @ blue-green -DYNAMIC_COLOR6 = 0F @ cerulean - -@ sound and music - -MUS_DUMMY = 00 00 -SE_USE_ITEM = 01 00 -SE_PC_LOGIN = 02 00 -SE_PC_OFF = 03 00 -SE_PC_ON = 04 00 -SE_SELECT = 05 00 -SE_WIN_OPEN = 06 00 -SE_WALL_HIT = 07 00 -SE_DOOR = 08 00 -SE_EXIT = 09 00 -SE_LEDGE = 0A 00 -SE_BIKE_BELL = 0B 00 -SE_NOT_EFFECTIVE = 0C 00 -SE_EFFECTIVE = 0D 00 -SE_SUPER_EFFECTIVE = 0E 00 -SE_BALL_OPEN = 0F 00 -SE_FAINT = 10 00 -SE_FLEE = 11 00 -SE_SLIDING_DOOR = 12 00 -SE_SHIP = 13 00 -SE_BANG = 14 00 -SE_PIN = 15 00 -SE_BOO = 16 00 -SE_BALL = 17 00 -SE_CONTEST_PLACE = 18 00 -SE_A = 19 00 -SE_I = 1A 00 -SE_U = 1B 00 -SE_E = 1C 00 -SE_O = 1D 00 -SE_N = 1E 00 -SE_SUCCESS = 1F 00 -SE_FAILURE = 20 00 -SE_EXP = 21 00 -SE_BIKE_HOP = 22 00 -SE_SWITCH = 23 00 -SE_CLICK = 24 00 -SE_FU_ZAKU = 25 00 -SE_CONTEST_CONDITION_LOSE = 26 00 -SE_LAVARIDGE_FALL_WARP = 27 00 -SE_ICE_STAIRS = 28 00 -SE_ICE_BREAK = 29 00 -SE_ICE_CRACK = 2A 00 -SE_FALL = 2B 00 -SE_UNLOCK = 2C 00 -SE_WARP_IN = 2D 00 -SE_WARP_OUT = 2E 00 -SE_REPEL = 2F 00 -SE_ROTATING_GATE = 30 00 -SE_TRUCK_MOVE = 31 00 -SE_TRUCK_STOP = 32 00 -SE_TRUCK_UNLOAD = 33 00 -SE_TRUCK_DOOR = 34 00 -SE_BERRY_BLENDER = 35 00 -SE_CARD = 36 00 -SE_SAVE = 37 00 -SE_BALL_BOUNCE_1 = 38 00 -SE_BALL_BOUNCE_2 = 39 00 -SE_BALL_BOUNCE_3 = 3A 00 -SE_BALL_BOUNCE_4 = 3B 00 -SE_BALL_TRADE = 3C 00 -SE_BALL_THROW = 3D 00 -SE_NOTE_C = 3E 00 -SE_NOTE_D = 3F 00 -SE_NOTE_E = 40 00 -SE_NOTE_F = 41 00 -SE_NOTE_G = 42 00 -SE_NOTE_A = 43 00 -SE_NOTE_B = 44 00 -SE_NOTE_C_HIGH = 45 00 -SE_PUDDLE = 46 00 -SE_BRIDGE_WALK = 47 00 -SE_ITEMFINDER = 48 00 -SE_DING_DONG = 49 00 -SE_BALLOON_RED = 4A 00 -SE_BALLOON_BLUE = 4B 00 -SE_BALLOON_YELLOW = 4C 00 -SE_BREAKABLE_DOOR = 4D 00 -SE_MUD_BALL = 4E 00 -SE_FIELD_POISON = 4F 00 -SE_ESCALATOR = 50 00 -SE_THUNDERSTORM = 51 00 -SE_THUNDERSTORM_STOP = 52 00 -SE_DOWNPOUR = 53 00 -SE_DOWNPOUR_STOP = 54 00 -SE_RAIN = 55 00 -SE_RAIN_STOP = 56 00 -SE_THUNDER = 57 00 -SE_THUNDER2 = 58 00 -SE_ELEVATOR = 59 00 -SE_LOW_HEALTH = 5A 00 -SE_EXP_MAX = 5B 00 -SE_ROULETTE_BALL = 5C 00 -SE_ROULETTE_BALL2 = 5D 00 -SE_TAILLOW_WING_FLAP = 5E 00 -SE_SHOP = 5F 00 -SE_CONTEST_HEART = 60 00 -SE_CONTEST_CURTAIN_RISE = 61 00 -SE_CONTEST_CURTAIN_FALL = 62 00 -SE_CONTEST_ICON_CHANGE = 63 00 -SE_CONTEST_ICON_CLEAR = 64 00 -SE_CONTEST_MONS_TURN = 65 00 -SE_SHINY = 66 00 -SE_INTRO_BLAST = 67 00 -SE_MUGSHOT = 68 00 -SE_APPLAUSE = 69 00 -SE_VEND = 6A 00 -SE_ORB = 6B 00 -SE_DEX_SCROLL = 6C 00 -SE_DEX_PAGE = 6D 00 -SE_POKENAV_ON = 6E 00 -SE_POKENAV_OFF = 6F 00 -SE_DEX_SEARCH = 70 00 -SE_EGG_HATCH = 71 00 -SE_BALL_TRAY_ENTER = 72 00 -SE_BALL_TRAY_BALL = 73 00 -SE_BALL_TRAY_EXIT = 74 00 -SE_GLASS_FLUTE = 75 00 -SE_M_THUNDERBOLT = 76 00 -SE_M_THUNDERBOLT2 = 77 00 -SE_M_HARDEN = 78 00 -SE_M_NIGHTMARE = 79 00 -SE_M_VITAL_THROW = 7A 00 -SE_M_VITAL_THROW2 = 7B 00 -SE_M_BUBBLE = 7C 00 -SE_M_BUBBLE2 = 7D 00 -SE_M_BUBBLE3 = 7E 00 -SE_M_RAIN_DANCE = 7F 00 -SE_M_CUT = 80 00 -SE_M_STRING_SHOT = 81 00 -SE_M_STRING_SHOT2 = 82 00 -SE_M_ROCK_THROW = 83 00 -SE_M_GUST = 84 00 -SE_M_GUST2 = 85 00 -SE_M_DOUBLE_SLAP = 86 00 -SE_M_DOUBLE_TEAM = 87 00 -SE_M_RAZOR_WIND = 88 00 -SE_M_ICY_WIND = 89 00 -SE_M_THUNDER_WAVE = 8A 00 -SE_M_COMET_PUNCH = 8B 00 -SE_M_MEGA_KICK = 8C 00 -SE_M_MEGA_KICK2 = 8D 00 -SE_M_CRABHAMMER = 8E 00 -SE_M_JUMP_KICK = 8F 00 -SE_M_FLAME_WHEEL = 90 00 -SE_M_FLAME_WHEEL2 = 91 00 -SE_M_FLAMETHROWER = 92 00 -SE_M_FIRE_PUNCH = 93 00 -SE_M_TOXIC = 94 00 -SE_M_SACRED_FIRE = 95 00 -SE_M_SACRED_FIRE2 = 96 00 -SE_M_EMBER = 97 00 -SE_M_TAKE_DOWN = 98 00 -SE_M_BLIZZARD = 99 00 -SE_M_BLIZZARD2 = 9A 00 -SE_M_SCRATCH = 9B 00 -SE_M_VICEGRIP = 9C 00 -SE_M_WING_ATTACK = 9D 00 -SE_M_FLY = 9E 00 -SE_M_SAND_ATTACK = 9F 00 -SE_M_RAZOR_WIND2 = A0 00 -SE_M_BITE = A1 00 -SE_M_HEADBUTT = A2 00 -SE_M_SURF = A3 00 -SE_M_HYDRO_PUMP = A4 00 -SE_M_WHIRLPOOL = A5 00 -SE_M_HORN_ATTACK = A6 00 -SE_M_TAIL_WHIP = A7 00 -SE_M_MIST = A8 00 -SE_M_POISON_POWDER = A9 00 -SE_M_BIND = AA 00 -SE_M_DRAGON_RAGE = AB 00 -SE_M_SING = AC 00 -SE_M_PERISH_SONG = AD 00 -SE_M_PAY_DAY = AE 00 -SE_M_DIG = AF 00 -SE_M_DIZZY_PUNCH = B0 00 -SE_M_SELF_DESTRUCT = B1 00 -SE_M_EXPLOSION = B2 00 -SE_M_ABSORB_2 = B3 00 -SE_M_ABSORB = B4 00 -SE_M_SCREECH = B5 00 -SE_M_BUBBLE_BEAM = B6 00 -SE_M_BUBBLE_BEAM2 = B7 00 -SE_M_SUPERSONIC = B8 00 -SE_M_BELLY_DRUM = B9 00 -SE_M_METRONOME = BA 00 -SE_M_BONEMERANG = BB 00 -SE_M_LICK = BC 00 -SE_M_PSYBEAM = BD 00 -SE_M_FAINT_ATTACK = BE 00 -SE_M_SWORDS_DANCE = BF 00 -SE_M_LEER = C0 00 -SE_M_SWAGGER = C1 00 -SE_M_SWAGGER2 = C2 00 -SE_M_HEAL_BELL = C3 00 -SE_M_CONFUSE_RAY = C4 00 -SE_M_SNORE = C5 00 -SE_M_BRICK_BREAK = C6 00 -SE_M_GIGA_DRAIN = C7 00 -SE_M_PSYBEAM2 = C8 00 -SE_M_SOLAR_BEAM = C9 00 -SE_M_PETAL_DANCE = CA 00 -SE_M_TELEPORT = CB 00 -SE_M_MINIMIZE = CC 00 -SE_M_SKETCH = CD 00 -SE_M_SWIFT = CE 00 -SE_M_REFLECT = CF 00 -SE_M_BARRIER = D0 00 -SE_M_DETECT = D1 00 -SE_M_LOCK_ON = D2 00 -SE_M_MOONLIGHT = D3 00 -SE_M_CHARM = D4 00 -SE_M_CHARGE = D5 00 -SE_M_STRENGTH = D6 00 -SE_M_HYPER_BEAM = D7 00 -SE_M_WATERFALL = D8 00 -SE_M_REVERSAL = D9 00 -SE_M_ACID_ARMOR = DA 00 -SE_M_SANDSTORM = DB 00 -SE_M_TRI_ATTACK = DC 00 -SE_M_TRI_ATTACK2 = DD 00 -SE_M_ENCORE = DE 00 -SE_M_ENCORE2 = DF 00 -SE_M_BATON_PASS = E0 00 -SE_M_MILK_DRINK = E1 00 -SE_M_ATTRACT = E2 00 -SE_M_ATTRACT2 = E3 00 -SE_M_MORNING_SUN = E4 00 -SE_M_FLATTER = E5 00 -SE_M_SAND_TOMB = E6 00 -SE_M_GRASSWHISTLE = E7 00 -SE_M_SPIT_UP = E8 00 -SE_M_DIVE = E9 00 -SE_M_EARTHQUAKE = EA 00 -SE_M_TWISTER = EB 00 -SE_M_SWEET_SCENT = EC 00 -SE_M_YAWN = ED 00 -SE_M_SKY_UPPERCUT = EE 00 -SE_M_STAT_INCREASE = EF 00 -SE_M_HEAT_WAVE = F0 00 -SE_M_UPROAR = F1 00 -SE_M_HAIL = F2 00 -SE_M_COSMIC_POWER = F3 00 -SE_M_TEETER_DANCE = F4 00 -SE_M_STAT_DECREASE = F5 00 -SE_M_HAZE = F6 00 -SE_M_HYPER_BEAM2 = F7 00 -SE_RG_DOOR = F8 00 -SE_RG_CARD_FLIP = F9 00 -SE_RG_CARD_FLIPPING = FA 00 -SE_RG_CARD_OPEN = FB 00 -SE_RG_BAG_CURSOR = FC 00 -SE_RG_BAG_POCKET = FD 00 -SE_RG_BALL_CLICK = FE 00 -SE_RG_SHOP = FF 00 -SE_RG_SS_ANNE_HORN = 00 01 -SE_RG_HELP_OPEN = 01 01 -SE_RG_HELP_CLOSE = 02 01 -SE_RG_HELP_ERROR = 03 01 -SE_RG_DEOXYS_MOVE = 04 01 -SE_RG_POKE_JUMP_SUCCESS = 05 01 -SE_RG_POKE_JUMP_FAILURE = 06 01 -SE_POKENAV_CALL = 07 01 -SE_POKENAV_HANG_UP = 08 01 -SE_ARENA_TIMEUP1 = 09 01 -SE_ARENA_TIMEUP2 = 0A 01 -SE_PIKE_CURTAIN_CLOSE = 0B 01 -SE_PIKE_CURTAIN_OPEN = 0C 01 -SE_SUDOWOODO_SHAKE = 0D 01 -MUS_LITTLEROOT_TEST = 5E 01 -MUS_GSC_ROUTE38 = 5F 01 -MUS_CAUGHT = 60 01 -MUS_VICTORY_WILD = 61 01 -MUS_VICTORY_GYM_LEADER = 62 01 -MUS_VICTORY_LEAGUE = 63 01 -MUS_C_COMM_CENTER = 64 01 -MUS_GSC_PEWTER = 65 01 -MUS_C_VS_LEGEND_BEAST = 66 01 -MUS_ROUTE101 = 67 01 -MUS_ROUTE110 = 68 01 -MUS_ROUTE120 = 69 01 -MUS_PETALBURG = 6A 01 -MUS_OLDALE = 6B 01 -MUS_GYM = 6C 01 -MUS_SURF = 6D 01 -MUS_PETALBURG_WOODS = 6E 01 -MUS_LEVEL_UP = 6F 01 -MUS_HEAL = 70 01 -MUS_OBTAIN_BADGE = 71 01 -MUS_OBTAIN_ITEM = 72 01 -MUS_EVOLVED = 73 01 -MUS_OBTAIN_TMHM = 74 01 -MUS_LILYCOVE_MUSEUM = 75 01 -MUS_ROUTE122 = 76 01 -MUS_OCEANIC_MUSEUM = 77 01 -MUS_EVOLUTION_INTRO = 78 01 -MUS_EVOLUTION = 79 01 -MUS_MOVE_DELETED = 7A 01 -MUS_ENCOUNTER_GIRL = 7B 01 -MUS_ENCOUNTER_MALE = 7C 01 -MUS_ABANDONED_SHIP = 7D 01 -MUS_FORTREE = 7E 01 -MUS_BIRCH_LAB = 7F 01 -MUS_B_TOWER_RS = 80 01 -MUS_ENCOUNTER_SWIMMER = 81 01 -MUS_CAVE_OF_ORIGIN = 82 01 -MUS_OBTAIN_BERRY = 83 01 -MUS_AWAKEN_LEGEND = 84 01 -MUS_SLOTS_JACKPOT = 85 01 -MUS_SLOTS_WIN = 86 01 -MUS_TOO_BAD = 87 01 -MUS_ROULETTE = 88 01 -MUS_LINK_CONTEST_P1 = 89 01 -MUS_LINK_CONTEST_P2 = 8A 01 -MUS_LINK_CONTEST_P3 = 8B 01 -MUS_LINK_CONTEST_P4 = 8C 01 -MUS_ENCOUNTER_RICH = 8D 01 -MUS_VERDANTURF = 8E 01 -MUS_RUSTBORO = 8F 01 -MUS_POKE_CENTER = 90 01 -MUS_ROUTE104 = 91 01 -MUS_ROUTE119 = 92 01 -MUS_CYCLING = 93 01 -MUS_POKE_MART = 94 01 -MUS_LITTLEROOT = 95 01 -MUS_MT_CHIMNEY = 96 01 -MUS_ENCOUNTER_FEMALE = 97 01 -MUS_LILYCOVE = 98 01 -MUS_ROUTE111 = 99 01 -MUS_HELP = 9A 01 -MUS_UNDERWATER = 9B 01 -MUS_VICTORY_TRAINER = 9C 01 -MUS_TITLE = 9D 01 -MUS_INTRO = 9E 01 -MUS_ENCOUNTER_MAY = 9F 01 -MUS_ENCOUNTER_INTENSE = A0 01 -MUS_ENCOUNTER_COOL = A1 01 -MUS_ROUTE113 = A2 01 -MUS_ENCOUNTER_AQUA = A3 01 -MUS_FOLLOW_ME = A4 01 -MUS_ENCOUNTER_BRENDAN = A5 01 -MUS_EVER_GRANDE = A6 01 -MUS_ENCOUNTER_SUSPICIOUS = A7 01 -MUS_VICTORY_AQUA_MAGMA = A8 01 -MUS_CABLE_CAR = A9 01 -MUS_GAME_CORNER = AA 01 -MUS_DEWFORD = AB 01 -MUS_SAFARI_ZONE = AC 01 -MUS_VICTORY_ROAD = AD 01 -MUS_AQUA_MAGMA_HIDEOUT = AE 01 -MUS_SAILING = AF 01 -MUS_MT_PYRE = B0 01 -MUS_SLATEPORT = B1 01 -MUS_MT_PYRE_EXTERIOR = B2 01 -MUS_SCHOOL = B3 01 -MUS_HALL_OF_FAME = B4 01 -MUS_FALLARBOR = B5 01 -MUS_SEALED_CHAMBER = B6 01 -MUS_CONTEST_WINNER = B7 01 -MUS_CONTEST = B8 01 -MUS_ENCOUNTER_MAGMA = B9 01 -MUS_INTRO_BATTLE = BA 01 -MUS_ABNORMAL_WEATHER = BB 01 -MUS_WEATHER_GROUDON = BC 01 -MUS_SOOTOPOLIS = BD 01 -MUS_CONTEST_RESULTS = BE 01 -MUS_HALL_OF_FAME_ROOM = BF 01 -MUS_TRICK_HOUSE = C0 01 -MUS_ENCOUNTER_TWINS = C1 01 -MUS_ENCOUNTER_ELITE_FOUR = C2 01 -MUS_ENCOUNTER_HIKER = C3 01 -MUS_CONTEST_LOBBY = C4 01 -MUS_ENCOUNTER_INTERVIEWER = C5 01 -MUS_ENCOUNTER_CHAMPION = C6 01 -MUS_CREDITS = C7 01 -MUS_END = C8 01 -MUS_B_FRONTIER = C9 01 -MUS_B_ARENA = CA 01 -MUS_OBTAIN_B_POINTS = CB 01 -MUS_REGISTER_MATCH_CALL = CC 01 -MUS_B_PYRAMID = CD 01 -MUS_B_PYRAMID_TOP = CE 01 -MUS_B_PALACE = CF 01 -MUS_RAYQUAZA_APPEARS = D0 01 -MUS_B_TOWER = D1 01 -MUS_OBTAIN_SYMBOL = D2 01 -MUS_B_DOME = D3 01 -MUS_B_PIKE = D4 01 -MUS_B_FACTORY = D5 01 -MUS_VS_RAYQUAZA = D6 01 -MUS_VS_FRONTIER_BRAIN = D7 01 -MUS_VS_MEW = D8 01 -MUS_B_DOME_LOBBY = D9 01 -MUS_VS_WILD = DA 01 -MUS_VS_AQUA_MAGMA = DB 01 -MUS_VS_TRAINER = DC 01 -MUS_VS_GYM_LEADER = DD 01 -MUS_VS_CHAMPION = DE 01 -MUS_VS_REGI = DF 01 -MUS_VS_KYOGRE_GROUDON = E0 01 -MUS_VS_RIVAL = E1 01 -MUS_VS_ELITE_FOUR = E2 01 -MUS_VS_AQUA_MAGMA_LEADER = E3 01 -MUS_RG_FOLLOW_ME = E4 01 -MUS_RG_GAME_CORNER = E5 01 -MUS_RG_ROCKET_HIDEOUT = E6 01 -MUS_RG_GYM = E7 01 -MUS_RG_JIGGLYPUFF = E8 01 -MUS_RG_INTRO_FIGHT = E9 01 -MUS_RG_TITLE = EA 01 -MUS_RG_CINNABAR = EB 01 -MUS_RG_LAVENDER = EC 01 -MUS_RG_HEAL = ED 01 -MUS_RG_CYCLING = EE 01 -MUS_RG_ENCOUNTER_ROCKET = EF 01 -MUS_RG_ENCOUNTER_GIRL = F0 01 -MUS_RG_ENCOUNTER_BOY = F1 01 -MUS_RG_HALL_OF_FAME = F2 01 -MUS_RG_VIRIDIAN_FOREST = F3 01 -MUS_RG_MT_MOON = F4 01 -MUS_RG_POKE_MANSION = F5 01 -MUS_RG_CREDITS = F6 01 -MUS_RG_ROUTE1 = F7 01 -MUS_RG_ROUTE24 = F8 01 -MUS_RG_ROUTE3 = F9 01 -MUS_RG_ROUTE11 = FA 01 -MUS_RG_VICTORY_ROAD = FB 01 -MUS_RG_VS_GYM_LEADER = FC 01 -MUS_RG_VS_TRAINER = FD 01 -MUS_RG_VS_WILD = FE 01 -MUS_RG_VS_CHAMPION = FF 01 -MUS_RG_PALLET = 00 02 -MUS_RG_OAK_LAB = 01 02 -MUS_RG_OAK = 02 02 -MUS_RG_POKE_CENTER = 03 02 -MUS_RG_SS_ANNE = 04 02 -MUS_RG_SURF = 05 02 -MUS_RG_POKE_TOWER = 06 02 -MUS_RG_SILPH = 07 02 -MUS_RG_FUCHSIA = 08 02 -MUS_RG_CELADON = 09 02 -MUS_RG_VICTORY_TRAINER = 0A 02 -MUS_RG_VICTORY_WILD = 0B 02 -MUS_RG_VICTORY_GYM_LEADER = 0C 02 -MUS_RG_VERMILLION = 0D 02 -MUS_RG_PEWTER = 0E 02 -MUS_RG_ENCOUNTER_RIVAL = 0F 02 -MUS_RG_RIVAL_EXIT = 10 02 -MUS_RG_DEX_RATING = 11 02 -MUS_RG_OBTAIN_KEY_ITEM = 12 02 -MUS_RG_CAUGHT_INTRO = 13 02 -MUS_RG_PHOTO = 14 02 -MUS_RG_GAME_FREAK = 15 02 -MUS_RG_CAUGHT = 16 02 -MUS_RG_NEW_GAME_INSTRUCT = 17 02 -MUS_RG_NEW_GAME_INTRO = 18 02 -MUS_RG_NEW_GAME_EXIT = 19 02 -MUS_RG_POKE_JUMP = 1A 02 -MUS_RG_UNION_ROOM = 1B 02 -MUS_RG_NET_CENTER = 1C 02 -MUS_RG_MYSTERY_GIFT = 1D 02 -MUS_RG_BERRY_PICK = 1E 02 -MUS_RG_SEVII_CAVE = 1F 02 -MUS_RG_TEACHY_TV_SHOW = 20 02 -MUS_RG_SEVII_ROUTE = 21 02 -MUS_RG_SEVII_DUNGEON = 22 02 -MUS_RG_SEVII_123 = 23 02 -MUS_RG_SEVII_45 = 24 02 -MUS_RG_SEVII_67 = 25 02 -MUS_RG_POKE_FLUTE = 26 02 -MUS_RG_VS_DEOXYS = 27 02 -MUS_RG_VS_MEWTWO = 28 02 -MUS_RG_VS_LEGEND = 29 02 -MUS_RG_ENCOUNTER_GYM_LEADER = 2A 02 -MUS_RG_ENCOUNTER_DEOXYS = 2B 02 -MUS_RG_TRAINER_TOWER = 2C 02 -MUS_RG_SLOW_PALLET = 2D 02 -MUS_RG_TEACHY_TV_MENU = 2E 02 -PH_TRAP_BLEND = 2F 02 -PH_TRAP_HELD = 30 02 -PH_TRAP_SOLO = 31 02 -PH_FACE_BLEND = 32 02 -PH_FACE_HELD = 33 02 -PH_FACE_SOLO = 34 02 -PH_CLOTH_BLEND = 35 02 -PH_CLOTH_HELD = 36 02 -PH_CLOTH_SOLO = 37 02 -PH_DRESS_BLEND = 38 02 -PH_DRESS_HELD = 39 02 -PH_DRESS_SOLO = 3A 02 -PH_FLEECE_BLEND = 3B 02 -PH_FLEECE_HELD = 3C 02 -PH_FLEECE_SOLO = 3D 02 -PH_KIT_BLEND = 3E 02 -PH_KIT_HELD = 3F 02 -PH_KIT_SOLO = 40 02 -PH_PRICE_BLEND = 41 02 -PH_PRICE_HELD = 42 02 -PH_PRICE_SOLO = 43 02 -PH_LOT_BLEND = 44 02 -PH_LOT_HELD = 45 02 -PH_LOT_SOLO = 46 02 -PH_GOAT_BLEND = 47 02 -PH_GOAT_HELD = 48 02 -PH_GOAT_SOLO = 49 02 -PH_THOUGHT_BLEND = 4A 02 -PH_THOUGHT_HELD = 4B 02 -PH_THOUGHT_SOLO = 4C 02 -PH_CHOICE_BLEND = 4D 02 -PH_CHOICE_HELD = 4E 02 -PH_CHOICE_SOLO = 4F 02 -PH_MOUTH_BLEND = 50 02 -PH_MOUTH_HELD = 51 02 -PH_MOUTH_SOLO = 52 02 -PH_FOOT_BLEND = 53 02 -PH_FOOT_HELD = 54 02 -PH_FOOT_SOLO = 55 02 -PH_GOOSE_BLEND = 56 02 -PH_GOOSE_HELD = 57 02 -PH_GOOSE_SOLO = 58 02 -PH_STRUT_BLEND = 59 02 -PH_STRUT_HELD = 5A 02 -PH_STRUT_SOLO = 5B 02 -PH_CURE_BLEND = 5C 02 -PH_CURE_HELD = 5D 02 -PH_CURE_SOLO = 5E 02 -PH_NURSE_BLEND = 5F 02 -PH_NURSE_HELD = 60 02 -PH_NURSE_SOLO = 61 02 - -A_BUTTON = F8 00 -B_BUTTON = F8 01 -DPAD_UPDOWN = F8 0A -DPAD_NONE = F8 0C - -UP_ARROW_2 = F9 00 -DOWN_ARROW_2 = F9 01 -LEFT_ARROW_2 = F9 02 -RIGHT_ARROW_2 = F9 03 -PLUS = F9 04 -LV_2 = F9 05 -PP = F9 06 -ID = F9 07 -NO = F9 08 -UNDERSCORE = F9 09 -CIRCLE_1 = F9 0A -CIRCLE_2 = F9 0B -CIRCLE_3 = F9 0C -CIRCLE_4 = F9 0D -CIRCLE_5 = F9 0E -CIRCLE_6 = F9 0F -CIRCLE_7 = F9 10 -CIRCLE_8 = F9 11 -CIRCLE_9 = F9 12 -ROUND_LEFT_PAREN = F9 13 -ROUND_RIGHT_PAREN = F9 14 -CIRCLE_DOT = F9 15 -TRIANGLE = F9 16 -BIG_MULT_X = F9 17 - -EMOJI_UNDERSCORE = F9 D0 -EMOJI_PIPE = F9 D1 -EMOJI_HIGHBAR = F9 D2 -EMOJI_TILDE = F9 D3 -EMOJI_LEFT_PAREN = F9 D4 -EMOJI_RIGHT_PAREN = F9 D5 -EMOJI_UNION = F9 D6 @ ⊂ -EMOJI_GREATER_THAN = F9 D7 -EMOJI_LEFT_EYE = F9 D8 -EMOJI_RIGHT_EYE = F9 D9 -EMOJI_AT = F9 DA -EMOJI_SEMICOLON = F9 DB -EMOJI_PLUS = F9 DC -EMOJI_MINUS = F9 DD -EMOJI_EQUALS = F9 DE -EMOJI_SPIRAL = F9 DF -EMOJI_TONGUE = F9 E0 -EMOJI_TRIANGLE_OUTLINE = F9 E1 -EMOJI_ACUTE = F9 E2 -EMOJI_GRAVE = F9 E3 -EMOJI_CIRCLE = F9 E4 -EMOJI_TRIANGLE = F9 E5 -EMOJI_SQUARE = F9 E6 -EMOJI_HEART = F9 E7 -EMOJI_MOON = F9 E8 -EMOJI_NOTE = F9 E9 -EMOJI_BALL = F9 EA -EMOJI_BOLT = F9 EB -EMOJI_LEAF = F9 EC -EMOJI_FIRE = F9 ED -EMOJI_WATER = F9 EE -EMOJI_LEFT_FIST = F9 EF -EMOJI_RIGHT_FIST = F9 F0 -EMOJI_BIGWHEEL = F9 F1 -EMOJI_SMALLWHEEL = F9 F2 -EMOJI_SPHERE = F9 F3 -EMOJI_IRRITATED = F9 F4 -EMOJI_MISCHIEVOUS = F9 F5 -EMOJI_HAPPY = F9 F6 -EMOJI_ANGRY = F9 F7 -EMOJI_SURPRISED = F9 F8 -EMOJI_BIGSMILE = F9 F9 -EMOJI_EVIL = F9 FA -EMOJI_TIRED = F9 FB -EMOJI_NEUTRAL = F9 FC -EMOJI_SHOCKED = F9 FD -EMOJI_BIGANGER = F9 FE - -'\l' = FA @ scroll up window text -'\p' = FB @ new paragraph -'\n' = FE @ new line diff --git a/berry_fix/payload/common_syms/agb_flash.txt b/berry_fix/payload/common_syms/agb_flash.txt deleted file mode 100644 index cb421ec80d..0000000000 --- a/berry_fix/payload/common_syms/agb_flash.txt +++ /dev/null @@ -1,10 +0,0 @@ -gFlashTimeoutFlag -PollFlashStatus -WaitForFlashWrite -ProgramFlashSector -gFlash -ProgramFlashByte -gFlashNumRemainingBytes -EraseFlashChip -EraseFlashSector -gFlashMaxTime diff --git a/berry_fix/payload/common_syms/main.txt b/berry_fix/payload/common_syms/main.txt deleted file mode 100644 index b62c721240..0000000000 --- a/berry_fix/payload/common_syms/main.txt +++ /dev/null @@ -1,9 +0,0 @@ -gIntrTable -gHeldKeys -gNewKeys -gIntrVector -gUpdateSuccessful -gUnknown_3001194 -gUnknown_30011A0 -gMainCallbackState -gGameVersion diff --git a/berry_fix/payload/common_syms/rtc.txt b/berry_fix/payload/common_syms/rtc.txt deleted file mode 100644 index 7aafbe65df..0000000000 --- a/berry_fix/payload/common_syms/rtc.txt +++ /dev/null @@ -1,2 +0,0 @@ -gTimeSinceBerryUpdate -gRtcUTCTime diff --git a/berry_fix/payload/constants/gba_constants.inc b/berry_fix/payload/constants/gba_constants.inc deleted file mode 100644 index 9d59c8fcdd..0000000000 --- a/berry_fix/payload/constants/gba_constants.inc +++ /dev/null @@ -1,490 +0,0 @@ - .set PSR_USR_MODE, 0x00000010 - .set PSR_FIQ_MODE, 0x00000011 - .set PSR_IRQ_MODE, 0x00000012 - .set PSR_SVC_MODE, 0x00000013 - .set PSR_ABT_MODE, 0x00000017 - .set PSR_UND_MODE, 0x0000001b - .set PSR_SYS_MODE, 0x0000001f - .set PSR_MODE_MASK, 0x0000001f - .set PSR_T_BIT, 0x00000020 - .set PSR_F_BIT, 0x00000040 - .set PSR_I_BIT, 0x00000080 - - .set EWRAM_START, 0x02000000 - .set EWRAM_END, EWRAM_START + 0x40000 - .set IWRAM_START, 0x03000000 - .set IWRAM_END, IWRAM_START + 0x8000 - - .set PLTT, 0x5000000 - .set BG_PLTT, PLTT - .set OBJ_PLTT, PLTT + 0x200 - - .set VRAM, 0x6000000 - .set BG_VRAM, VRAM - .set OBJ_VRAM0, VRAM + 0x10000 @ text-mode BG - .set OBJ_VRAM1, VRAM + 0x14000 @ bitmap-mode BG - - .set OAM, 0x7000000 - - .set SOUND_INFO_PTR, 0x3007FF0 - .set INTR_CHECK, 0x3007FF8 - .set INTR_VECTOR, 0x3007FFC - - .set INTR_FLAG_VBLANK, 1 << 0 - .set INTR_FLAG_HBLANK, 1 << 1 - .set INTR_FLAG_VCOUNT, 1 << 2 - .set INTR_FLAG_TIMER0, 1 << 3 - .set INTR_FLAG_TIMER1, 1 << 4 - .set INTR_FLAG_TIMER2, 1 << 5 - .set INTR_FLAG_TIMER3, 1 << 6 - .set INTR_FLAG_SERIAL, 1 << 7 - .set INTR_FLAG_DMA0, 1 << 8 - .set INTR_FLAG_DMA1, 1 << 9 - .set INTR_FLAG_DMA2, 1 << 10 - .set INTR_FLAG_DMA3, 1 << 11 - .set INTR_FLAG_KEYPAD, 1 << 12 - .set INTR_FLAG_GAMEPAK, 1 << 13 - - .set VCOUNT_VBLANK, 160 - .set TOTAL_SCANLINES, 228 - - .set REG_BASE, 0x4000000 @ I/O register base address - -@ I/O register offsets - .set OFFSET_REG_DISPCNT, 0x0 - .set OFFSET_REG_DISPSTAT, 0x4 - .set OFFSET_REG_VCOUNT, 0x6 - .set OFFSET_REG_BG0CNT, 0x8 - .set OFFSET_REG_BG1CNT, 0xa - .set OFFSET_REG_BG2CNT, 0xc - .set OFFSET_REG_BG3CNT, 0xe - .set OFFSET_REG_BG0HOFS, 0x10 - .set OFFSET_REG_BG0VOFS, 0x12 - .set OFFSET_REG_BG1HOFS, 0x14 - .set OFFSET_REG_BG1VOFS, 0x16 - .set OFFSET_REG_BG2HOFS, 0x18 - .set OFFSET_REG_BG2VOFS, 0x1a - .set OFFSET_REG_BG3HOFS, 0x1c - .set OFFSET_REG_BG3VOFS, 0x1e - .set OFFSET_REG_BG2PA, 0x20 - .set OFFSET_REG_BG2PB, 0x22 - .set OFFSET_REG_BG2PC, 0x24 - .set OFFSET_REG_BG2PD, 0x26 - .set OFFSET_REG_BG2X_L, 0x28 - .set OFFSET_REG_BG2X_H, 0x2a - .set OFFSET_REG_BG2Y_L, 0x2c - .set OFFSET_REG_BG2Y_H, 0x2e - .set OFFSET_REG_BG3PA, 0x30 - .set OFFSET_REG_BG3PB, 0x32 - .set OFFSET_REG_BG3PC, 0x34 - .set OFFSET_REG_BG3PD, 0x36 - .set OFFSET_REG_BG3X_L, 0x38 - .set OFFSET_REG_BG3X_H, 0x3a - .set OFFSET_REG_BG3Y_L, 0x3c - .set OFFSET_REG_BG3Y_H, 0x3e - .set OFFSET_REG_WIN0H, 0x40 - .set OFFSET_REG_WIN1H, 0x42 - .set OFFSET_REG_WIN0V, 0x44 - .set OFFSET_REG_WIN1V, 0x46 - .set OFFSET_REG_WININ, 0x48 - .set OFFSET_REG_WINOUT, 0x4a - .set OFFSET_REG_MOSAIC, 0x4c - .set OFFSET_REG_BLDCNT, 0x50 - .set OFFSET_REG_BLDALPHA, 0x52 - .set OFFSET_REG_BLDY, 0x54 - - .set OFFSET_REG_SOUND1CNT, 0x60 - .set OFFSET_REG_SOUND1CNT_L, 0x60 - .set OFFSET_REG_NR10, 0x60 - .set OFFSET_REG_SOUND1CNT_H, 0x62 - .set OFFSET_REG_NR11, 0x62 - .set OFFSET_REG_NR12, 0x63 - .set OFFSET_REG_SOUND1CNT_X, 0x64 - .set OFFSET_REG_NR13, 0x64 - .set OFFSET_REG_NR14, 0x65 - .set OFFSET_REG_SOUND2CNT, 0x68 - .set OFFSET_REG_SOUND2CNT_L, 0x68 - .set OFFSET_REG_NR21, 0x68 - .set OFFSET_REG_NR22, 0x69 - .set OFFSET_REG_SOUND2CNT_H, 0x6c - .set OFFSET_REG_NR23, 0x6c - .set OFFSET_REG_NR24, 0x6d - .set OFFSET_REG_SOUND3CNT, 0x70 - .set OFFSET_REG_SOUND3CNT_L, 0x70 - .set OFFSET_REG_NR30, 0x70 - .set OFFSET_REG_SOUND3CNT_H, 0x72 - .set OFFSET_REG_NR31, 0x72 - .set OFFSET_REG_NR32, 0x73 - .set OFFSET_REG_SOUND3CNT_X, 0x74 - .set OFFSET_REG_NR33, 0x74 - .set OFFSET_REG_NR34, 0x75 - .set OFFSET_REG_SOUND4CNT, 0x78 - .set OFFSET_REG_SOUND4CNT_L, 0x78 - .set OFFSET_REG_NR41, 0x78 - .set OFFSET_REG_NR42, 0x79 - .set OFFSET_REG_SOUND4CNT_H, 0x7c - .set OFFSET_REG_NR43, 0x7c - .set OFFSET_REG_NR44, 0x7d - .set OFFSET_REG_SOUNDCNT, 0x80 - .set OFFSET_REG_SOUNDCNT_L, 0x80 - .set OFFSET_REG_NR50, 0x80 - .set OFFSET_REG_NR51, 0x81 - .set OFFSET_REG_SOUNDCNT_H, 0x82 - .set OFFSET_REG_SOUNDCNT_X, 0x84 - .set OFFSET_REG_NR52, 0x84 - .set OFFSET_REG_SOUNDBIAS, 0x88 - .set OFFSET_REG_WAVE_RAM, 0x90 - .set OFFSET_REG_WAVE_RAM0, 0x90 - .set OFFSET_REG_WAVE_RAM0_L, 0x90 - .set OFFSET_REG_WAVE_RAM0_H, 0x92 - .set OFFSET_REG_WAVE_RAM1, 0x94 - .set OFFSET_REG_WAVE_RAM1_L, 0x94 - .set OFFSET_REG_WAVE_RAM1_H, 0x96 - .set OFFSET_REG_WAVE_RAM2, 0x98 - .set OFFSET_REG_WAVE_RAM2_L, 0x98 - .set OFFSET_REG_WAVE_RAM2_H, 0x9a - .set OFFSET_REG_WAVE_RAM3, 0x9c - .set OFFSET_REG_WAVE_RAM3_L, 0x9c - .set OFFSET_REG_WAVE_RAM3_H, 0x9e - .set OFFSET_REG_FIFO, 0xa0 - .set OFFSET_REG_FIFO_A, 0xa0 - .set OFFSET_REG_FIFO_A_L, 0xa0 - .set OFFSET_REG_FIFO_A_H, 0xa2 - .set OFFSET_REG_FIFO_B, 0xa4 - .set OFFSET_REG_FIFO_B_L, 0xa4 - .set OFFSET_REG_FIFO_B_H, 0xa6 - - .set OFFSET_REG_DMA0, 0xb0 - .set OFFSET_REG_DMA0SAD, 0xb0 - .set OFFSET_REG_DMA0SAD_L, 0xb0 - .set OFFSET_REG_DMA0SAD_H, 0xb2 - .set OFFSET_REG_DMA0DAD, 0xb4 - .set OFFSET_REG_DMA0DAD_L, 0xb4 - .set OFFSET_REG_DMA0DAD_H, 0xb6 - .set OFFSET_REG_DMA0CNT, 0xb8 - .set OFFSET_REG_DMA0CNT_L, 0xb8 - .set OFFSET_REG_DMA0CNT_H, 0xba - .set OFFSET_REG_DMA1, 0xbc - .set OFFSET_REG_DMA1SAD, 0xbc - .set OFFSET_REG_DMA1SAD_L, 0xbc - .set OFFSET_REG_DMA1SAD_H, 0xbe - .set OFFSET_REG_DMA1DAD, 0xc0 - .set OFFSET_REG_DMA1DAD_L, 0xc0 - .set OFFSET_REG_DMA1DAD_H, 0xc2 - .set OFFSET_REG_DMA1CNT, 0xc4 - .set OFFSET_REG_DMA1CNT_L, 0xc4 - .set OFFSET_REG_DMA1CNT_H, 0xc6 - .set OFFSET_REG_DMA2, 0xc8 - .set OFFSET_REG_DMA2SAD, 0xc8 - .set OFFSET_REG_DMA2SAD_L, 0xc8 - .set OFFSET_REG_DMA2SAD_H, 0xca - .set OFFSET_REG_DMA2DAD, 0xcc - .set OFFSET_REG_DMA2DAD_L, 0xcc - .set OFFSET_REG_DMA2DAD_H, 0xce - .set OFFSET_REG_DMA2CNT, 0xd0 - .set OFFSET_REG_DMA2CNT_L, 0xd0 - .set OFFSET_REG_DMA2CNT_H, 0xd2 - .set OFFSET_REG_DMA3, 0xd4 - .set OFFSET_REG_DMA3SAD, 0xd4 - .set OFFSET_REG_DMA3SAD_L, 0xd4 - .set OFFSET_REG_DMA3SAD_H, 0xd6 - .set OFFSET_REG_DMA3DAD, 0xd8 - .set OFFSET_REG_DMA3DAD_L, 0xd8 - .set OFFSET_REG_DMA3DAD_H, 0xda - .set OFFSET_REG_DMA3CNT, 0xdc - .set OFFSET_REG_DMA3CNT_L, 0xdc - .set OFFSET_REG_DMA3CNT_H, 0xde - - .set OFFSET_REG_TM0CNT, 0x100 - .set OFFSET_REG_TM0CNT_L, 0x100 - .set OFFSET_REG_TM0CNT_H, 0x102 - .set OFFSET_REG_TM1CNT, 0x104 - .set OFFSET_REG_TM1CNT_L, 0x104 - .set OFFSET_REG_TM1CNT_H, 0x106 - .set OFFSET_REG_TM2CNT, 0x108 - .set OFFSET_REG_TM2CNT_L, 0x108 - .set OFFSET_REG_TM2CNT_H, 0x10a - .set OFFSET_REG_TM3CNT, 0x10c - .set OFFSET_REG_TM3CNT_L, 0x10c - .set OFFSET_REG_TM3CNT_H, 0x10e - - .set OFFSET_REG_SIOCNT, 0x128 - .set OFFSET_REG_SIODATA8, 0x12a - .set OFFSET_REG_SIODATA32, 0x120 - .set OFFSET_REG_SIOMLT_SEND, 0x12a - .set OFFSET_REG_SIOMLT_RECV, 0x120 - .set OFFSET_REG_SIOMULTI0, 0x120 - .set OFFSET_REG_SIOMULTI1, 0x122 - .set OFFSET_REG_SIOMULTI2, 0x124 - .set OFFSET_REG_SIOMULTI3, 0x126 - - .set OFFSET_REG_KEYINPUT, 0x130 - .set OFFSET_REG_KEYCNT, 0x132 - - .set OFFSET_REG_RCNT, 0x134 - - .set OFFSET_REG_JOYCNT, 0x140 - .set OFFSET_REG_JOYSTAT, 0x158 - .set OFFSET_REG_JOY_RECV, 0x150 - .set OFFSET_REG_JOY_RECV_L, 0x150 - .set OFFSET_REG_JOY_RECV_H, 0x152 - .set OFFSET_REG_JOY_TRANS, 0x154 - .set OFFSET_REG_JOY_TRANS_L, 0x154 - .set OFFSET_REG_JOY_TRANS_H, 0x156 - - .set OFFSET_REG_IME, 0x208 - .set OFFSET_REG_IE, 0x200 - .set OFFSET_REG_IF, 0x202 - - .set OFFSET_REG_WAITCNT, 0x204 - -@ I/O register addresses - .set REG_DISPCNT, REG_BASE + OFFSET_REG_DISPCNT - .set REG_DISPSTAT, REG_BASE + OFFSET_REG_DISPSTAT - .set REG_VCOUNT, REG_BASE + OFFSET_REG_VCOUNT - .set REG_BG0CNT, REG_BASE + OFFSET_REG_BG0CNT - .set REG_BG1CNT, REG_BASE + OFFSET_REG_BG1CNT - .set REG_BG2CNT, REG_BASE + OFFSET_REG_BG2CNT - .set REG_BG3CNT, REG_BASE + OFFSET_REG_BG3CNT - .set REG_BG0HOFS, REG_BASE + OFFSET_REG_BG0HOFS - .set REG_BG0VOFS, REG_BASE + OFFSET_REG_BG0VOFS - .set REG_BG1HOFS, REG_BASE + OFFSET_REG_BG1HOFS - .set REG_BG1VOFS, REG_BASE + OFFSET_REG_BG1VOFS - .set REG_BG2HOFS, REG_BASE + OFFSET_REG_BG2HOFS - .set REG_BG2VOFS, REG_BASE + OFFSET_REG_BG2VOFS - .set REG_BG3HOFS, REG_BASE + OFFSET_REG_BG3HOFS - .set REG_BG3VOFS, REG_BASE + OFFSET_REG_BG3VOFS - .set REG_BG2PA, REG_BASE + OFFSET_REG_BG2PA - .set REG_BG2PB, REG_BASE + OFFSET_REG_BG2PB - .set REG_BG2PC, REG_BASE + OFFSET_REG_BG2PC - .set REG_BG2PD, REG_BASE + OFFSET_REG_BG2PD - .set REG_BG2X_L, REG_BASE + OFFSET_REG_BG2X_L - .set REG_BG2X_H, REG_BASE + OFFSET_REG_BG2X_H - .set REG_BG2Y_L, REG_BASE + OFFSET_REG_BG2Y_L - .set REG_BG2Y_H, REG_BASE + OFFSET_REG_BG2Y_H - .set REG_BG3PA, REG_BASE + OFFSET_REG_BG3PA - .set REG_BG3PB, REG_BASE + OFFSET_REG_BG3PB - .set REG_BG3PC, REG_BASE + OFFSET_REG_BG3PC - .set REG_BG3PD, REG_BASE + OFFSET_REG_BG3PD - .set REG_BG3X_L, REG_BASE + OFFSET_REG_BG3X_L - .set REG_BG3X_H, REG_BASE + OFFSET_REG_BG3X_H - .set REG_BG3Y_L, REG_BASE + OFFSET_REG_BG3Y_L - .set REG_BG3Y_H, REG_BASE + OFFSET_REG_BG3Y_H - .set REG_WIN0H, REG_BASE + OFFSET_REG_WIN0H - .set REG_WIN1H, REG_BASE + OFFSET_REG_WIN1H - .set REG_WIN0V, REG_BASE + OFFSET_REG_WIN0V - .set REG_WIN1V, REG_BASE + OFFSET_REG_WIN1V - .set REG_WININ, REG_BASE + OFFSET_REG_WININ - .set REG_WINOUT, REG_BASE + OFFSET_REG_WINOUT - .set REG_MOSAIC, REG_BASE + OFFSET_REG_MOSAIC - .set REG_BLDCNT, REG_BASE + OFFSET_REG_BLDCNT - .set REG_BLDALPHA, REG_BASE + OFFSET_REG_BLDALPHA - .set REG_BLDY, REG_BASE + OFFSET_REG_BLDY - - .set REG_SOUND1CNT, REG_BASE + OFFSET_REG_SOUND1CNT - .set REG_SOUND1CNT_L, REG_BASE + OFFSET_REG_SOUND1CNT_L - .set REG_NR10, REG_BASE + OFFSET_REG_NR10 - .set REG_SOUND1CNT_H, REG_BASE + OFFSET_REG_SOUND1CNT_H - .set REG_NR11, REG_BASE + OFFSET_REG_NR11 - .set REG_NR12, REG_BASE + OFFSET_REG_NR12 - .set REG_SOUND1CNT_X, REG_BASE + OFFSET_REG_SOUND1CNT_X - .set REG_NR13, REG_BASE + OFFSET_REG_NR13 - .set REG_NR14, REG_BASE + OFFSET_REG_NR14 - .set REG_SOUND2CNT, REG_BASE + OFFSET_REG_SOUND2CNT - .set REG_SOUND2CNT_L, REG_BASE + OFFSET_REG_SOUND2CNT_L - .set REG_NR21, REG_BASE + OFFSET_REG_NR21 - .set REG_NR22, REG_BASE + OFFSET_REG_NR22 - .set REG_SOUND2CNT_H, REG_BASE + OFFSET_REG_SOUND2CNT_H - .set REG_NR23, REG_BASE + OFFSET_REG_NR23 - .set REG_NR24, REG_BASE + OFFSET_REG_NR24 - .set REG_SOUND3CNT, REG_BASE + OFFSET_REG_SOUND3CNT - .set REG_SOUND3CNT_L, REG_BASE + OFFSET_REG_SOUND3CNT_L - .set REG_NR30, REG_BASE + OFFSET_REG_NR30 - .set REG_SOUND3CNT_H, REG_BASE + OFFSET_REG_SOUND3CNT_H - .set REG_NR31, REG_BASE + OFFSET_REG_NR31 - .set REG_NR32, REG_BASE + OFFSET_REG_NR32 - .set REG_SOUND3CNT_X, REG_BASE + OFFSET_REG_SOUND3CNT_X - .set REG_NR33, REG_BASE + OFFSET_REG_NR33 - .set REG_NR34, REG_BASE + OFFSET_REG_NR34 - .set REG_SOUND4CNT, REG_BASE + OFFSET_REG_SOUND4CNT - .set REG_SOUND4CNT_L, REG_BASE + OFFSET_REG_SOUND4CNT_L - .set REG_NR41, REG_BASE + OFFSET_REG_NR41 - .set REG_NR42, REG_BASE + OFFSET_REG_NR42 - .set REG_SOUND4CNT_H, REG_BASE + OFFSET_REG_SOUND4CNT_H - .set REG_NR43, REG_BASE + OFFSET_REG_NR43 - .set REG_NR44, REG_BASE + OFFSET_REG_NR44 - .set REG_SOUNDCNT, REG_BASE + OFFSET_REG_SOUNDCNT - .set REG_SOUNDCNT_L, REG_BASE + OFFSET_REG_SOUNDCNT_L - .set REG_NR50, REG_BASE + OFFSET_REG_NR50 - .set REG_NR51, REG_BASE + OFFSET_REG_NR51 - .set REG_SOUNDCNT_H, REG_BASE + OFFSET_REG_SOUNDCNT_H - .set REG_SOUNDCNT_X, REG_BASE + OFFSET_REG_SOUNDCNT_X - .set REG_NR52, REG_BASE + OFFSET_REG_NR52 - .set REG_SOUNDBIAS, REG_BASE + OFFSET_REG_SOUNDBIAS - .set REG_WAVE_RAM, REG_BASE + OFFSET_REG_WAVE_RAM - .set REG_WAVE_RAM0, REG_BASE + OFFSET_REG_WAVE_RAM0 - .set REG_WAVE_RAM0_L, REG_BASE + OFFSET_REG_WAVE_RAM0_L - .set REG_WAVE_RAM0_H, REG_BASE + OFFSET_REG_WAVE_RAM0_H - .set REG_WAVE_RAM1, REG_BASE + OFFSET_REG_WAVE_RAM1 - .set REG_WAVE_RAM1_L, REG_BASE + OFFSET_REG_WAVE_RAM1_L - .set REG_WAVE_RAM1_H, REG_BASE + OFFSET_REG_WAVE_RAM1_H - .set REG_WAVE_RAM2, REG_BASE + OFFSET_REG_WAVE_RAM2 - .set REG_WAVE_RAM2_L, REG_BASE + OFFSET_REG_WAVE_RAM2_L - .set REG_WAVE_RAM2_H, REG_BASE + OFFSET_REG_WAVE_RAM2_H - .set REG_WAVE_RAM3, REG_BASE + OFFSET_REG_WAVE_RAM3 - .set REG_WAVE_RAM3_L, REG_BASE + OFFSET_REG_WAVE_RAM3_L - .set REG_WAVE_RAM3_H, REG_BASE + OFFSET_REG_WAVE_RAM3_H - .set REG_FIFO, REG_BASE + OFFSET_REG_FIFO - .set REG_FIFO_A, REG_BASE + OFFSET_REG_FIFO_A - .set REG_FIFO_A_L, REG_BASE + OFFSET_REG_FIFO_A_L - .set REG_FIFO_A_H, REG_BASE + OFFSET_REG_FIFO_A_H - .set REG_FIFO_B, REG_BASE + OFFSET_REG_FIFO_B - .set REG_FIFO_B_L, REG_BASE + OFFSET_REG_FIFO_B_L - .set REG_FIFO_B_H, REG_BASE + OFFSET_REG_FIFO_B_H - - .set REG_DMA0, REG_BASE + OFFSET_REG_DMA0 - .set REG_DMA0SAD, REG_BASE + OFFSET_REG_DMA0SAD - .set REG_DMA0SAD_L, REG_BASE + OFFSET_REG_DMA0SAD_L - .set REG_DMA0SAD_H, REG_BASE + OFFSET_REG_DMA0SAD_H - .set REG_DMA0DAD, REG_BASE + OFFSET_REG_DMA0DAD - .set REG_DMA0DAD_L, REG_BASE + OFFSET_REG_DMA0DAD_L - .set REG_DMA0DAD_H, REG_BASE + OFFSET_REG_DMA0DAD_H - .set REG_DMA0CNT, REG_BASE + OFFSET_REG_DMA0CNT - .set REG_DMA0CNT_L, REG_BASE + OFFSET_REG_DMA0CNT_L - .set REG_DMA0CNT_H, REG_BASE + OFFSET_REG_DMA0CNT_H - .set REG_DMA1, REG_BASE + OFFSET_REG_DMA1 - .set REG_DMA1SAD, REG_BASE + OFFSET_REG_DMA1SAD - .set REG_DMA1SAD_L, REG_BASE + OFFSET_REG_DMA1SAD_L - .set REG_DMA1SAD_H, REG_BASE + OFFSET_REG_DMA1SAD_H - .set REG_DMA1DAD, REG_BASE + OFFSET_REG_DMA1DAD - .set REG_DMA1DAD_L, REG_BASE + OFFSET_REG_DMA1DAD_L - .set REG_DMA1DAD_H, REG_BASE + OFFSET_REG_DMA1DAD_H - .set REG_DMA1CNT, REG_BASE + OFFSET_REG_DMA1CNT - .set REG_DMA1CNT_L, REG_BASE + OFFSET_REG_DMA1CNT_L - .set REG_DMA1CNT_H, REG_BASE + OFFSET_REG_DMA1CNT_H - .set REG_DMA2, REG_BASE + OFFSET_REG_DMA2 - .set REG_DMA2SAD, REG_BASE + OFFSET_REG_DMA2SAD - .set REG_DMA2SAD_L, REG_BASE + OFFSET_REG_DMA2SAD_L - .set REG_DMA2SAD_H, REG_BASE + OFFSET_REG_DMA2SAD_H - .set REG_DMA2DAD, REG_BASE + OFFSET_REG_DMA2DAD - .set REG_DMA2DAD_L, REG_BASE + OFFSET_REG_DMA2DAD_L - .set REG_DMA2DAD_H, REG_BASE + OFFSET_REG_DMA2DAD_H - .set REG_DMA2CNT, REG_BASE + OFFSET_REG_DMA2CNT - .set REG_DMA2CNT_L, REG_BASE + OFFSET_REG_DMA2CNT_L - .set REG_DMA2CNT_H, REG_BASE + OFFSET_REG_DMA2CNT_H - .set REG_DMA3, REG_BASE + OFFSET_REG_DMA3 - .set REG_DMA3SAD, REG_BASE + OFFSET_REG_DMA3SAD - .set REG_DMA3SAD_L, REG_BASE + OFFSET_REG_DMA3SAD_L - .set REG_DMA3SAD_H, REG_BASE + OFFSET_REG_DMA3SAD_H - .set REG_DMA3DAD, REG_BASE + OFFSET_REG_DMA3DAD - .set REG_DMA3DAD_L, REG_BASE + OFFSET_REG_DMA3DAD_L - .set REG_DMA3DAD_H, REG_BASE + OFFSET_REG_DMA3DAD_H - .set REG_DMA3CNT, REG_BASE + OFFSET_REG_DMA3CNT - .set REG_DMA3CNT_L, REG_BASE + OFFSET_REG_DMA3CNT_L - .set REG_DMA3CNT_H, REG_BASE + OFFSET_REG_DMA3CNT_H - - .set REG_TM0CNT, REG_BASE + OFFSET_REG_TM0CNT - .set REG_TM0CNT_L, REG_BASE + OFFSET_REG_TM0CNT_L - .set REG_TM0CNT_H, REG_BASE + OFFSET_REG_TM0CNT_H - .set REG_TM1CNT, REG_BASE + OFFSET_REG_TM1CNT - .set REG_TM1CNT_L, REG_BASE + OFFSET_REG_TM1CNT_L - .set REG_TM1CNT_H, REG_BASE + OFFSET_REG_TM1CNT_H - .set REG_TM2CNT, REG_BASE + OFFSET_REG_TM2CNT - .set REG_TM2CNT_L, REG_BASE + OFFSET_REG_TM2CNT_L - .set REG_TM2CNT_H, REG_BASE + OFFSET_REG_TM2CNT_H - .set REG_TM3CNT, REG_BASE + OFFSET_REG_TM3CNT - .set REG_TM3CNT_L, REG_BASE + OFFSET_REG_TM3CNT_L - .set REG_TM3CNT_H, REG_BASE + OFFSET_REG_TM3CNT_H - - .set REG_SIOCNT, REG_BASE + OFFSET_REG_SIOCNT - .set REG_SIODATA8, REG_BASE + OFFSET_REG_SIODATA8 - .set REG_SIODATA32, REG_BASE + OFFSET_REG_SIODATA32 - .set REG_SIOMLT_SEND, REG_BASE + OFFSET_REG_SIOMLT_SEND - .set REG_SIOMLT_RECV, REG_BASE + OFFSET_REG_SIOMLT_RECV - .set REG_SIOMULTI0, REG_BASE + OFFSET_REG_SIOMULTI0 - .set REG_SIOMULTI1, REG_BASE + OFFSET_REG_SIOMULTI1 - .set REG_SIOMULTI2, REG_BASE + OFFSET_REG_SIOMULTI2 - .set REG_SIOMULTI3, REG_BASE + OFFSET_REG_SIOMULTI3 - - .set REG_KEYINPUT, REG_BASE + OFFSET_REG_KEYINPUT - .set REG_KEYCNT, REG_BASE + OFFSET_REG_KEYCNT - - .set REG_RCNT, REG_BASE + OFFSET_REG_RCNT - - .set REG_JOYCNT, REG_BASE + OFFSET_REG_JOYCNT - .set REG_JOYSTAT, REG_BASE + OFFSET_REG_JOYSTAT - .set REG_JOY_RECV, REG_BASE + OFFSET_REG_JOY_RECV - .set REG_JOY_RECV_L, REG_BASE + OFFSET_REG_JOY_RECV_L - .set REG_JOY_RECV_H, REG_BASE + OFFSET_REG_JOY_RECV_H - .set REG_JOY_TRANS, REG_BASE + OFFSET_REG_JOY_TRANS - .set REG_JOY_TRANS_L, REG_BASE + OFFSET_REG_JOY_TRANS_L - .set REG_JOY_TRANS_H, REG_BASE + OFFSET_REG_JOY_TRANS_H - - .set REG_IME, REG_BASE + OFFSET_REG_IME - .set REG_IE, REG_BASE + OFFSET_REG_IE - .set REG_IF, REG_BASE + OFFSET_REG_IF - - .set REG_WAITCNT, REG_BASE + OFFSET_REG_WAITCNT - -@ DMA register constants - - .set DMA_DEST_INC, 0x0000 - .set DMA_DEST_DEC, 0x0020 - .set DMA_DEST_FIXED, 0x0040 - .set DMA_DEST_RELOAD, 0x0060 - .set DMA_SRC_INC, 0x0000 - .set DMA_SRC_DEC, 0x0080 - .set DMA_SRC_FIXED, 0x0100 - .set DMA_REPEAT, 0x0200 - .set DMA_16BIT, 0x0000 - .set DMA_32BIT, 0x0400 - .set DMA_DREQ_ON, 0x0800 - .set DMA_START_NOW, 0x0000 - .set DMA_START_VBLANK, 0x1000 - .set DMA_START_HBLANK, 0x2000 - .set DMA_START_SPECIAL, 0x3000 - .set DMA_INTR_ENABLE, 0x4000 - .set DMA_ENABLE, 0x8000 - -@ OAM attribute constants - - .set OAM_OBJ_NORMAL, 0x00000000 - .set OAM_OBJ_BLEND, 0x00000400 - .set OAM_OBJ_WINDOW, 0x00000800 - - .set OAM_AFFINE_NONE, 0x00000000 - .set OAM_AFFINE_NORMAL_SIZE, 0x00000100 - .set OAM_OBJ_DISABLED, 0x00000200 - .set OAM_AFFINE_DOUBLE_SIZE, 0x00000300 - - .set OAM_MOSAIC_OFF, 0x00000000 - .set OAM_MOSAIC_ON, 0x00001000 - - .set OAM_4BPP, 0x00000000 - .set OAM_8BPP, 0x00002000 - - .set OAM_H_FLIP, 0x10000000 - .set OAM_V_FLIP, 0x20000000 - - .set OAM_SQUARE, 0x00000000 - .set OAM_H_RECTANGLE, 0x00004000 - .set OAM_V_RECTANGLE, 0x00008000 - .set OAM_SIZE_0, 0x00000000 - .set OAM_SIZE_1, 0x40000000 - .set OAM_SIZE_2, 0x80000000 - .set OAM_SIZE_3, 0xc0000000 - - .set OAM_SIZE_8x8, OAM_SIZE_0 | OAM_SQUARE - .set OAM_SIZE_16x16, OAM_SIZE_1 | OAM_SQUARE - .set OAM_SIZE_32x32, OAM_SIZE_2 | OAM_SQUARE - .set OAM_SIZE_64x64, OAM_SIZE_3 | OAM_SQUARE - - .set OAM_SIZE_16x8, OAM_SIZE_0 | OAM_H_RECTANGLE - .set OAM_SIZE_32x8, OAM_SIZE_1 | OAM_H_RECTANGLE - .set OAM_SIZE_32x16, OAM_SIZE_2 | OAM_H_RECTANGLE - .set OAM_SIZE_64x32, OAM_SIZE_3 | OAM_H_RECTANGLE - - .set OAM_SIZE_8x16, OAM_SIZE_0 | OAM_V_RECTANGLE - .set OAM_SIZE_8x32, OAM_SIZE_1 | OAM_V_RECTANGLE - .set OAM_SIZE_16x32, OAM_SIZE_2 | OAM_V_RECTANGLE - .set OAM_SIZE_32x64, OAM_SIZE_3 | OAM_V_RECTANGLE diff --git a/berry_fix/payload/graphics/debug_digits.png b/berry_fix/payload/graphics/debug_digits.png deleted file mode 100644 index edf0d36c96..0000000000 Binary files a/berry_fix/payload/graphics/debug_digits.png and /dev/null differ diff --git a/berry_fix/payload/graphics/msg_box.png b/berry_fix/payload/graphics/msg_box.png deleted file mode 100644 index 00d1bbe37e..0000000000 Binary files a/berry_fix/payload/graphics/msg_box.png and /dev/null differ diff --git a/berry_fix/payload/graphics/msg_box.tilemap b/berry_fix/payload/graphics/msg_box.tilemap deleted file mode 100644 index 5b82401bad..0000000000 Binary files a/berry_fix/payload/graphics/msg_box.tilemap and /dev/null differ diff --git a/berry_fix/payload/include/constants/game_stat.h b/berry_fix/payload/include/constants/game_stat.h deleted file mode 100644 index 47d703d853..0000000000 --- a/berry_fix/payload/include/constants/game_stat.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef GUARD_CONSTANTS_GAME_STAT_H -#define GUARD_CONSTANTS_GAME_STAT_H - -#define GAME_STAT_SAVED_GAME 0 -#define GAME_STAT_FIRST_HOF_PLAY_TIME 1 -#define GAME_STAT_STARTED_TRENDS 2 -#define GAME_STAT_PLANTED_BERRIES 3 -#define GAME_STAT_TRADED_BIKES 4 -#define GAME_STAT_STEPS 5 -#define GAME_STAT_GOT_INTERVIEWED 6 -#define GAME_STAT_TOTAL_BATTLES 7 -#define GAME_STAT_WILD_BATTLES 8 -#define GAME_STAT_TRAINER_BATTLES 9 -#define GAME_STAT_ENTERED_HOF 10 -#define GAME_STAT_POKEMON_CAPTURES 11 -#define GAME_STAT_FISHING_CAPTURES 12 -#define GAME_STAT_HATCHED_EGGS 13 -#define GAME_STAT_EVOLVED_POKEMON 14 -#define GAME_STAT_USED_POKECENTER 15 -#define GAME_STAT_RESTED_AT_HOME 16 -#define GAME_STAT_ENTERED_SAFARI_ZONE 17 -#define GAME_STAT_USED_CUT 18 -#define GAME_STAT_USED_ROCK_SMASH 19 -#define GAME_STAT_MOVED_SECRET_BASE 20 -#define GAME_STAT_POKEMON_TRADES 21 -#define GAME_STAT_UNKNOWN_22 22 -#define GAME_STAT_LINK_BATTLE_WINS 23 -#define GAME_STAT_LINK_BATTLE_LOSSES 24 -#define GAME_STAT_LINK_BATTLE_DRAWS 25 -#define GAME_STAT_USED_SPLASH 26 -#define GAME_STAT_USED_STRUGGLE 27 -#define GAME_STAT_SLOT_JACKPOTS 28 -#define GAME_STAT_CONSECUTIVE_ROULETTE_WINS 29 -#define GAME_STAT_ENTERED_BATTLE_TOWER 30 -#define GAME_STAT_UNKNOWN_31 31 -#define GAME_STAT_BATTLE_TOWER_BEST_STREAK 32 -#define GAME_STAT_POKEBLOCKS 33 -#define GAME_STAT_POKEBLOCKS_WITH_FRIENDS 34 -#define GAME_STAT_WON_LINK_CONTEST 35 -#define GAME_STAT_ENTERED_CONTEST 36 -#define GAME_STAT_WON_CONTEST 37 -#define GAME_STAT_SHOPPED 38 -#define GAME_STAT_USED_ITEMFINDER 39 -#define GAME_STAT_GOT_RAINED_ON 40 -#define GAME_STAT_CHECKED_POKEDEX 41 -#define GAME_STAT_RECEIVED_RIBBONS 42 -#define GAME_STAT_JUMPED_DOWN_LEDGES 43 -#define GAME_STAT_WATCHED_TV 44 -#define GAME_STAT_CHECKED_CLOCK 45 -#define GAME_STAT_WON_POKEMON_LOTTERY 46 -#define GAME_STAT_USED_DAYCARE 47 -#define GAME_STAT_RODE_CABLE_CAR 48 -#define GAME_STAT_ENTERED_HOT_SPRINGS 49 -#define NUM_GAME_STATS 50 - -#endif // GUARD_CONSTANTS_GAME_STAT_H diff --git a/berry_fix/payload/include/constants/vars.h b/berry_fix/payload/include/constants/vars.h deleted file mode 100644 index 4b40c1d8c3..0000000000 --- a/berry_fix/payload/include/constants/vars.h +++ /dev/null @@ -1,196 +0,0 @@ -#ifndef GUARD_CONSTANTS_VARS_H -#define GUARD_CONSTANTS_VARS_H - -#define VAR_0x3F20 0x3F20 - -#define VARS_START 0x4000 - -// temporary vars -// The first 0x10 vars are are temporary--they are cleared every time a map is loaded. -#define VAR_TEMP_0 0x4000 -#define VAR_TEMP_1 0x4001 -#define VAR_TEMP_2 0x4002 -#define VAR_TEMP_3 0x4003 -#define VAR_TEMP_4 0x4004 -#define VAR_TEMP_5 0x4005 -#define VAR_TEMP_6 0x4006 -#define VAR_TEMP_7 0x4007 -#define VAR_TEMP_8 0x4008 -#define VAR_TEMP_9 0x4009 -#define VAR_TEMP_A 0x400A -#define VAR_TEMP_B 0x400B -#define VAR_TEMP_C 0x400C -#define VAR_TEMP_D 0x400D -#define VAR_TEMP_E 0x400E -#define VAR_TEMP_F 0x400F - -// object gfx id vars -// These 0x10 vars are used to dynamically control a event object's sprite. -// For example, the rival's sprite id is dynamically set based on the player's gender. -// See VarGetEventObjectGraphicsId(). -#define VAR_OBJ_GFX_ID_0 0x4010 -#define VAR_OBJ_GFX_ID_1 0x4011 -#define VAR_OBJ_GFX_ID_2 0x4012 -#define VAR_OBJ_GFX_ID_3 0x4013 -#define VAR_OBJ_GFX_ID_4 0x4014 -#define VAR_OBJ_GFX_ID_5 0x4015 -#define VAR_OBJ_GFX_ID_6 0x4016 -#define VAR_OBJ_GFX_ID_7 0x4017 -#define VAR_OBJ_GFX_ID_8 0x4018 -#define VAR_OBJ_GFX_ID_9 0x4019 -#define VAR_OBJ_GFX_ID_A 0x401A -#define VAR_OBJ_GFX_ID_B 0x401B -#define VAR_OBJ_GFX_ID_C 0x401C -#define VAR_OBJ_GFX_ID_D 0x401D -#define VAR_OBJ_GFX_ID_E 0x401E -#define VAR_OBJ_GFX_ID_F 0x401F - -// general purpose vars -#define VAR_RECYCLE_GOODS 0x4020 -#define VAR_REPEL_STEP_COUNT 0x4021 -#define VAR_ICE_STEP_COUNT 0x4022 -#define VAR_STARTER_MON 0x4023 // 0=Treecko, 1=Torchic, 2=Mudkip -#define VAR_MIRAGE_RND_H 0x4024 -#define VAR_MIRAGE_RND_L 0x4025 -#define VAR_SECRET_BASE_MAP 0x4026 -#define VAR_CYCLING_ROAD_RECORD_COLLISIONS 0x4027 -#define VAR_CYCLING_ROAD_RECORD_TIME_L 0x4028 -#define VAR_CYCLING_ROAD_RECORD_TIME_H 0x4029 -#define VAR_HAPPINESS_STEP_COUNTER 0x402A -#define VAR_POISON_STEP_COUNTER 0x402B -#define VAR_RESET_RTC_ENABLE 0x402C -#define VAR_ENIGMA_BERRY_AVAILABLE 0x402D - -#define VAR_DAYS 0x4040 -#define VAR_FANCLUB_UNKNOWN_1 0x4041 // TODO: document these two fanclub vars -#define VAR_FANCLUB_UNKNOWN_2 0x4042 -#define VAR_DEPT_STORE_FLOOR 0x4043 -#define VAR_TRICK_HOUSE_ROOMS_COMPLETED 0x4044 -#define VAR_LOTTERY_PRIZE 0x4045 -#define VAR_NATIONAL_DEX 0x4046 -#define VAR_SHROOMISH_SIZE_RECORD 0x4047 -#define VAR_ASH_GATHER_COUNT 0x4048 -#define VAR_BIRCH_STATE 0x4049 -#define VAR_CRUISE_STEP_COUNT 0x404A -#define VAR_LOTTERY_RND_L 0x404B -#define VAR_LOTTERY_RND_H 0x404C - -#define VAR_BARBOACH_SIZE_RECORD 0x404F -#define VAR_LITTLEROOT_STATE 0x4050 -#define VAR_ROUTE102_ACCESSIBLE 0x4051 - -#define VAR_LAVARIDGE_RIVAL_STATE 0x4053 -#define VAR_CURRENT_SECRET_BASE 0x4054 - -#define VAR_PETALBURG_STATE 0x4057 -#define VAR_SLATEPORT_STATE 0x4058 - -#define VAR_RUSTBORO_STATE 0x405A - -#define VAR_SOOTOPOLIS_STATE 0x405E - -#define VAR_ROUTE101_STATE 0x4060 - -#define VAR_ROUTE103_STATE 0x4062 - -#define VAR_ROUTE110_STATE 0x4069 - -#define VAR_ROUTE116_STATE 0x406F - -#define VAR_ROUTE118_STATE 0x4071 -#define VAR_ROUTE119_STATE 0x4072 - -#define VAR_ROUTE121_STATE 0x4074 -#define VAR_ROUTE128_STATE 0x407B - -#define VAR_LITTLEROOT_HOUSES_STATE 0x4082 // TODO: needs more investigation - -#define VAR_BIRCH_LAB_STATE 0x4084 -#define VAR_PETALBURG_GYM_STATE 0x4085 -#define VAR_LINK_CONTEST_ROOM_STATE 0x4086 -#define VAR_CABLE_CLUB_STATE 0x4087 -#define VAR_CONTEST_LOCATION 0x4088 -#define VAR_MAP_SCENE_SIX_ISLAND_POKEMON_CENTER_1F 0x4089 // TODO: related to decorations -#define VAR_CONTEST_PRIZE_PICKUP 0x408A - -#define VAR_LITTLEROOT_HOUSES_STATE_2 0x408C // TODO: needs more investigation -#define VAR_LITTLEROOT_RIVAL_STATE 0x408D -#define VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE 0x408E -#define VAR_DEVON_CORP_3F_STATE 0x408F -#define VAR_BRINEY_HOUSE_STATE 0x4090 - -#define VAR_LITTLEROOT_INTRO_STATE 0x4092 -#define VAR_MAUVILLE_GYM_STATE 0x4093 -#define VAR_LILYCOVE_MUSEUM_2F_STATE 0x4094 -#define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095 -#define VAR_BRINEY_LOCATION 0x4096 -#define VAR_0x4097 0x4097 // TODO: related to creating new secret base -#define VAR_PETALBURG_WOODS_STATE 0x4098 -#define VAR_LILYCOVE_CONTEST_LOBBY_STATE 0x4099 -#define VAR_RUSTURF_TUNNEL_STATE 0x409a -#define VAR_CAVE_OF_ORIGIN_B4F_STATE 0x409B -#define VAR_ELITE_4_STATE 0x409C - -#define VAR_SLATEPORT_HARBOR_STATE 0x40A0 - -#define VAR_SEAFLOOR_CAVERN_STATE 0x40A2 -#define VAR_CABLE_CAR_STATION_STATE 0x40A3 -#define VAR_SAFARI_ZONE_STATE 0x40A4 -#define VAR_TRICK_HOUSE_ENTRANCE_STATE 0x40A5 -#define VAR_TRICK_HOUSE_ENTRANCE_STATE_2 0x40A6 -#define VAR_TRICK_HOUSE_ENTRANCE_STATE_3 0x40A7 - -#define VAR_CYCLING_CHALLENGE_STATE 0x40A9 -#define VAR_SLATEPORT_MUSEUM_1F_STATE 0x40AA -#define VAR_TRICK_HOUSE_PUZZLE_1_STATE 0x40AB -#define VAR_TRICK_HOUSE_PUZZLE_2_STATE 0x40AC -#define VAR_TRICK_HOUSE_PUZZLE_3_STATE 0x40AD -#define VAR_TRICK_HOUSE_PUZZLE_4_STATE 0x40AE -#define VAR_TRICK_HOUSE_PUZZLE_5_STATE 0x40AF -#define VAR_TRICK_HOUSE_PUZZLE_6_STATE 0x40B0 -#define VAR_TRICK_HOUSE_PUZZLE_7_STATE 0x40B1 -#define VAR_TRICK_HOUSE_PUZZLE_8_STATE 0x40B2 -#define VAR_WEATHER_INSTITUTE_STATE 0x40B3 -#define VAR_PORTHOLE_STATE 0x40B4 -#define VAR_TRICK_HOUSE_STATE 0x40B5 // TODO: needs some further investigation -#define VAR_TRICK_HOUSE_PUZZLE_7_STATE_2 0x40B6 -#define VAR_SLATEPORT_FAN_CLUB_STATE 0x40B7 - -#define VAR_MT_PYRE_STATE 0x40B9 -#define VAR_NEW_MAUVILLE_STATE 0x40BA - -#define VAR_BRAVO_TRAINER_BATTLE_TOWER_ON 0x40BC -#define VAR_JAGGED_PASS_VOLCANIC_ASH_WEATHER 0x40BD -#define VAR_GLASS_WORKSHOP_STATE 0x40BE -#define VAR_METEOR_FALLS_STATE 0x40BF -#define VAR_GAME_CORNER_STATE 0x40C0 -#define VAR_TRICK_HOUSE_PRIZE_PICKUP 0x40C1 -#define VAR_PACIFIDLOG_TM_RECEIVED_DAY 0x40C2 -#define VAR_VICTORY_ROAD_1F_STATE 0x40C3 -#define VAR_FOSSIL_RESURRECTION_STATE 0x40C4 -#define VAR_WHICH_FOSSIL_REVIVED 0x40C5 -#define VAR_STEVENS_HOUSE_STATE 0x40C6 -#define VAR_OLDALE_STATE 0x40C7 - -// special vars -// They are commonly used as parameters to commands, or return values from commands. -#define VAR_SPECIAL_0 0x8000 -#define VAR_SPECIAL_1 0x8001 -#define VAR_SPECIAL_2 0x8002 -#define VAR_SPECIAL_3 0x8003 -#define VAR_SPECIAL_4 0x8004 -#define VAR_SPECIAL_5 0x8005 -#define VAR_SPECIAL_6 0x8006 -#define VAR_SPECIAL_7 0x8007 -#define VAR_SPECIAL_8 0x8008 -#define VAR_SPECIAL_9 0x8009 -#define VAR_SPECIAL_A 0x800A -#define VAR_SPECIAL_B 0x800B -#define FACING 0x800C -#define RESULT 0x800D -#define ITEM_ID 0x800E -#define LAST_TALKED 0x800F -#define CONTEST_RANK 0x8010 -#define CONTEST_CATEGORY 0x8011 - -#endif // GUARD_CONSTANTS_VARS_H diff --git a/berry_fix/payload/include/flash.h b/berry_fix/payload/include/flash.h deleted file mode 100644 index 7fc35896d0..0000000000 --- a/berry_fix/payload/include/flash.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef GUARD_FLASH_H -#define GUARD_FLASH_H - -#include "gba/gba.h" - -enum -{ - SECTOR_DAMAGED, - SECTOR_OK, - SECTOR_CHECK, // unused -}; - -enum MsgBoxUpdateMessage -{ - MSGBOX_WILL_NOW_UPDATE = 0, - MSGBOX_HAS_BEEN_UPDATED, - MSGBOX_UNABLE_TO_UPDATE, - MSGBOX_NO_NEED_TO_UPDATE, - MSGBOX_UPDATING -}; - -struct SaveSector -{ - u8 data[0xFF4]; - u16 id; - u16 checksum; - u32 signature; - u32 counter; -}; // size is 0x1000 - -// headless save section? -struct UnkSaveSection -{ - u8 data[0xFF4]; - u32 signature; -}; // size is 0xFF8 - -#define eSaveSection ((struct SaveSector *)0x2020000) - -#define NUM_SECTORS_PER_SAVE_SLOT 14 // Number of sectors occupied by a save slot -#define FILE_SIGNATURE 0x08012025 - -#define SAVE_STATUS_EMPTY 0 -#define SAVE_STATUS_OK 1 -#define SAVE_STATUS_NO_FLASH 4 -#define SAVE_STATUS_ERROR 0xFF - -bool32 flash_maincb_ident_is_valid(void); -bool8 flash_maincb_read_save(u32); -void msg_load_gfx(void); -void msg_display(enum MsgBoxUpdateMessage); -bool32 flash_maincb_check_need_reset_pacifidlog_tm(void); -bool32 flash_maincb_reset_pacifidlog_tm(void); - -#endif //GUARD_FLASH_H diff --git a/berry_fix/payload/include/gba/defines.h b/berry_fix/payload/include/gba/defines.h deleted file mode 100644 index 4037af5846..0000000000 --- a/berry_fix/payload/include/gba/defines.h +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef GUARD_GBA_DEFINES_H -#define GUARD_GBA_DEFINES_H - -#include - -#define TRUE 1 -#define FALSE 0 - -#define BSS_DATA __attribute__((section(".bss"))) -#define IWRAM_DATA __attribute__((section("iwram_data"))) -#define EWRAM_DATA __attribute__((section("ewram_data"))) -#define UNUSED __attribute__((unused)) -#define NAKED __attribute__((naked)) - -#define ALIGNED(n) __attribute__((aligned(n))) - -#define SOUND_INFO_PTR (*(struct SoundInfo **)0x3007FF0) -#define INTR_CHECK (*(u16 *)0x3007FF8) -#define INTR_VECTOR (*(void **)0x3007FFC) - -#define EWRAM_START 0x02000000 -#define EWRAM_END (EWRAM_START + 0x40000) -#define IWRAM_START 0x03000000 -#define IWRAM_END (IWRAM_START + 0x8000) - -#define PLTT 0x5000000 -#define PLTT_SIZE 0x400 - -#define BG_PLTT PLTT -#define BG_PLTT_SIZE 0x200 - -#define OBJ_PLTT (PLTT + 0x200) -#define OBJ_PLTT_SIZE 0x200 - -#define VRAM 0x6000000 -#define VRAM_SIZE 0x18000 - -#define BG_VRAM VRAM -#define BG_VRAM_SIZE 0x10000 -#define BG_CHAR_SIZE 0x4000 -#define BG_SCREEN_SIZE 0x800 -#define BG_CHAR_ADDR(n) (void *)(BG_VRAM + (0x4000 * (n))) -#define BG_SCREEN_ADDR(n) (void *)(BG_VRAM + (0x800 * (n))) -#define BG_TILE_ADDR(n) (void *)(BG_VRAM + (0x80 * (n))) - -#define BG_TILE_H_FLIP(n) (0x400 + (n)) -#define BG_TILE_V_FLIP(n) (0x800 + (n)) - -// text-mode BG -#define OBJ_VRAM0 (void *)(VRAM + 0x10000) -#define OBJ_VRAM0_SIZE 0x8000 - -// bitmap-mode BG -#define OBJ_VRAM1 (void *)(VRAM + 0x14000) -#define OBJ_VRAM1_SIZE 0x4000 - -#define OAM 0x7000000 -#define OAM_SIZE 0x400 - -#define ROM_HEADER_SIZE 0xC0 - -#define DISPLAY_WIDTH 240 -#define DISPLAY_HEIGHT 160 - -#define TILE_SIZE_4BPP 32 -#define TILE_SIZE_8BPP 64 - -#define TILE_OFFSET_4BPP(n) ((n) * TILE_SIZE_4BPP) -#define TILE_OFFSET_8BPP(n) ((n) * TILE_SIZE_8BPP) - -#define TOTAL_OBJ_TILE_COUNT 1024 - -#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) -#define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r)) -#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F)) - -#define RGB_BLACK RGB(0, 0, 0) -#define RGB_WHITE RGB(31, 31, 31) -#define RGB_RED RGB(31, 0, 0) -#define RGB_GREEN RGB(0, 31, 0) -#define RGB_BLUE RGB(0, 0, 31) -#define RGB_YELLOW RGB(31, 31, 0) -#define RGB_MAGENTA RGB(31, 0, 31) -#define RGB_CYAN RGB(0, 31, 31) -#define RGB_WHITEALPHA (RGB_WHITE | 0x8000) - -#endif // GUARD_GBA_DEFINES_H diff --git a/berry_fix/payload/include/gba/flash_internal.h b/berry_fix/payload/include/gba/flash_internal.h deleted file mode 100644 index 6fbec31f1b..0000000000 --- a/berry_fix/payload/include/gba/flash_internal.h +++ /dev/null @@ -1,85 +0,0 @@ -#ifndef GUARD_GBA_FLASH_INTERNAL_H -#define GUARD_GBA_FLASH_INTERNAL_H - -#include "gba/gba.h" - -#define FLASH_BASE ((u8 *)0xE000000) - -#define FLASH_WRITE(addr, data) ((*(vu8 *)(FLASH_BASE + (addr))) = (data)) - -#define FLASH_ROM_SIZE_1M 131072 // 1 megabit ROM - -#define SECTORS_PER_BANK 16 - -struct FlashSector -{ - u32 size; - u8 shift; - u16 count; - u16 top; -}; - -struct FlashType { - u32 romSize; - struct FlashSector sector; - u16 wait[2]; // game pak bus read/write wait - - // TODO: add support for anonymous unions/structs if possible - union { - struct { - u8 makerId; - u8 deviceId; - } separate; - u16 joined; - } ids; -}; - -struct FlashSetupInfo -{ - u16 (*programFlashByte)(u16, u32, u8); - u16 (*programFlashSector)(u16, void *); - u16 (*eraseFlashChip)(void); - u16 (*eraseFlashSector)(u16); - u16 (*WaitForFlashWrite)(u8, u8 *, u8); - const u16 *maxTime; - struct FlashType type; -}; - -extern u16 gFlashNumRemainingBytes; - -extern u16 (*ProgramFlashByte)(u16, u32, u8); -extern u16 (*ProgramFlashSector)(u16, void *); -extern u16 (*EraseFlashChip)(void); -extern u16 (*EraseFlashSector)(u16); -extern u16 (*WaitForFlashWrite)(u8, u8 *, u8); -extern const u16 *gFlashMaxTime; -extern const struct FlashType *gFlash; - -extern u8 (*PollFlashStatus)(u8 *); -extern u8 gFlashTimeoutFlag; - -extern const struct FlashSetupInfo MX29L010; -extern const struct FlashSetupInfo LE26FV10N1TS; -extern const struct FlashSetupInfo DefaultFlash; - -void SwitchFlashBank(u8 bankNum); -u16 ReadFlashId(void); -void StartFlashTimer(u8 phase); -void SetReadFlash1(u16 *dest); -void StopFlashTimer(void); -u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void)); -u32 ProgramFlashSectorAndVerify(u16 sectorNum, u8 *src); -void ReadFlash(u16 sectorNum, u32 offset, void *dest, u32 size); -u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, void *dataSrc, u32 n); - -u16 WaitForFlashWrite_Common(u8 phase, u8 *addr, u8 lastData); - -u16 EraseFlashChip_MX(void); -u16 EraseFlashSector_MX(u16 sectorNum); -u16 ProgramFlashByte_MX(u16 sectorNum, u32 offset, u8 data); -u16 ProgramFlashSector_MX(u16 sectorNum, void *src); - -// agb_flash_1m -u32 IdentifyFlash(void); - -#endif // GUARD_GBA_FLASH_INTERNAL_H diff --git a/berry_fix/payload/include/gba/gba.h b/berry_fix/payload/include/gba/gba.h deleted file mode 100644 index 349344031f..0000000000 --- a/berry_fix/payload/include/gba/gba.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef GUARD_GBA_GBA_H -#define GUARD_GBA_GBA_H - -#include "gba/defines.h" -#include "gba/io_reg.h" -#include "gba/types.h" -#include "gba/multiboot.h" -#include "gba/syscall.h" -#include "gba/macro.h" -#include "gba/isagbprint.h" - -#endif // GUARD_GBA_GBA_H diff --git a/berry_fix/payload/include/gba/io_reg.h b/berry_fix/payload/include/gba/io_reg.h deleted file mode 100644 index df79b084d3..0000000000 --- a/berry_fix/payload/include/gba/io_reg.h +++ /dev/null @@ -1,770 +0,0 @@ -#ifndef GUARD_GBA_IO_REG_H -#define GUARD_GBA_IO_REG_H - -#define REG_BASE 0x4000000 // I/O register base address - -// I/O register offsets - -#define REG_OFFSET_DISPCNT 0x0 -#define REG_OFFSET_DISPSTAT 0x4 -#define REG_OFFSET_VCOUNT 0x6 -#define REG_OFFSET_BG0CNT 0x8 -#define REG_OFFSET_BG1CNT 0xa -#define REG_OFFSET_BG2CNT 0xc -#define REG_OFFSET_BG3CNT 0xe -#define REG_OFFSET_BG0HOFS 0x10 -#define REG_OFFSET_BG0VOFS 0x12 -#define REG_OFFSET_BG1HOFS 0x14 -#define REG_OFFSET_BG1VOFS 0x16 -#define REG_OFFSET_BG2HOFS 0x18 -#define REG_OFFSET_BG2VOFS 0x1a -#define REG_OFFSET_BG3HOFS 0x1c -#define REG_OFFSET_BG3VOFS 0x1e -#define REG_OFFSET_BG2PA 0x20 -#define REG_OFFSET_BG2PB 0x22 -#define REG_OFFSET_BG2PC 0x24 -#define REG_OFFSET_BG2PD 0x26 -#define REG_OFFSET_BG2X 0x28 -#define REG_OFFSET_BG2X_L 0x28 -#define REG_OFFSET_BG2X_H 0x2a -#define REG_OFFSET_BG2Y 0x2c -#define REG_OFFSET_BG2Y_L 0x2c -#define REG_OFFSET_BG2Y_H 0x2e -#define REG_OFFSET_BG3PA 0x30 -#define REG_OFFSET_BG3PB 0x32 -#define REG_OFFSET_BG3PC 0x34 -#define REG_OFFSET_BG3PD 0x36 -#define REG_OFFSET_BG3X 0x38 -#define REG_OFFSET_BG3X_L 0x38 -#define REG_OFFSET_BG3X_H 0x3a -#define REG_OFFSET_BG3Y 0x3c -#define REG_OFFSET_BG3Y_L 0x3c -#define REG_OFFSET_BG3Y_H 0x3e -#define REG_OFFSET_WIN0H 0x40 -#define REG_OFFSET_WIN1H 0x42 -#define REG_OFFSET_WIN0V 0x44 -#define REG_OFFSET_WIN1V 0x46 -#define REG_OFFSET_WININ 0x48 -#define REG_OFFSET_WINOUT 0x4a -#define REG_OFFSET_MOSAIC 0x4c -#define REG_OFFSET_BLDCNT 0x50 -#define REG_OFFSET_BLDALPHA 0x52 -#define REG_OFFSET_BLDY 0x54 - -#define REG_OFFSET_SOUND1CNT_L 0x60 -#define REG_OFFSET_NR10 0x60 -#define REG_OFFSET_SOUND1CNT_H 0x62 -#define REG_OFFSET_NR11 0x62 -#define REG_OFFSET_NR12 0x63 -#define REG_OFFSET_SOUND1CNT_X 0x64 -#define REG_OFFSET_NR13 0x64 -#define REG_OFFSET_NR14 0x65 -#define REG_OFFSET_SOUND2CNT_L 0x68 -#define REG_OFFSET_NR21 0x68 -#define REG_OFFSET_NR22 0x69 -#define REG_OFFSET_SOUND2CNT_H 0x6c -#define REG_OFFSET_NR23 0x6c -#define REG_OFFSET_NR24 0x6d -#define REG_OFFSET_SOUND3CNT_L 0x70 -#define REG_OFFSET_NR30 0x70 -#define REG_OFFSET_SOUND3CNT_H 0x72 -#define REG_OFFSET_NR31 0x72 -#define REG_OFFSET_NR32 0x73 -#define REG_OFFSET_SOUND3CNT_X 0x74 -#define REG_OFFSET_NR33 0x74 -#define REG_OFFSET_NR34 0x75 -#define REG_OFFSET_SOUND4CNT_L 0x78 -#define REG_OFFSET_NR41 0x78 -#define REG_OFFSET_NR42 0x79 -#define REG_OFFSET_SOUND4CNT_H 0x7c -#define REG_OFFSET_NR43 0x7c -#define REG_OFFSET_NR44 0x7d -#define REG_OFFSET_SOUNDCNT_L 0x80 -#define REG_OFFSET_NR50 0x80 -#define REG_OFFSET_NR51 0x81 -#define REG_OFFSET_SOUNDCNT_H 0x82 -#define REG_OFFSET_SOUNDCNT_X 0x84 -#define REG_OFFSET_NR52 0x84 -#define REG_OFFSET_SOUNDBIAS 0x88 -#define REG_OFFSET_SOUNDBIAS_L 0x88 -#define REG_OFFSET_SOUNDBIAS_H 0x89 -#define REG_OFFSET_WAVE_RAM0 0x90 -#define REG_OFFSET_WAVE_RAM1 0x94 -#define REG_OFFSET_WAVE_RAM2 0x98 -#define REG_OFFSET_WAVE_RAM3 0x9c -#define REG_OFFSET_FIFO_A 0xa0 -#define REG_OFFSET_FIFO_B 0xa4 - -#define REG_OFFSET_DMA0 0xb0 -#define REG_OFFSET_DMA0SAD 0xb0 -#define REG_OFFSET_DMA0SAD_L 0xb0 -#define REG_OFFSET_DMA0SAD_H 0xb2 -#define REG_OFFSET_DMA0DAD 0xb4 -#define REG_OFFSET_DMA0DAD_L 0xb4 -#define REG_OFFSET_DMA0DAD_H 0xb6 -#define REG_OFFSET_DMA0CNT 0xb8 -#define REG_OFFSET_DMA0CNT_L 0xb8 -#define REG_OFFSET_DMA0CNT_H 0xba -#define REG_OFFSET_DMA1 0xbc -#define REG_OFFSET_DMA1SAD 0xbc -#define REG_OFFSET_DMA1SAD_L 0xbc -#define REG_OFFSET_DMA1SAD_H 0xbe -#define REG_OFFSET_DMA1DAD 0xc0 -#define REG_OFFSET_DMA1DAD_L 0xc0 -#define REG_OFFSET_DMA1DAD_H 0xc2 -#define REG_OFFSET_DMA1CNT 0xc4 -#define REG_OFFSET_DMA1CNT_L 0xc4 -#define REG_OFFSET_DMA1CNT_H 0xc6 -#define REG_OFFSET_DMA2 0xc8 -#define REG_OFFSET_DMA2SAD 0xc8 -#define REG_OFFSET_DMA2SAD_L 0xc8 -#define REG_OFFSET_DMA2SAD_H 0xca -#define REG_OFFSET_DMA2DAD 0xcc -#define REG_OFFSET_DMA2DAD_L 0xcc -#define REG_OFFSET_DMA2DAD_H 0xce -#define REG_OFFSET_DMA2CNT 0xd0 -#define REG_OFFSET_DMA2CNT_L 0xd0 -#define REG_OFFSET_DMA2CNT_H 0xd2 -#define REG_OFFSET_DMA3 0xd4 -#define REG_OFFSET_DMA3SAD 0xd4 -#define REG_OFFSET_DMA3SAD_L 0xd4 -#define REG_OFFSET_DMA3SAD_H 0xd6 -#define REG_OFFSET_DMA3DAD 0xd8 -#define REG_OFFSET_DMA3DAD_L 0xd8 -#define REG_OFFSET_DMA3DAD_H 0xda -#define REG_OFFSET_DMA3CNT 0xdc -#define REG_OFFSET_DMA3CNT_L 0xdc -#define REG_OFFSET_DMA3CNT_H 0xde - -#define REG_OFFSET_TMCNT 0x100 -#define REG_OFFSET_TMCNT_L 0x100 -#define REG_OFFSET_TMCNT_H 0x102 -#define REG_OFFSET_TM0CNT 0x100 -#define REG_OFFSET_TM0CNT_L 0x100 -#define REG_OFFSET_TM0CNT_H 0x102 -#define REG_OFFSET_TM1CNT 0x104 -#define REG_OFFSET_TM1CNT_L 0x104 -#define REG_OFFSET_TM1CNT_H 0x106 -#define REG_OFFSET_TM2CNT 0x108 -#define REG_OFFSET_TM2CNT_L 0x108 -#define REG_OFFSET_TM2CNT_H 0x10a -#define REG_OFFSET_TM3CNT 0x10c -#define REG_OFFSET_TM3CNT_L 0x10c -#define REG_OFFSET_TM3CNT_H 0x10e - -#define REG_OFFSET_SIOCNT 0x128 -#define REG_OFFSET_SIODATA8 0x12a -#define REG_OFFSET_SIODATA32 0x120 -#define REG_OFFSET_SIOMLT_SEND 0x12a -#define REG_OFFSET_SIOMLT_RECV 0x120 -#define REG_OFFSET_SIOMULTI0 0x120 -#define REG_OFFSET_SIOMULTI1 0x122 -#define REG_OFFSET_SIOMULTI2 0x124 -#define REG_OFFSET_SIOMULTI3 0x126 - -#define REG_OFFSET_KEYINPUT 0x130 -#define REG_OFFSET_KEYCNT 0x132 - -#define REG_OFFSET_RCNT 0x134 - -#define REG_OFFSET_JOYCNT 0x140 -#define REG_OFFSET_JOYSTAT 0x158 -#define REG_OFFSET_JOY_RECV 0x150 -#define REG_OFFSET_JOY_RECV_L 0x150 -#define REG_OFFSET_JOY_RECV_H 0x152 -#define REG_OFFSET_JOY_TRANS 0x154 -#define REG_OFFSET_JOY_TRANS_L 0x154 -#define REG_OFFSET_JOY_TRANS_H 0x156 - -#define REG_OFFSET_IME 0x208 -#define REG_OFFSET_IE 0x200 -#define REG_OFFSET_IF 0x202 - -#define REG_OFFSET_WAITCNT 0x204 - -// I/O register addresses - -#define REG_ADDR_DISPCNT (REG_BASE + REG_OFFSET_DISPCNT) -#define REG_ADDR_DISPSTAT (REG_BASE + REG_OFFSET_DISPSTAT) -#define REG_ADDR_VCOUNT (REG_BASE + REG_OFFSET_VCOUNT) -#define REG_ADDR_BG0CNT (REG_BASE + REG_OFFSET_BG0CNT) -#define REG_ADDR_BG1CNT (REG_BASE + REG_OFFSET_BG1CNT) -#define REG_ADDR_BG2CNT (REG_BASE + REG_OFFSET_BG2CNT) -#define REG_ADDR_BG3CNT (REG_BASE + REG_OFFSET_BG3CNT) -#define REG_ADDR_BG0HOFS (REG_BASE + REG_OFFSET_BG0HOFS) -#define REG_ADDR_BG0VOFS (REG_BASE + REG_OFFSET_BG0VOFS) -#define REG_ADDR_BG1HOFS (REG_BASE + REG_OFFSET_BG1HOFS) -#define REG_ADDR_BG1VOFS (REG_BASE + REG_OFFSET_BG1VOFS) -#define REG_ADDR_BG2HOFS (REG_BASE + REG_OFFSET_BG2HOFS) -#define REG_ADDR_BG2VOFS (REG_BASE + REG_OFFSET_BG2VOFS) -#define REG_ADDR_BG3HOFS (REG_BASE + REG_OFFSET_BG3HOFS) -#define REG_ADDR_BG3VOFS (REG_BASE + REG_OFFSET_BG3VOFS) -#define REG_ADDR_BG2PA (REG_BASE + REG_OFFSET_BG2PA) -#define REG_ADDR_BG2PB (REG_BASE + REG_OFFSET_BG2PB) -#define REG_ADDR_BG2PC (REG_BASE + REG_OFFSET_BG2PC) -#define REG_ADDR_BG2PD (REG_BASE + REG_OFFSET_BG2PD) -#define REG_ADDR_BG2X (REG_BASE + REG_OFFSET_BG2X) -#define REG_ADDR_BG2X_L (REG_BASE + REG_OFFSET_BG2X_L) -#define REG_ADDR_BG2X_H (REG_BASE + REG_OFFSET_BG2X_H) -#define REG_ADDR_BG2Y (REG_BASE + REG_OFFSET_BG2Y) -#define REG_ADDR_BG2Y_L (REG_BASE + REG_OFFSET_BG2Y_L) -#define REG_ADDR_BG2Y_H (REG_BASE + REG_OFFSET_BG2Y_H) -#define REG_ADDR_BG3PA (REG_BASE + REG_OFFSET_BG3PA) -#define REG_ADDR_BG3PB (REG_BASE + REG_OFFSET_BG3PB) -#define REG_ADDR_BG3PC (REG_BASE + REG_OFFSET_BG3PC) -#define REG_ADDR_BG3PD (REG_BASE + REG_OFFSET_BG3PD) -#define REG_ADDR_BG3X (REG_BASE + REG_OFFSET_BG3X) -#define REG_ADDR_BG3X_L (REG_BASE + REG_OFFSET_BG3X_L) -#define REG_ADDR_BG3X_H (REG_BASE + REG_OFFSET_BG3X_H) -#define REG_ADDR_BG3Y (REG_BASE + REG_OFFSET_BG3Y) -#define REG_ADDR_BG3Y_L (REG_BASE + REG_OFFSET_BG3Y_L) -#define REG_ADDR_BG3Y_H (REG_BASE + REG_OFFSET_BG3Y_H) -#define REG_ADDR_WIN0H (REG_BASE + REG_OFFSET_WIN0H) -#define REG_ADDR_WIN1H (REG_BASE + REG_OFFSET_WIN1H) -#define REG_ADDR_WIN0V (REG_BASE + REG_OFFSET_WIN0V) -#define REG_ADDR_WIN1V (REG_BASE + REG_OFFSET_WIN1V) -#define REG_ADDR_WININ (REG_BASE + REG_OFFSET_WININ) -#define REG_ADDR_WINOUT (REG_BASE + REG_OFFSET_WINOUT) -#define REG_ADDR_MOSAIC (REG_BASE + REG_OFFSET_MOSAIC) -#define REG_ADDR_BLDCNT (REG_BASE + REG_OFFSET_BLDCNT) -#define REG_ADDR_BLDALPHA (REG_BASE + REG_OFFSET_BLDALPHA) -#define REG_ADDR_BLDY (REG_BASE + REG_OFFSET_BLDY) - -#define REG_ADDR_SOUND1CNT_L (REG_BASE + REG_OFFSET_SOUND1CNT_L) -#define REG_ADDR_NR10 (REG_BASE + REG_OFFSET_NR10) -#define REG_ADDR_SOUND1CNT_H (REG_BASE + REG_OFFSET_SOUND1CNT_H) -#define REG_ADDR_NR11 (REG_BASE + REG_OFFSET_NR11) -#define REG_ADDR_NR12 (REG_BASE + REG_OFFSET_NR12) -#define REG_ADDR_SOUND1CNT_X (REG_BASE + REG_OFFSET_SOUND1CNT_X) -#define REG_ADDR_NR13 (REG_BASE + REG_OFFSET_NR13) -#define REG_ADDR_NR14 (REG_BASE + REG_OFFSET_NR14) -#define REG_ADDR_SOUND2CNT_L (REG_BASE + REG_OFFSET_SOUND2CNT_L) -#define REG_ADDR_NR21 (REG_BASE + REG_OFFSET_NR21) -#define REG_ADDR_NR22 (REG_BASE + REG_OFFSET_NR22) -#define REG_ADDR_SOUND2CNT_H (REG_BASE + REG_OFFSET_SOUND2CNT_H) -#define REG_ADDR_NR23 (REG_BASE + REG_OFFSET_NR23) -#define REG_ADDR_NR24 (REG_BASE + REG_OFFSET_NR24) -#define REG_ADDR_SOUND3CNT_L (REG_BASE + REG_OFFSET_SOUND3CNT_L) -#define REG_ADDR_NR30 (REG_BASE + REG_OFFSET_NR30) -#define REG_ADDR_SOUND3CNT_H (REG_BASE + REG_OFFSET_SOUND3CNT_H) -#define REG_ADDR_NR31 (REG_BASE + REG_OFFSET_NR31) -#define REG_ADDR_NR32 (REG_BASE + REG_OFFSET_NR32) -#define REG_ADDR_SOUND3CNT_X (REG_BASE + REG_OFFSET_SOUND3CNT_X) -#define REG_ADDR_NR33 (REG_BASE + REG_OFFSET_NR33) -#define REG_ADDR_NR34 (REG_BASE + REG_OFFSET_NR34) -#define REG_ADDR_SOUND4CNT_L (REG_BASE + REG_OFFSET_SOUND4CNT_L) -#define REG_ADDR_NR41 (REG_BASE + REG_OFFSET_NR41) -#define REG_ADDR_NR42 (REG_BASE + REG_OFFSET_NR42) -#define REG_ADDR_SOUND4CNT_H (REG_BASE + REG_OFFSET_SOUND4CNT_H) -#define REG_ADDR_NR43 (REG_BASE + REG_OFFSET_NR43) -#define REG_ADDR_NR44 (REG_BASE + REG_OFFSET_NR44) -#define REG_ADDR_SOUNDCNT_L (REG_BASE + REG_OFFSET_SOUNDCNT_L) -#define REG_ADDR_NR50 (REG_BASE + REG_OFFSET_NR50) -#define REG_ADDR_NR51 (REG_BASE + REG_OFFSET_NR51) -#define REG_ADDR_SOUNDCNT_H (REG_BASE + REG_OFFSET_SOUNDCNT_H) -#define REG_ADDR_SOUNDCNT_X (REG_BASE + REG_OFFSET_SOUNDCNT_X) -#define REG_ADDR_NR52 (REG_BASE + REG_OFFSET_NR52) -#define REG_ADDR_SOUNDBIAS (REG_BASE + REG_OFFSET_SOUNDBIAS) -#define REG_ADDR_SOUNDBIAS_L (REG_BASE + REG_OFFSET_SOUNDBIAS_L) -#define REG_ADDR_SOUNDBIAS_H (REG_BASE + REG_OFFSET_SOUNDBIAS_H) -#define REG_ADDR_WAVE_RAM0 (REG_BASE + REG_OFFSET_WAVE_RAM0) -#define REG_ADDR_WAVE_RAM1 (REG_BASE + REG_OFFSET_WAVE_RAM1) -#define REG_ADDR_WAVE_RAM2 (REG_BASE + REG_OFFSET_WAVE_RAM2) -#define REG_ADDR_WAVE_RAM3 (REG_BASE + REG_OFFSET_WAVE_RAM3) -#define REG_ADDR_FIFO_A (REG_BASE + REG_OFFSET_FIFO_A) -#define REG_ADDR_FIFO_B (REG_BASE + REG_OFFSET_FIFO_B) - -#define REG_ADDR_DMA0 (REG_BASE + REG_OFFSET_DMA0) -#define REG_ADDR_DMA0SAD (REG_BASE + REG_OFFSET_DMA0SAD) -#define REG_ADDR_DMA0DAD (REG_BASE + REG_OFFSET_DMA0DAD) -#define REG_ADDR_DMA0CNT (REG_BASE + REG_OFFSET_DMA0CNT) -#define REG_ADDR_DMA0CNT_L (REG_BASE + REG_OFFSET_DMA0CNT_L) -#define REG_ADDR_DMA0CNT_H (REG_BASE + REG_OFFSET_DMA0CNT_H) -#define REG_ADDR_DMA1 (REG_BASE + REG_OFFSET_DMA1) -#define REG_ADDR_DMA1SAD (REG_BASE + REG_OFFSET_DMA1SAD) -#define REG_ADDR_DMA1DAD (REG_BASE + REG_OFFSET_DMA1DAD) -#define REG_ADDR_DMA1CNT (REG_BASE + REG_OFFSET_DMA1CNT) -#define REG_ADDR_DMA1CNT_L (REG_BASE + REG_OFFSET_DMA1CNT_L) -#define REG_ADDR_DMA1CNT_H (REG_BASE + REG_OFFSET_DMA1CNT_H) -#define REG_ADDR_DMA2 (REG_BASE + REG_OFFSET_DMA2) -#define REG_ADDR_DMA2SAD (REG_BASE + REG_OFFSET_DMA2SAD) -#define REG_ADDR_DMA2DAD (REG_BASE + REG_OFFSET_DMA2DAD) -#define REG_ADDR_DMA2CNT (REG_BASE + REG_OFFSET_DMA2CNT) -#define REG_ADDR_DMA2CNT_L (REG_BASE + REG_OFFSET_DMA2CNT_L) -#define REG_ADDR_DMA2CNT_H (REG_BASE + REG_OFFSET_DMA2CNT_H) -#define REG_ADDR_DMA3 (REG_BASE + REG_OFFSET_DMA3) -#define REG_ADDR_DMA3SAD (REG_BASE + REG_OFFSET_DMA3SAD) -#define REG_ADDR_DMA3DAD (REG_BASE + REG_OFFSET_DMA3DAD) -#define REG_ADDR_DMA3CNT (REG_BASE + REG_OFFSET_DMA3CNT) -#define REG_ADDR_DMA3CNT_L (REG_BASE + REG_OFFSET_DMA3CNT_L) -#define REG_ADDR_DMA3CNT_H (REG_BASE + REG_OFFSET_DMA3CNT_H) - -#define REG_ADDR_TMCNT (REG_BASE + REG_OFFSET_TMCNT) -#define REG_ADDR_TMCNT_L (REG_BASE + REG_OFFSET_TMCNT_L) -#define REG_ADDR_TMCNT_H (REG_BASE + REG_OFFSET_TMCNT_H) -#define REG_ADDR_TM0CNT (REG_BASE + REG_OFFSET_TM0CNT) -#define REG_ADDR_TM0CNT_L (REG_BASE + REG_OFFSET_TM0CNT_L) -#define REG_ADDR_TM0CNT_H (REG_BASE + REG_OFFSET_TM0CNT_H) -#define REG_ADDR_TM1CNT (REG_BASE + REG_OFFSET_TM1CNT) -#define REG_ADDR_TM1CNT_L (REG_BASE + REG_OFFSET_TM1CNT_L) -#define REG_ADDR_TM1CNT_H (REG_BASE + REG_OFFSET_TM1CNT_H) -#define REG_ADDR_TM2CNT (REG_BASE + REG_OFFSET_TM2CNT) -#define REG_ADDR_TM2CNT_L (REG_BASE + REG_OFFSET_TM2CNT_L) -#define REG_ADDR_TM2CNT_H (REG_BASE + REG_OFFSET_TM2CNT_H) -#define REG_ADDR_TM3CNT (REG_BASE + REG_OFFSET_TM3CNT) -#define REG_ADDR_TM3CNT_L (REG_BASE + REG_OFFSET_TM3CNT_L) -#define REG_ADDR_TM3CNT_H (REG_BASE + REG_OFFSET_TM3CNT_H) - -#define REG_ADDR_SIOCNT (REG_BASE + REG_OFFSET_SIOCNT) -#define REG_ADDR_SIODATA8 (REG_BASE + REG_OFFSET_SIODATA8) -#define REG_ADDR_SIODATA32 (REG_BASE + REG_OFFSET_SIODATA32) -#define REG_ADDR_SIOMLT_SEND (REG_BASE + REG_OFFSET_SIOMLT_SEND) -#define REG_ADDR_SIOMLT_RECV (REG_BASE + REG_OFFSET_SIOMLT_RECV) -#define REG_ADDR_SIOMULTI0 (REG_BASE + REG_OFFSET_SIOMULTI0) -#define REG_ADDR_SIOMULTI1 (REG_BASE + REG_OFFSET_SIOMULTI1) -#define REG_ADDR_SIOMULTI2 (REG_BASE + REG_OFFSET_SIOMULTI2) -#define REG_ADDR_SIOMULTI3 (REG_BASE + REG_OFFSET_SIOMULTI3) - -#define REG_ADDR_KEYINPUT (REG_BASE + REG_OFFSET_KEYINPUT) -#define REG_ADDR_KEYCNT (REG_BASE + REG_OFFSET_KEYCNT) - -#define REG_ADDR_RCNT (REG_BASE + REG_OFFSET_RCNT) - -#define REG_ADDR_JOYCNT (REG_BASE + REG_OFFSET_JOYCNT) -#define REG_ADDR_JOYSTAT (REG_BASE + REG_OFFSET_JOYSTAT) -#define REG_ADDR_JOY_RECV (REG_BASE + REG_OFFSET_JOY_RECV) -#define REG_ADDR_JOY_RECV_L (REG_BASE + REG_OFFSET_JOY_RECV_L) -#define REG_ADDR_JOY_RECV_H (REG_BASE + REG_OFFSET_JOY_RECV_H) -#define REG_ADDR_JOY_TRANS (REG_BASE + REG_OFFSET_JOY_TRANS) -#define REG_ADDR_JOY_TRANS_L (REG_BASE + REG_OFFSET_JOY_TRANS_L) -#define REG_ADDR_JOY_TRANS_H (REG_BASE + REG_OFFSET_JOY_TRANS_H) - -#define REG_ADDR_IME (REG_BASE + REG_OFFSET_IME) -#define REG_ADDR_IE (REG_BASE + REG_OFFSET_IE) -#define REG_ADDR_IF (REG_BASE + REG_OFFSET_IF) - -#define REG_ADDR_WAITCNT (REG_BASE + REG_OFFSET_WAITCNT) - -// I/O registers - -#define REG_DISPCNT (*(vu16 *)REG_ADDR_DISPCNT) -#define REG_DISPSTAT (*(vu16 *)REG_ADDR_DISPSTAT) -#define REG_VCOUNT (*(vu16 *)REG_ADDR_VCOUNT) -#define REG_BG0CNT (*(vu16 *)REG_ADDR_BG0CNT) -#define REG_BG1CNT (*(vu16 *)REG_ADDR_BG1CNT) -#define REG_BG2CNT (*(vu16 *)REG_ADDR_BG2CNT) -#define REG_BG3CNT (*(vu16 *)REG_ADDR_BG3CNT) -#define REG_BG0HOFS (*(vu16 *)REG_ADDR_BG0HOFS) -#define REG_BG0VOFS (*(vu16 *)REG_ADDR_BG0VOFS) -#define REG_BG1HOFS (*(vu16 *)REG_ADDR_BG1HOFS) -#define REG_BG1VOFS (*(vu16 *)REG_ADDR_BG1VOFS) -#define REG_BG2HOFS (*(vu16 *)REG_ADDR_BG2HOFS) -#define REG_BG2VOFS (*(vu16 *)REG_ADDR_BG2VOFS) -#define REG_BG3HOFS (*(vu16 *)REG_ADDR_BG3HOFS) -#define REG_BG3VOFS (*(vu16 *)REG_ADDR_BG3VOFS) -#define REG_BG2PA (*(vu16 *)REG_ADDR_BG2PA) -#define REG_BG2PB (*(vu16 *)REG_ADDR_BG2PB) -#define REG_BG2PC (*(vu16 *)REG_ADDR_BG2PC) -#define REG_BG2PD (*(vu16 *)REG_ADDR_BG2PD) -#define REG_BG2X (*(vu32 *)REG_ADDR_BG2X) -#define REG_BG2X_L (*(vu16 *)REG_ADDR_BG2X_L) -#define REG_BG2X_H (*(vu16 *)REG_ADDR_BG2X_H) -#define REG_BG2Y (*(vu32 *)REG_ADDR_BG2Y) -#define REG_BG2Y_L (*(vu16 *)REG_ADDR_BG2Y_L) -#define REG_BG2Y_H (*(vu16 *)REG_ADDR_BG2Y_H) -#define REG_BG3PA (*(vu16 *)REG_ADDR_BG3PA) -#define REG_BG3PB (*(vu16 *)REG_ADDR_BG3PB) -#define REG_BG3PC (*(vu16 *)REG_ADDR_BG3PC) -#define REG_BG3PD (*(vu16 *)REG_ADDR_BG3PD) -#define REG_BG3X (*(vu32 *)REG_ADDR_BG3X) -#define REG_BG3X_L (*(vu16 *)REG_ADDR_BG3X_L) -#define REG_BG3X_H (*(vu16 *)REG_ADDR_BG3X_H) -#define REG_BG3Y (*(vu32 *)REG_ADDR_BG3Y) -#define REG_BG3Y_L (*(vu16 *)REG_ADDR_BG3Y_L) -#define REG_BG3Y_H (*(vu16 *)REG_ADDR_BG3Y_H) -#define REG_WIN0H (*(vu16 *)REG_ADDR_WIN0H) -#define REG_WIN1H (*(vu16 *)REG_ADDR_WIN1H) -#define REG_WIN0V (*(vu16 *)REG_ADDR_WIN0V) -#define REG_WIN1V (*(vu16 *)REG_ADDR_WIN1V) -#define REG_WININ (*(vu16 *)REG_ADDR_WININ) -#define REG_WINOUT (*(vu16 *)REG_ADDR_WINOUT) -#define REG_MOSAIC (*(vu16 *)REG_ADDR_MOSAIC) -#define REG_BLDCNT (*(vu16 *)REG_ADDR_BLDCNT) -#define REG_BLDALPHA (*(vu16 *)REG_ADDR_BLDALPHA) -#define REG_BLDY (*(vu16 *)REG_ADDR_BLDY) - -#define REG_SOUND1CNT_L (*(vu16 *)REG_ADDR_SOUND1CNT_L) -#define REG_NR10 (*(vu8 *)REG_ADDR_NR10) -#define REG_SOUND1CNT_H (*(vu16 *)REG_ADDR_SOUND1CNT_H) -#define REG_NR11 (*(vu8 *)REG_ADDR_NR11) -#define REG_NR12 (*(vu8 *)REG_ADDR_NR12) -#define REG_SOUND1CNT_X (*(vu16 *)REG_ADDR_SOUND1CNT_X) -#define REG_NR13 (*(vu8 *)REG_ADDR_NR13) -#define REG_NR14 (*(vu8 *)REG_ADDR_NR14) -#define REG_SOUND2CNT_L (*(vu16 *)REG_ADDR_SOUND2CNT_L) -#define REG_NR21 (*(vu8 *)REG_ADDR_NR21) -#define REG_NR22 (*(vu8 *)REG_ADDR_NR22) -#define REG_SOUND2CNT_H (*(vu16 *)REG_ADDR_SOUND2CNT_H) -#define REG_NR23 (*(vu8 *)REG_ADDR_NR23) -#define REG_NR24 (*(vu8 *)REG_ADDR_NR24) -#define REG_SOUND3CNT_L (*(vu16 *)REG_ADDR_SOUND3CNT_L) -#define REG_NR30 (*(vu8 *)REG_ADDR_NR30) -#define REG_SOUND3CNT_H (*(vu16 *)REG_ADDR_SOUND3CNT_H) -#define REG_NR31 (*(vu8 *)REG_ADDR_NR31) -#define REG_NR32 (*(vu8 *)REG_ADDR_NR32) -#define REG_SOUND3CNT_X (*(vu16 *)REG_ADDR_SOUND3CNT_X) -#define REG_NR33 (*(vu8 *)REG_ADDR_NR33) -#define REG_NR34 (*(vu8 *)REG_ADDR_NR34) -#define REG_SOUND4CNT_L (*(vu16 *)REG_ADDR_SOUND4CNT_L) -#define REG_NR41 (*(vu8 *)REG_ADDR_NR41) -#define REG_NR42 (*(vu8 *)REG_ADDR_NR42) -#define REG_SOUND4CNT_H (*(vu16 *)REG_ADDR_SOUND4CNT_H) -#define REG_NR43 (*(vu8 *)REG_ADDR_NR43) -#define REG_NR44 (*(vu8 *)REG_ADDR_NR44) -#define REG_SOUNDCNT_L (*(vu16 *)REG_ADDR_SOUNDCNT_L) -#define REG_NR50 (*(vu8 *)REG_ADDR_NR50) -#define REG_NR51 (*(vu8 *)REG_ADDR_NR51) -#define REG_SOUNDCNT_H (*(vu16 *)REG_ADDR_SOUNDCNT_H) -#define REG_SOUNDCNT_X (*(vu16 *)REG_ADDR_SOUNDCNT_X) -#define REG_NR52 (*(vu8 *)REG_ADDR_NR52) -#define REG_SOUNDBIAS (*(vu16 *)REG_ADDR_SOUNDBIAS) -#define REG_SOUNDBIAS_L (*(vu8 *)REG_ADDR_SOUNDBIAS_L) -#define REG_SOUNDBIAS_H (*(vu8 *)REG_ADDR_SOUNDBIAS_H) -#define REG_WAVE_RAM0 (*(vu32 *)REG_ADDR_WAVE_RAM0) -#define REG_WAVE_RAM1 (*(vu32 *)REG_ADDR_WAVE_RAM1) -#define REG_WAVE_RAM2 (*(vu32 *)REG_ADDR_WAVE_RAM2) -#define REG_WAVE_RAM3 (*(vu32 *)REG_ADDR_WAVE_RAM3) -#define REG_FIFO_A (*(vu32 *)REG_ADDR_FIFO_A) -#define REG_FIFO_B (*(vu32 *)REG_ADDR_FIFO_B) - -#define REG_DMA0SAD (*(vu32 *)REG_ADDR_DMA0SAD) -#define REG_DMA0DAD (*(vu32 *)REG_ADDR_DMA0DAD) -#define REG_DMA0CNT (*(vu32 *)REG_ADDR_DMA0CNT) -#define REG_DMA0CNT_L (*(vu16 *)REG_ADDR_DMA0CNT_L) -#define REG_DMA0CNT_H (*(vu16 *)REG_ADDR_DMA0CNT_H) - -#define REG_DMA1SAD (*(vu32 *)REG_ADDR_DMA1SAD) -#define REG_DMA1DAD (*(vu32 *)REG_ADDR_DMA1DAD) -#define REG_DMA1CNT (*(vu32 *)REG_ADDR_DMA1CNT) -#define REG_DMA1CNT_L (*(vu16 *)REG_ADDR_DMA1CNT_L) -#define REG_DMA1CNT_H (*(vu16 *)REG_ADDR_DMA1CNT_H) - -#define REG_DMA2SAD (*(vu32 *)REG_ADDR_DMA2SAD) -#define REG_DMA2DAD (*(vu32 *)REG_ADDR_DMA2DAD) -#define REG_DMA2CNT (*(vu32 *)REG_ADDR_DMA2CNT) -#define REG_DMA2CNT_L (*(vu16 *)REG_ADDR_DMA2CNT_L) -#define REG_DMA2CNT_H (*(vu16 *)REG_ADDR_DMA2CNT_H) - -#define REG_DMA3SAD (*(vu32 *)REG_ADDR_DMA3SAD) -#define REG_DMA3DAD (*(vu32 *)REG_ADDR_DMA3DAD) -#define REG_DMA3CNT (*(vu32 *)REG_ADDR_DMA3CNT) -#define REG_DMA3CNT_L (*(vu16 *)REG_ADDR_DMA3CNT_L) -#define REG_DMA3CNT_H (*(vu16 *)REG_ADDR_DMA3CNT_H) - -#define REG_TMCNT(n) (*(vu16 *)(REG_ADDR_TMCNT + ((n) * 4))) -#define REG_TMCNT_L(n) (*(vu16 *)(REG_ADDR_TMCNT_L + ((n) * 4))) -#define REG_TMCNT_H(n) (*(vu16 *)(REG_ADDR_TMCNT_H + ((n) * 4))) -#define REG_TM0CNT (*(vu32 *)REG_ADDR_TM0CNT) -#define REG_TM0CNT_L (*(vu16 *)REG_ADDR_TM0CNT_L) -#define REG_TM0CNT_H (*(vu16 *)REG_ADDR_TM0CNT_H) -#define REG_TM1CNT (*(vu32 *)REG_ADDR_TM1CNT) -#define REG_TM1CNT_L (*(vu16 *)REG_ADDR_TM1CNT_L) -#define REG_TM1CNT_H (*(vu16 *)REG_ADDR_TM1CNT_H) -#define REG_TM2CNT (*(vu32 *)REG_ADDR_TM2CNT) -#define REG_TM2CNT_L (*(vu16 *)REG_ADDR_TM2CNT_L) -#define REG_TM2CNT_H (*(vu16 *)REG_ADDR_TM2CNT_H) -#define REG_TM3CNT (*(vu32 *)REG_ADDR_TM3CNT) -#define REG_TM3CNT_L (*(vu16 *)REG_ADDR_TM3CNT_L) -#define REG_TM3CNT_H (*(vu16 *)REG_ADDR_TM3CNT_H) - -#define REG_SIOCNT (*(vu16 *)REG_ADDR_SIOCNT) -#define REG_SIODATA8 (*(vu16 *)REG_ADDR_SIODATA8) -#define REG_SIODATA32 (*(vu32 *)REG_ADDR_SIODATA32) -#define REG_SIOMLT_SEND (*(vu16 *)REG_ADDR_SIOMLT_SEND) -#define REG_SIOMLT_RECV (*(vu64 *)REG_ADDR_SIOMLT_RECV) -#define REG_SIOMULTI0 (*(vu16 *)REG_ADDR_SIOMULTI0) -#define REG_SIOMULTI1 (*(vu16 *)REG_ADDR_SIOMULTI1) -#define REG_SIOMULTI2 (*(vu16 *)REG_ADDR_SIOMULTI2) -#define REG_SIOMULTI3 (*(vu16 *)REG_ADDR_SIOMULTI3) - -#define REG_KEYINPUT (*(vu16 *)REG_ADDR_KEYINPUT) -#define REG_KEYCNT (*(vu16 *)REG_ADDR_KEYCNT) - -#define REG_RCNT (*(vu16 *)REG_ADDR_RCNT) - -#define REG_IME (*(vu16 *)REG_ADDR_IME) -#define REG_IE (*(vu16 *)REG_ADDR_IE) -#define REG_IF (*(vu16 *)REG_ADDR_IF) - -#define REG_WAITCNT (*(vu16 *)REG_ADDR_WAITCNT) - -// I/O register fields - -// DISPCNT -#define DISPCNT_MODE_0 0x0000 // BG0: text, BG1: text, BG2: text, BG3: text -#define DISPCNT_MODE_1 0x0001 // BG0: text, BG1: text, BG2: affine, BG3: off -#define DISPCNT_MODE_2 0x0002 // BG0: off, BG1: off, BG2: affine, BG3: affine -#define DISPCNT_MODE_3 0x0003 // Bitmap mode, 240x160, BGR555 color -#define DISPCNT_MODE_4 0x0004 // Bitmap mode, 240x160, 256 color palette -#define DISPCNT_MODE_5 0x0005 // Bitmap mode, 160x128, BGR555 color -#define DISPCNT_HBLANK_INTERVAL 0x0020 // Allow access to OAM during H-Blank -#define DISPCNT_OBJ_1D_MAP 0x0040 -#define DISPCNT_FORCED_BLANK 0x0080 -#define DISPCNT_BG0_ON 0x0100 -#define DISPCNT_BG1_ON 0x0200 -#define DISPCNT_BG2_ON 0x0400 -#define DISPCNT_BG3_ON 0x0800 -#define DISPCNT_BG_ALL_ON 0x0F00 -#define DISPCNT_OBJ_ON 0x1000 -#define DISPCNT_WIN0_ON 0x2000 -#define DISPCNT_WIN1_ON 0x4000 -#define DISPCNT_OBJWIN_ON 0x8000 - -// DISPSTAT -#define DISPSTAT_VBLANK 0x0001 // in V-Blank -#define DISPSTAT_HBLANK 0x0002 // in H-Blank -#define DISPSTAT_VCOUNT 0x0004 // V-Count match -#define DISPSTAT_VBLANK_INTR 0x0008 // V-Blank interrupt enabled -#define DISPSTAT_HBLANK_INTR 0x0010 // H-Blank interrupt enabled -#define DISPSTAT_VCOUNT_INTR 0x0020 // V-Count interrupt enabled - -// BGCNT -#define BGCNT_PRIORITY(n) (n) // Values 0 - 3. Lower priority BGs will be drawn on top of higher priority BGs. -#define BGCNT_CHARBASE(n) ((n) << 2) // Values 0 - 3. Base block for tile pixel data. -#define BGCNT_MOSAIC 0x0040 -#define BGCNT_16COLOR 0x0000 // 4 bits per pixel -#define BGCNT_256COLOR 0x0080 // 8 bits per pixel -#define BGCNT_SCREENBASE(n) ((n) << 8) // Values 0 - 31. Base block for tile map. -#define BGCNT_WRAP 0x2000 // Only affects affine BGs. Text BGs wrap by default. -#define BGCNT_TXT256x256 0x0000 // Internal screen size size of text mode BG in pixels. -#define BGCNT_TXT512x256 0x4000 -#define BGCNT_TXT256x512 0x8000 -#define BGCNT_TXT512x512 0xC000 -#define BGCNT_AFF128x128 0x0000 // Internal screen size size of affine mode BG in pixels. -#define BGCNT_AFF256x256 0x4000 -#define BGCNT_AFF512x512 0x8000 -#define BGCNT_AFF1024x1024 0xC000 - -// WININ/OUT -#define WININ_WIN0_BG0 (1 << 0) -#define WININ_WIN0_BG1 (1 << 1) -#define WININ_WIN0_BG2 (1 << 2) -#define WININ_WIN0_BG3 (1 << 3) -#define WININ_WIN0_BG_ALL (WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3) -#define WININ_WIN0_OBJ (1 << 4) -#define WININ_WIN0_CLR (1 << 5) -#define WININ_WIN1_BG0 (1 << 8) -#define WININ_WIN1_BG1 (1 << 9) -#define WININ_WIN1_BG2 (1 << 10) -#define WININ_WIN1_BG3 (1 << 11) -#define WININ_WIN1_BG_ALL (WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3) -#define WININ_WIN1_OBJ (1 << 12) -#define WININ_WIN1_CLR (1 << 13) - -#define WINOUT_WIN01_BG0 (1 << 0) -#define WINOUT_WIN01_BG1 (1 << 1) -#define WINOUT_WIN01_BG2 (1 << 2) -#define WINOUT_WIN01_BG3 (1 << 3) -#define WINOUT_WIN01_BG_ALL (WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3) -#define WINOUT_WIN01_OBJ (1 << 4) -#define WINOUT_WIN01_CLR (1 << 5) -#define WINOUT_WINOBJ_BG0 (1 << 8) -#define WINOUT_WINOBJ_BG1 (1 << 9) -#define WINOUT_WINOBJ_BG2 (1 << 10) -#define WINOUT_WINOBJ_BG3 (1 << 11) -#define WINOUT_WINOBJ_BG_ALL (WINOUT_WINOBJ_BG0 | WINOUT_WINOBJ_BG1 | WINOUT_WINOBJ_BG2 | WINOUT_WINOBJ_BG3) -#define WINOUT_WINOBJ_OBJ (1 << 12) -#define WINOUT_WINOBJ_CLR (1 << 13) - -#define WIN_RANGE(a, b) (((a) << 8) | (b)) -#define WIN_RANGE2(a, b) ((b) | ((a) << 8)) - -// BLDCNT -// Bits 0-5 select layers for the 1st target -#define BLDCNT_TGT1_BG0 (1 << 0) -#define BLDCNT_TGT1_BG1 (1 << 1) -#define BLDCNT_TGT1_BG2 (1 << 2) -#define BLDCNT_TGT1_BG3 (1 << 3) -#define BLDCNT_TGT1_OBJ (1 << 4) -#define BLDCNT_TGT1_BD (1 << 5) -#define BLDCNT_TGT1_ALL (BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD) -// Bits 6-7 select the special effect -#define BLDCNT_EFFECT_NONE (0 << 6) // no special effect -#define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA) -#define BLDCNT_EFFECT_LIGHTEN (2 << 6) // 1st target becomes whiter (controlled by BLDY) -#define BLDCNT_EFFECT_DARKEN (3 << 6) // 1st target becomes blacker (controlled by BLDY) -// Bits 8-13 select layers for the 2nd target -#define BLDCNT_TGT2_BG0 (1 << 8) -#define BLDCNT_TGT2_BG1 (1 << 9) -#define BLDCNT_TGT2_BG2 (1 << 10) -#define BLDCNT_TGT2_BG3 (1 << 11) -#define BLDCNT_TGT2_OBJ (1 << 12) -#define BLDCNT_TGT2_BD (1 << 13) -#define BLDCNT_TGT2_ALL (BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD) - -// BLDALPHA -#define BLDALPHA_BLEND(target1, target2) (((target2) << 8) | (target1)) - -// SOUNDCNT_H -#define SOUND_CGB_MIX_QUARTER 0x0000 -#define SOUND_CGB_MIX_HALF 0x0001 -#define SOUND_CGB_MIX_FULL 0x0002 -#define SOUND_A_MIX_HALF 0x0000 -#define SOUND_A_MIX_FULL 0x0004 -#define SOUND_B_MIX_HALF 0x0000 -#define SOUND_B_MIX_FULL 0x0008 -#define SOUND_ALL_MIX_FULL 0x000E -#define SOUND_A_RIGHT_OUTPUT 0x0100 -#define SOUND_A_LEFT_OUTPUT 0x0200 -#define SOUND_A_TIMER_0 0x0000 -#define SOUND_A_TIMER_1 0x0400 -#define SOUND_A_FIFO_RESET 0x0800 -#define SOUND_B_RIGHT_OUTPUT 0x1000 -#define SOUND_B_LEFT_OUTPUT 0x2000 -#define SOUND_B_TIMER_0 0x0000 -#define SOUND_B_TIMER_1 0x4000 -#define SOUND_B_FIFO_RESET 0x8000 - -// SOUNDCNT_X -#define SOUND_1_ON 0x0001 -#define SOUND_2_ON 0x0002 -#define SOUND_3_ON 0x0004 -#define SOUND_4_ON 0x0008 -#define SOUND_MASTER_ENABLE 0x0080 - -// DMA -#define DMA_DEST_INC 0x0000 -#define DMA_DEST_DEC 0x0020 -#define DMA_DEST_FIXED 0x0040 -#define DMA_DEST_RELOAD 0x0060 -#define DMA_SRC_INC 0x0000 -#define DMA_SRC_DEC 0x0080 -#define DMA_SRC_FIXED 0x0100 -#define DMA_REPEAT 0x0200 -#define DMA_16BIT 0x0000 -#define DMA_32BIT 0x0400 -#define DMA_DREQ_ON 0x0800 -#define DMA_START_NOW 0x0000 -#define DMA_START_VBLANK 0x1000 -#define DMA_START_HBLANK 0x2000 -#define DMA_START_SPECIAL 0x3000 -#define DMA_START_MASK 0x3000 -#define DMA_INTR_ENABLE 0x4000 -#define DMA_ENABLE 0x8000 - -// timer -#define TIMER_1CLK 0x00 -#define TIMER_64CLK 0x01 -#define TIMER_256CLK 0x02 -#define TIMER_1024CLK 0x03 -#define TIMER_INTR_ENABLE 0x40 -#define TIMER_ENABLE 0x80 - -// serial -#define SIO_ID 0x0030 // Communication ID - -#define SIO_8BIT_MODE 0x0000 // Normal 8-bit communication mode -#define SIO_32BIT_MODE 0x1000 // Normal 32-bit communication mode -#define SIO_MULTI_MODE 0x2000 // Multi-player communication mode -#define SIO_UART_MODE 0x3000 // UART communication mode - -#define SIO_9600_BPS 0x0000 // baud rate 9600 bps -#define SIO_38400_BPS 0x0001 // 38400 bps -#define SIO_57600_BPS 0x0002 // 57600 bps -#define SIO_115200_BPS 0x0003 // 115200 bps - -#define SIO_MULTI_SI 0x0004 // Multi-player communication SI terminal -#define SIO_MULTI_SD 0x0008 // SD terminal -#define SIO_MULTI_BUSY 0x0080 - -#define SIO_ERROR 0x0040 // Detect error -#define SIO_START 0x0080 // Start transfer -#define SIO_ENABLE 0x0080 // Enable SIO - -#define SIO_INTR_ENABLE 0x4000 - -#define SIO_MULTI_SI_SHIFT 2 -#define SIO_MULTI_SI_MASK 0x1 -#define SIO_MULTI_DI_SHIFT 3 -#define SIO_MULTI_DI_MASK 0x1 - -// keys -#define A_BUTTON 0x0001 -#define B_BUTTON 0x0002 -#define SELECT_BUTTON 0x0004 -#define START_BUTTON 0x0008 -#define DPAD_RIGHT 0x0010 -#define DPAD_LEFT 0x0020 -#define DPAD_UP 0x0040 -#define DPAD_DOWN 0x0080 -#define R_BUTTON 0x0100 -#define L_BUTTON 0x0200 -#define KEYS_MASK 0x03FF -#define KEY_INTR_ENABLE 0x0400 -#define KEY_OR_INTR 0x0000 -#define KEY_AND_INTR 0x8000 -#define DPAD_ANY ((DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN)) -#define JOY_EXCL_DPAD 0x030F - -// interrupt flags -#define INTR_FLAG_VBLANK (1 << 0) -#define INTR_FLAG_HBLANK (1 << 1) -#define INTR_FLAG_VCOUNT (1 << 2) -#define INTR_FLAG_TIMER0 (1 << 3) -#define INTR_FLAG_TIMER1 (1 << 4) -#define INTR_FLAG_TIMER2 (1 << 5) -#define INTR_FLAG_TIMER3 (1 << 6) -#define INTR_FLAG_SERIAL (1 << 7) -#define INTR_FLAG_DMA0 (1 << 8) -#define INTR_FLAG_DMA1 (1 << 9) -#define INTR_FLAG_DMA2 (1 << 10) -#define INTR_FLAG_DMA3 (1 << 11) -#define INTR_FLAG_KEYPAD (1 << 12) -#define INTR_FLAG_GAMEPAK (1 << 13) - -// WAITCNT -#define WAITCNT_SRAM_4 (0 << 0) -#define WAITCNT_SRAM_3 (1 << 0) -#define WAITCNT_SRAM_2 (2 << 0) -#define WAITCNT_SRAM_8 (3 << 0) -#define WAITCNT_SRAM_MASK (3 << 0) - -#define WAITCNT_WS0_N_4 (0 << 2) -#define WAITCNT_WS0_N_3 (1 << 2) -#define WAITCNT_WS0_N_2 (2 << 2) -#define WAITCNT_WS0_N_8 (3 << 2) -#define WAITCNT_WS0_N_MASK (3 << 2) - -#define WAITCNT_WS0_S_2 (0 << 4) -#define WAITCNT_WS0_S_1 (1 << 4) - -#define WAITCNT_WS1_N_4 (0 << 5) -#define WAITCNT_WS1_N_3 (1 << 5) -#define WAITCNT_WS1_N_2 (2 << 5) -#define WAITCNT_WS1_N_8 (3 << 5) -#define WAITCNT_WS1_N_MASK (3 << 5) - -#define WAITCNT_WS1_S_4 (0 << 7) -#define WAITCNT_WS1_S_1 (1 << 7) - -#define WAITCNT_WS2_N_4 (0 << 8) -#define WAITCNT_WS2_N_3 (1 << 8) -#define WAITCNT_WS2_N_2 (2 << 8) -#define WAITCNT_WS2_N_8 (3 << 8) -#define WAITCNT_WS2_N_MASK (3 << 8) - -#define WAITCNT_WS2_S_8 (0 << 10) -#define WAITCNT_WS2_S_1 (1 << 10) - -#define WAITCNT_PHI_OUT_NONE (0 << 11) -#define WAITCNT_PHI_OUT_4MHZ (1 << 11) -#define WAITCNT_PHI_OUT_8MHZ (2 << 11) -#define WAITCNT_PHI_OUT_16MHZ (3 << 11) -#define WAITCNT_PHI_OUT_MASK (3 << 11) - -#define WAITCNT_PREFETCH_ENABLE (1 << 14) - -#define WAITCNT_AGB (0 << 15) -#define WAITCNT_CGB (1 << 15) - -#endif // GUARD_GBA_IO_REG_H diff --git a/berry_fix/payload/include/gba/isagbprint.h b/berry_fix/payload/include/gba/isagbprint.h deleted file mode 100644 index c5eb456c3f..0000000000 --- a/berry_fix/payload/include/gba/isagbprint.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef GUARD_GBA_ISAGBPRINT_H -#define GUARD_GBA_ISAGBPRINT_H - -#ifdef NDEBUG -#define AGBPrintInit() -#define AGBPutc(cChr) -#define AGBPrint(pBuf) -#define AGBPrintf(pBuf, ...) -#define AGBPrintFlush1Block() -#define AGBPrintFlush() -#define AGBAssert(pFile, nLine, pExpression, nStopProgram) -#else -void AGBPrintInit(void); -void AGBPutc(const char cChr); -void AGBPrint(const char *pBuf); -void AGBPrintf(const char *pBuf, ...); -void AGBPrintFlush1Block(void); -void AGBPrintFlush(void); -void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopProgram); -#endif - -#undef AGB_ASSERT -#ifdef NDEBUG -#define AGB_ASSERT(exp) -#else -#define AGB_ASSERT(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 1); -#endif - -#undef AGB_WARNING -#ifdef NDEBUG -#define AGB_WARNING(exp) -#else -#define AGB_WARNING(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 0); -#endif - -// for matching purposes - -#ifdef NDEBUG -#define AGB_ASSERT_EX(exp, file, line) -#else -#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 1); -#endif - -#ifdef NDEBUG -#define AGB_WARNING_EX(exp, file, line) -#else -#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 0); -#endif - -#endif // GUARD_GBA_ISAGBPRINT_H diff --git a/berry_fix/payload/include/gba/m4a_internal.h b/berry_fix/payload/include/gba/m4a_internal.h deleted file mode 100644 index 1aca675854..0000000000 --- a/berry_fix/payload/include/gba/m4a_internal.h +++ /dev/null @@ -1,467 +0,0 @@ -#ifndef GUARD_GBA_M4A_INTERNAL_H -#define GUARD_GBA_M4A_INTERNAL_H - -#include "gba/gba.h" - -// ASCII encoding of 'Smsh' in reverse -// This is presumably short for SMASH, the developer of MKS4AGB. -#define ID_NUMBER 0x68736D53 - -#define C_V 0x40 // center value for PAN, BEND, and TUNE - -#define SOUND_MODE_REVERB_VAL 0x0000007F -#define SOUND_MODE_REVERB_SET 0x00000080 -#define SOUND_MODE_MAXCHN 0x00000F00 -#define SOUND_MODE_MAXCHN_SHIFT 8 -#define SOUND_MODE_MASVOL 0x0000F000 -#define SOUND_MODE_MASVOL_SHIFT 12 -#define SOUND_MODE_FREQ_05734 0x00010000 -#define SOUND_MODE_FREQ_07884 0x00020000 -#define SOUND_MODE_FREQ_10512 0x00030000 -#define SOUND_MODE_FREQ_13379 0x00040000 -#define SOUND_MODE_FREQ_15768 0x00050000 -#define SOUND_MODE_FREQ_18157 0x00060000 -#define SOUND_MODE_FREQ_21024 0x00070000 -#define SOUND_MODE_FREQ_26758 0x00080000 -#define SOUND_MODE_FREQ_31536 0x00090000 -#define SOUND_MODE_FREQ_36314 0x000A0000 -#define SOUND_MODE_FREQ_40137 0x000B0000 -#define SOUND_MODE_FREQ_42048 0x000C0000 -#define SOUND_MODE_FREQ 0x000F0000 -#define SOUND_MODE_FREQ_SHIFT 16 -#define SOUND_MODE_DA_BIT_9 0x00800000 -#define SOUND_MODE_DA_BIT_8 0x00900000 -#define SOUND_MODE_DA_BIT_7 0x00A00000 -#define SOUND_MODE_DA_BIT_6 0x00B00000 -#define SOUND_MODE_DA_BIT 0x00B00000 -#define SOUND_MODE_DA_BIT_SHIFT 20 - -struct WaveData -{ - u16 type; - u16 status; - u32 freq; - u32 loopStart; - u32 size; // number of samples - s8 data[1]; // samples -}; - -#define TONEDATA_TYPE_CGB 0x07 -#define TONEDATA_TYPE_FIX 0x08 -#define TONEDATA_TYPE_SPL 0x40 // key split -#define TONEDATA_TYPE_RHY 0x80 // rhythm - -#define TONEDATA_P_S_PAN 0xc0 -#define TONEDATA_P_S_PAM TONEDATA_P_S_PAN - -struct ToneData -{ - u8 type; - u8 key; - u8 length; // sound length (compatible sound) - u8 pan_sweep; // pan or sweep (compatible sound ch. 1) - struct WaveData *wav; - u8 attack; - u8 decay; - u8 sustain; - u8 release; -}; - -struct CgbChannel -{ - u8 sf; - u8 ty; - u8 rightVolume; - u8 leftVolume; - u8 at; - u8 de; - u8 su; - u8 re; - u8 ky; - u8 ev; - u8 eg; - u8 ec; - u8 echoVolume; - u8 echoLength; - u8 d1; - u8 d2; - u8 gt; - u8 mk; - u8 ve; - u8 pr; - u8 rp; - u8 d3[3]; - u8 d5; - u8 sg; - u8 n4; - u8 pan; - u8 panMask; - u8 mo; - u8 le; - u8 sw; - u32 fr; - u32 wp; - u32 cp; - u32 tp; - u32 pp; - u32 np; - u8 d4[8]; -}; - -struct MusicPlayerTrack; - -struct SoundChannel -{ - u8 status; - u8 type; - u8 rightVolume; - u8 leftVolume; - u8 attack; - u8 decay; - u8 sustain; - u8 release; - u8 ky; - u8 ev; - u8 er; - u8 el; - u8 echoVolume; - u8 echoLength; - u8 d1; - u8 d2; - u8 gt; - u8 mk; - u8 ve; - u8 pr; - u8 rp; - u8 d3[3]; - u32 ct; - u32 fw; - u32 freq; - struct WaveData *wav; - u32 cp; - struct MusicPlayerTrack *track; - u32 pp; - u32 np; - u32 d4; - u16 xpi; - u16 xpc; -}; - -#define MAX_DIRECTSOUND_CHANNELS 12 - -#define PCM_DMA_BUF_SIZE 1584 // size of Direct Sound buffer - -struct SoundInfo -{ - // This field is normally equal to ID_NUMBER but it is set to other - // values during sensitive operations for locking purposes. - // This field should be volatile but isn't. This could potentially cause - // race conditions. - u32 ident; - - vu8 pcmDmaCounter; - - // Direct Sound - u8 reverb; - u8 maxChans; - u8 masterVolume; - u8 freq; - - u8 mode; - u8 c15; - u8 pcmDmaPeriod; // number of V-blanks per PCM DMA - u8 maxLines; - u8 gap[3]; - s32 pcmSamplesPerVBlank; - s32 pcmFreq; - s32 divFreq; - struct CgbChannel *cgbChans; - u32 func; - u32 intp; - void (*CgbSound)(void); - void (*CgbOscOff)(u8); - u32 (*MidiKeyToCgbFreq)(u8, u8, u8); - u32 MPlayJumpTable; - u32 plynote; - u32 ExtVolPit; - u8 gap2[16]; - struct SoundChannel chans[MAX_DIRECTSOUND_CHANNELS]; - s8 pcmBuffer[PCM_DMA_BUF_SIZE * 2]; -}; - -struct SongHeader -{ - u8 trackCount; - u8 blockCount; - u8 priority; - u8 reverb; - struct ToneData *tone; - u8 *part[1]; -}; - -struct PokemonCrySong -{ - u8 trackCount; - u8 blockCount; - u8 priority; - u8 reverb; - struct ToneData *tone; - u8 *part[2]; - u8 gap; - u8 part0; // 0x11 - u8 tuneValue; // 0x12 - u8 gotoCmd; // 0x13 - u32 gotoTarget; // 0x14 - u8 part1; // 0x18 - u8 tuneValue2; // 0x19 - u8 cont[2]; // 0x1A - u8 volCmd; // 0x1C - u8 volumeValue; // 0x1D - u8 unkCmd0D[2]; // 0x1E - u32 unkCmd0DParam; // 0x20 - u8 xreleCmd[2]; // 0x24 - u8 releaseValue; // 0x26 - u8 panCmd; - u8 panValue; // 0x28 - u8 tieCmd; // 0x29 - u8 tieKeyValue; // 0x2A - u8 tieVelocityValue; // 0x2B - u8 unkCmd0C[2]; // 0x2C - u16 unkCmd0CParam; // 0x2E - u8 end[2]; // 0x30 -}; - -#define MPT_FLG_VOLSET 0x01 -#define MPT_FLG_VOLCHG 0x03 -#define MPT_FLG_PITSET 0x04 -#define MPT_FLG_PITCHG 0x0C -#define MPT_FLG_START 0x40 -#define MPT_FLG_EXIST 0x80 - -struct MusicPlayerTrack -{ - u8 flags; - u8 wait; - u8 patternLevel; - u8 repN; - u8 gateTime; - u8 key; - u8 velocity; - u8 runningStatus; - u8 keyM; - u8 pitM; - s8 keyShift; - s8 keyShiftX; - s8 tune; - u8 pitX; - s8 bend; - u8 bendRange; - u8 volMR; - u8 volML; - u8 vol; - u8 volX; - s8 pan; - s8 panX; - s8 modM; - u8 mod; - u8 modT; - u8 lfoSpeed; - u8 lfoSpeedC; - u8 lfoDelay; - u8 lfoDelayC; - u8 priority; - u8 echoVolume; - u8 echoLength; - struct SoundChannel *chan; - struct ToneData tone; - u8 gap[10]; - u16 unk_3A; - u32 unk_3C; - u8 *cmdPtr; - u8 *patternStack[3]; -}; - -#define MUSICPLAYER_STATUS_TRACK 0x0000ffff -#define MUSICPLAYER_STATUS_PAUSE 0x80000000 - -#define MAX_MUSICPLAYER_TRACKS 16 - -#define TEMPORARY_FADE 0x0001 -#define FADE_IN 0x0002 -#define FADE_VOL_MAX 64 -#define FADE_VOL_SHIFT 2 - -struct MusicPlayerInfo -{ - struct SongHeader *songHeader; - u32 status; - u8 trackCount; - u8 priority; - u8 cmd; - u8 unk_B; - u32 clock; - u8 gap[8]; - u8 *memAccArea; - u16 tempoD; - u16 tempoU; - u16 tempoI; - u16 tempoC; - u16 fadeOI; - u16 fadeOC; - u16 fadeOV; - struct MusicPlayerTrack *tracks; - struct ToneData *tone; - u32 ident; - u32 func; - u32 intp; -}; - -struct MusicPlayer -{ - struct MusicPlayerInfo *info; - struct MusicPlayerTrack *track; - u8 unk_8; - u16 unk_A; -}; - -struct Song -{ - struct SongHeader *header; - u16 ms; - u16 me; -}; - -extern const struct MusicPlayer gMPlayTable[]; -extern const struct Song gSongTable[]; - - - -extern u8 gMPlayMemAccArea[]; - -//u8 gPokemonCrySong[52]; -//u8 gPokemonCrySongs[52 * MAX_POKEMON_CRIES]; - -#define MAX_POKEMON_CRIES 2 - -extern struct PokemonCrySong gPokemonCrySong; -extern struct PokemonCrySong gPokemonCrySongs[]; - -extern struct MusicPlayerInfo gPokemonCryMusicPlayers[]; -extern struct MusicPlayerTrack gPokemonCryTracks[]; - -extern char SoundMainRAM[]; - -extern void *gMPlayJumpTable[]; - -typedef void (*XcmdFunc)(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -extern const XcmdFunc gXcmdTable[]; - -extern struct CgbChannel gCgbChans[]; - -extern const u8 gScaleTable[]; -extern const u32 gFreqTable[]; -extern const u16 gPcmSamplesPerVBlankTable[]; - -extern const u8 gCgbScaleTable[]; -extern const s16 gCgbFreqTable[]; -extern const u8 gNoiseTable[]; - -extern const struct PokemonCrySong gPokemonCrySongTemplate; - -extern const struct ToneData voicegroup000; - -extern char gNumMusicPlayers[]; -extern char gMaxLines[]; - -#define NUM_MUSIC_PLAYERS ((u16)gNumMusicPlayers) -#define MAX_LINES ((u32)gMaxLines) - -u32 umul3232H32(u32 multiplier, u32 multiplicand); -void SoundMain(void); -void SoundMainBTM(void); -void TrackStop(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track); -void MPlayMain(void); -void RealClearChain(void *x); - -void MPlayContinue(struct MusicPlayerInfo *mplayInfo); -void MPlayStart(struct MusicPlayerInfo *mplayInfo, struct SongHeader *songHeader); -void m4aMPlayStop(struct MusicPlayerInfo *mplayInfo); -void FadeOutBody(struct MusicPlayerInfo *mplayInfo); -void TrkVolPitSet(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track); -void MPlayFadeOut(struct MusicPlayerInfo *mplayInfo, u16 speed); -void ClearChain(void *x); -void Clear64byte(void *addr); -void SoundInit(struct SoundInfo *soundInfo); -void MPlayExtender(struct CgbChannel *cgbChans); -void m4aSoundMode(u32 mode); -void MPlayOpen(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track, u8 a3); -void CgbSound(void); -void CgbOscOff(u8); -u32 MidiKeyToCgbFreq(u8, u8, u8); -void DummyFunc(void); -void MPlayJumpTableCopy(void **mplayJumpTable); -void SampleFreqSet(u32 freq); -void m4aSoundVSyncOn(void); -void m4aSoundVSyncOff(void); - -void m4aMPlayTempoControl(struct MusicPlayerInfo *mplayInfo, u16 tempo); -void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume); -void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s16 pitch); -void m4aMPlayPanpotControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s8 pan); -void ClearModM(struct MusicPlayerTrack *track); -void m4aMPlayModDepthSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 modDepth); -void m4aMPlayLFOSpeedSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 lfoSpeed); - -struct MusicPlayerInfo *SetPokemonCryTone(struct ToneData *tone); -void SetPokemonCryVolume(u8 val); -void SetPokemonCryPanpot(s8 val); -void SetPokemonCryPitch(s16 val); -void SetPokemonCryLength(u16 val); -void SetPokemonCryRelease(u8 val); -void SetPokemonCryProgress(u32 val); -bool32 IsPokemonCryPlaying(struct MusicPlayerInfo *mplayInfo); -void SetPokemonCryChorus(s8 val); -void SetPokemonCryStereo(u32 val); -void SetPokemonCryPriority(u8 val); - -// sound command handler functions -void ply_fine(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_goto(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_patt(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_pend(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_rept(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_memacc(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_prio(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_tempo(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_keysh(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_voice(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_vol(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_pan(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_bend(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_bendr(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_lfos(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_lfodl(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_mod(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_modt(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_tune(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_port(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_xcmd(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_endtie(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_note(struct MusicPlayerInfo *, struct MusicPlayerTrack *); - -// extended sound command handler functions -void ply_xxx(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_xwave(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_xtype(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_xatta(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_xdeca(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_xsust(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_xrele(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_xiecv(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_xiecl(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_xleng(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_xswee(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_xcmd_0C(struct MusicPlayerInfo *, struct MusicPlayerTrack *); -void ply_xcmd_0D(struct MusicPlayerInfo *, struct MusicPlayerTrack *); - -#endif // GUARD_GBA_M4A_INTERNAL_H diff --git a/berry_fix/payload/include/gba/macro.h b/berry_fix/payload/include/gba/macro.h deleted file mode 100644 index 6f9c55f2ed..0000000000 --- a/berry_fix/payload/include/gba/macro.h +++ /dev/null @@ -1,247 +0,0 @@ -#ifndef GUARD_GBA_MACRO_H -#define GUARD_GBA_MACRO_H - -#define CPU_FILL(value, dest, size, bit) \ -{ \ - vu##bit tmp = (vu##bit)(value); \ - CpuSet((void *)&tmp, \ - dest, \ - CPU_SET_##bit##BIT | CPU_SET_SRC_FIXED | ((size)/(bit/8) & 0x1FFFFF)); \ -} - -#define CpuFill16(value, dest, size) CPU_FILL(value, dest, size, 16) -#define CpuFill32(value, dest, size) CPU_FILL(value, dest, size, 32) - -#define CPU_COPY(src, dest, size, bit) CpuSet(src, dest, CPU_SET_##bit##BIT | ((size)/(bit/8) & 0x1FFFFF)) - -#define CpuCopy16(src, dest, size) CPU_COPY(src, dest, size, 16) -#define CpuCopy32(src, dest, size) CPU_COPY(src, dest, size, 32) - -#define CpuFastFill(value, dest, size) \ -{ \ - vu32 tmp = (vu32)(value); \ - CpuFastSet((void *)&tmp, \ - dest, \ - CPU_FAST_SET_SRC_FIXED | ((size)/(32/8) & 0x1FFFFF)); \ -} - -#define CpuFastFill16(value, dest, size) CpuFastFill(((value) << 16) | (value), (dest), (size)) - -#define CpuFastFill8(value, dest, size) CpuFastFill(((value) << 24) | ((value) << 16) | ((value) << 8) | (value), (dest), (size)) - -#define CpuFastCopy(src, dest, size) CpuFastSet(src, dest, ((size)/(32/8) & 0x1FFFFF)) - -#define DmaSet(dmaNum, src, dest, control) \ -{ \ - vu32 *dmaRegs = (vu32 *)REG_ADDR_DMA##dmaNum; \ - dmaRegs[0] = (vu32)(src); \ - dmaRegs[1] = (vu32)(dest); \ - dmaRegs[2] = (vu32)(control); \ - dmaRegs[2]; \ -} - -#define DMA_FILL(dmaNum, value, dest, size, bit) \ -{ \ - vu##bit tmp = (vu##bit)(value); \ - DmaSet(dmaNum, \ - &tmp, \ - dest, \ - (DMA_ENABLE | DMA_START_NOW | DMA_##bit##BIT | DMA_SRC_FIXED | DMA_DEST_INC) << 16 \ - | ((size)/(bit/8))); \ -} - -#define DmaFill16(dmaNum, value, dest, size) DMA_FILL(dmaNum, value, dest, size, 16) -#define DmaFill32(dmaNum, value, dest, size) DMA_FILL(dmaNum, value, dest, size, 32) - -// Note that the DMA clear macros cause the DMA control value to be calculated -// at runtime rather than compile time. The size is divided by the DMA transfer -// unit size (2 or 4 bytes) and then combined with the DMA control flags using a -// bitwise OR operation. - -#define DMA_CLEAR(dmaNum, dest, size, bit) \ -{ \ - vu##bit *_dest = (vu##bit *)(dest); \ - u32 _size = size; \ - DmaFill##bit(dmaNum, 0, _dest, _size); \ -} - -#define DmaClear16(dmaNum, dest, size) DMA_CLEAR(dmaNum, dest, size, 16) -#define DmaClear32(dmaNum, dest, size) DMA_CLEAR(dmaNum, dest, size, 32) - -#define DMA_COPY(dmaNum, src, dest, size, bit) \ - DmaSet(dmaNum, \ - src, \ - dest, \ - (DMA_ENABLE | DMA_START_NOW | DMA_##bit##BIT | DMA_SRC_INC | DMA_DEST_INC) << 16 \ - | ((size)/(bit/8))) - -#define DmaCopy16(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 16) -#define DmaCopy32(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 32) - -#define DmaCopyLarge(dmaNum, src, dest, size, block, bit) \ -{ \ - const void *_src = src; \ - void *_dest = (void *)dest; \ - u32 _size = size; \ - while (1) \ - { \ - DmaCopy##bit(dmaNum, _src, _dest, (block)); \ - _src += (block); \ - _dest += (block); \ - _size -= (block); \ - if (_size <= (block)) \ - { \ - DmaCopy##bit(dmaNum, _src, _dest, _size); \ - break; \ - } \ - } \ -} - -#define DmaCopyLarge16(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 16) - -#define DmaCopyLarge32(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 32) - -#define DmaFillLarge(dmaNum, value, dest, size, block, bit) \ -{ \ - void *_dest = (void *)dest; \ - u32 _size = size; \ - while (1) \ - { \ - DmaFill##bit(dmaNum, value, _dest, (block)); \ - _dest += (block); \ - _size -= (block); \ - if (_size <= (block)) \ - { \ - DmaFill##bit(dmaNum, value, _dest, _size); \ - break; \ - } \ - } \ -} - -#define DmaFillLarge16(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 16) - -#define DmaFillLarge32(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 32) - -#define DmaClearLarge(dmaNum, dest, size, block, bit) \ -{ \ - void *_dest = (void *)dest; \ - u32 _size = size; \ - while (1) \ - { \ - DmaFill##bit(dmaNum, 0, _dest, (block)); \ - _dest += (block); \ - _size -= (block); \ - if (_size <= (block)) \ - { \ - DmaFill##bit(dmaNum, 0, _dest, _size); \ - break; \ - } \ - } \ -} - -#define DmaClearLarge16(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 16) - -#define DmaClearLarge32(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 32) - -#define DmaCopyDefvars(dmaNum, src, dest, size, bit) \ -{ \ - const void *_src = src; \ - void *_dest = (void *)(dest); \ - u32 _size = size; \ - DmaCopy##bit(dmaNum, _src, _dest, _size); \ -} - -#define DmaCopy16Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 16) -#define DmaCopy32Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 32) - -#define DmaFillDefvars(dmaNum, value, dest, size, bit) \ -{ \ - void *_dest = (void *)dest; \ - u32 _size = size; \ - DmaFill##bit(dmaNum, value, _dest, _size); \ -} - -#define DmaFill16Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 16) -#define DmaFill32Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 32) - -#define DmaClearDefvars(dmaNum, dest, size, bit) \ -{ \ - void *_dest = (void *)dest; \ - u32 _size = size; \ - DmaClear##bit(dmaNum, _dest, _size); \ -} - -#define DmaClear16Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 16) -#define DmaClear32Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 32) - -#define DmaStop(dmaNum) \ -{ \ - vu16 *dmaRegs = (vu16 *)REG_ADDR_DMA##dmaNum; \ - dmaRegs[5] &= ~(DMA_START_MASK | DMA_DREQ_ON | DMA_REPEAT); \ - dmaRegs[5] &= ~DMA_ENABLE; \ - dmaRegs[5]; \ -} - -#define IntrEnable(flags) \ -{ \ - u16 imeTemp; \ - \ - imeTemp = REG_IME; \ - REG_IME = 0; \ - REG_IE |= flags; \ - REG_IME = imeTemp; \ -} \ -// from pokeemerald -// Maximum amount of data we will transfer in one operation -#define MAX_DMA_BLOCK_SIZE 0x1000 - -#define MAX_DMA_REQUESTS 128 - -#define DMA_REQUEST_COPY32 1 -#define DMA_REQUEST_FILL32 2 -#define DMA_REQUEST_COPY16 3 -#define DMA_REQUEST_FILL16 4 - -#define Dma3CopyLarge_(src, dest, size, bit) \ -{ \ - const void *_src = src; \ - void *_dest = (void *)dest; \ - u32 _size = size; \ - while (1) \ - { \ - if (_size <= MAX_DMA_BLOCK_SIZE) \ - { \ - DmaCopy##bit(3, _src, _dest, _size); \ - break; \ - } \ - DmaCopy##bit(3, _src, _dest, MAX_DMA_BLOCK_SIZE); \ - _src += MAX_DMA_BLOCK_SIZE; \ - _dest += MAX_DMA_BLOCK_SIZE; \ - _size -= MAX_DMA_BLOCK_SIZE; \ - } \ -} - -#define Dma3CopyLarge16_(src, dest, size) Dma3CopyLarge_(src, dest, size, 16) -#define Dma3CopyLarge32_(src, dest, size) Dma3CopyLarge_(src, dest, size, 32) - -#define Dma3FillLarge_(value, dest, size, bit) \ -{ \ - void *_dest = (void *)dest; \ - u32 _size = size; \ - while (1) \ - { \ - if (_size <= MAX_DMA_BLOCK_SIZE) \ - { \ - DmaFill##bit(3, value, _dest, _size); \ - break; \ - } \ - DmaFill##bit(3, value, _dest, MAX_DMA_BLOCK_SIZE); \ - _dest += MAX_DMA_BLOCK_SIZE; \ - _size -= MAX_DMA_BLOCK_SIZE; \ - } \ -} - -#define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16) -#define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32) - -#endif // GUARD_GBA_MACRO_H diff --git a/berry_fix/payload/include/gba/multiboot.h b/berry_fix/payload/include/gba/multiboot.h deleted file mode 100644 index 14b6594b29..0000000000 --- a/berry_fix/payload/include/gba/multiboot.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef GUARD_GBA_MULTIBOOT_H -#define GUARD_GBA_MULTIBOOT_H - -#define MULTIBOOT_NCHILD 3 // Maximum number of slaves -#define MULTIBOOT_HEADER_SIZE 0xc0 // Header size -#define MULTIBOOT_SEND_SIZE_MIN 0x100 // Minimum transmission size -#define MULTIBOOT_SEND_SIZE_MAX 0x40000 // Maximum transmission size - -struct MultiBootParam -{ - u32 system_work[5]; // 00 - u8 handshake_data; // 14 - u8 padding; // 15 - u16 handshake_timeout; // 16 - u8 probe_count; // 18 - u8 client_data[MULTIBOOT_NCHILD]; // 19 - u8 palette_data; // 1c - u8 response_bit; // 1d - u8 client_bit; // 1e - u8 reserved1; // 1f - const u8 *boot_srcp; // 20 - const u8 *boot_endp; // 24 - const u8 *masterp; - u8 *reserved2[MULTIBOOT_NCHILD]; - u32 system_work2[4]; - u8 sendflag; - u8 probe_target_bit; - u8 check_wait; - u8 server_type; -}; - -#define MULTIBOOT_ERROR_04 0x04 -#define MULTIBOOT_ERROR_08 0x08 -#define MULTIBOOT_ERROR_0c 0x0c -#define MULTIBOOT_ERROR_40 0x40 -#define MULTIBOOT_ERROR_44 0x44 -#define MULTIBOOT_ERROR_48 0x48 -#define MULTIBOOT_ERROR_4c 0x4c -#define MULTIBOOT_ERROR_80 0x80 -#define MULTIBOOT_ERROR_84 0x84 -#define MULTIBOOT_ERROR_88 0x88 -#define MULTIBOOT_ERROR_8c 0x8c -#define MULTIBOOT_ERROR_NO_PROBE_TARGET 0x50 -#define MULTIBOOT_ERROR_NO_DLREADY 0x60 -#define MULTIBOOT_ERROR_BOOT_FAILURE 0x70 -#define MULTIBOOT_ERROR_HANDSHAKE_FAILURE 0x71 - -#define MULTIBOOT_CONNECTION_CHECK_WAIT 15 - -#define MULTIBOOT_SERVER_TYPE_NORMAL 0 -#define MULTIBOOT_SERVER_TYPE_QUICK 1 - -#define MULTIBOOT_HANDSHAKE_TIMEOUT 400 - -#endif // GUARD_GBA_MULTIBOOT_H diff --git a/berry_fix/payload/include/gba/syscall.h b/berry_fix/payload/include/gba/syscall.h deleted file mode 100644 index eb1bd4e20f..0000000000 --- a/berry_fix/payload/include/gba/syscall.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef GUARD_GBA_SYSCALL_H -#define GUARD_GBA_SYSCALL_H - -#include "gba/types.h" - -#define RESET_EWRAM 0x01 -#define RESET_IWRAM 0x02 -#define RESET_PALETTE 0x04 -#define RESET_VRAM 0x08 -#define RESET_OAM 0x10 -#define RESET_SIO_REGS 0x20 -#define RESET_SOUND_REGS 0x40 -#define RESET_REGS 0x80 -#define RESET_ALL 0xFF - -void SoftReset(u32 resetFlags); - -void RegisterRamReset(u32 resetFlags); - -void VBlankIntrWait(void); - -u16 Sqrt(u32 num); - -u16 ArcTan2(s16 x, s16 y); - -#define CPU_SET_SRC_FIXED 0x01000000 -#define CPU_SET_16BIT 0x00000000 -#define CPU_SET_32BIT 0x04000000 - -void CpuSet(const void *src, void *dest, u32 control); - -#define CPU_FAST_SET_SRC_FIXED 0x01000000 - -void CpuFastSet(const void *src, void *dest, u32 control); - -void BgAffineSet(struct BgAffineSrcData *src, struct BgAffineDstData *dest, s32 count); - -void ObjAffineSet(struct ObjAffineSrcData *src, void *dest, s32 count, s32 offset); - -void LZ77UnCompWram(const void *src, void *dest); - -void LZ77UnCompVram(const void *src, void *dest); - -void RLUnCompWram(const void *src, void *dest); - -void RLUnCompVram(const void *src, void *dest); - -int MultiBoot(struct MultiBootParam *mp); - -void SoundBiasReset(void); - -void SoundBiasSet(void); - -u32 Div(u32 divisor, u32 dividend); -u32 Mod(u32 divisor, u32 dividend); - -#endif // GUARD_GBA_SYSCALL_H diff --git a/berry_fix/payload/include/gba/types.h b/berry_fix/payload/include/gba/types.h deleted file mode 100644 index e919abc22a..0000000000 --- a/berry_fix/payload/include/gba/types.h +++ /dev/null @@ -1,146 +0,0 @@ -#ifndef GUARD_GBA_TYPES_H -#define GUARD_GBA_TYPES_H - -#include - -typedef uint8_t u8; -typedef uint16_t u16; -typedef uint32_t u32; -typedef uint64_t u64; -typedef int8_t s8; -typedef int16_t s16; -typedef int32_t s32; -typedef int64_t s64; - -typedef volatile u8 vu8; -typedef volatile u16 vu16; -typedef volatile u32 vu32; -typedef volatile u64 vu64; -typedef volatile s8 vs8; -typedef volatile s16 vs16; -typedef volatile s32 vs32; -typedef volatile s64 vs64; - -typedef float f32; -typedef double f64; - -typedef u8 bool8; -typedef u16 bool16; -typedef u32 bool32; - -struct BgCnt -{ - u16 priority:2; - u16 charBaseBlock:2; - u16 dummy:2; - u16 mosaic:1; - u16 palettes:1; - u16 screenBaseBlock:5; - u16 areaOverflowMode:1; - u16 screenSize:2; -}; -typedef volatile struct BgCnt vBgCnt; - -struct PlttData -{ - u16 r:5; // red - u16 g:5; // green - u16 b:5; // blue - u16 unused_15:1; -}; - -struct OamData -{ - /*0x00*/ u32 y:8; - /*0x01*/ u32 affineMode:2; // 0x1, 0x2 -> 0x4 - u32 objMode:2; // 0x4, 0x8 -> 0xC - u32 mosaic:1; // 0x10 - u32 bpp:1; // 0x20 - u32 shape:2; // 0x40, 0x80 -> 0xC0 - - /*0x02*/ u32 x:9; - u32 matrixNum:5; // bits 3/4 are h-flip/v-flip if not in affine mode - u32 size:2; - - /*0x04*/ u16 tileNum:10; // 0x3FF - u16 priority:2; // 0x400, 0x800 -> 0xC00 - u16 paletteNum:4; - /*0x06*/ u16 affineParam; -}; - -#define ST_OAM_OBJ_NORMAL 0 -#define ST_OAM_OBJ_BLEND 1 -#define ST_OAM_OBJ_WINDOW 2 - -#define ST_OAM_AFFINE_OFF 0 -#define ST_OAM_AFFINE_NORMAL 1 -#define ST_OAM_AFFINE_ERASE 2 -#define ST_OAM_AFFINE_DOUBLE 3 - -#define ST_OAM_AFFINE_ON_MASK 1 -#define ST_OAM_AFFINE_DOUBLE_MASK 2 - -#define ST_OAM_4BPP 0 -#define ST_OAM_8BPP 1 - -#define ST_OAM_SQUARE 0 -#define ST_OAM_H_RECTANGLE 1 -#define ST_OAM_V_RECTANGLE 2 - -struct BgAffineSrcData -{ - s32 texX; - s32 texY; - s16 scrX; - s16 scrY; - s16 sx; - s16 sy; - u16 alpha; -}; - -struct BgAffineDstData -{ - s16 pa; - s16 pb; - s16 pc; - s16 pd; - s32 dx; - s32 dy; -}; - -struct ObjAffineSrcData -{ - s16 xScale; - s16 yScale; - u16 rotation; -}; - -// Multi-player SIO Control Structure -struct SioMultiCnt -{ - u16 baudRate:2; // baud rate - u16 si:1; // SI terminal - u16 sd:1; // SD terminal - u16 id:2; // ID - u16 error:1; // error flag - u16 enable:1; // SIO enable - u16 unused_11_8:4; - u16 mode:2; // communication mode (should equal 2) - u16 intrEnable:1; // IRQ enable - u16 unused_15:1; - u16 data; // data -}; - -#define ST_SIO_MULTI_MODE 2 // Multi-player communication mode - -// baud rate -#define ST_SIO_9600_BPS 0 // 9600 bps -#define ST_SIO_38400_BPS 1 // 38400 bps -#define ST_SIO_57600_BPS 2 // 57600 bps -#define ST_SIO_115200_BPS 3 // 115200 bps - -typedef void (*MainCallback)(void); -typedef void (*IntrCallback)(void); -typedef void (*IntrFunc)(void); - -#endif // GUARD_GBA_TYPES_H diff --git a/berry_fix/payload/include/global.berry.h b/berry_fix/payload/include/global.berry.h deleted file mode 100644 index 8f185c8f9d..0000000000 --- a/berry_fix/payload/include/global.berry.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef GUARD_GLOBAL_BERRY_H -#define GUARD_GLOBAL_BERRY_H - -struct Berry -{ - /*0x00*/ u8 name[7]; - /*0x07*/ u8 firmness; - /*0x08*/ u16 size; - /*0x0A*/ u8 maxYield; - /*0x0B*/ u8 minYield; - /*0x0C*/ const u8 *description1; - /*0x10*/ const u8 *description2; - /*0x14*/ u8 stageDuration; - /*0x15*/ u8 spicy; - /*0x16*/ u8 dry; - /*0x17*/ u8 sweet; - /*0x18*/ u8 bitter; - /*0x19*/ u8 sour; - /*0x1A*/ u8 smoothness; -}; - -struct EnigmaBerry -{ - /*0x000*/ struct Berry berry; - /*0x01B*/ u8 pic[(6 * 6) * TILE_SIZE_4BPP]; - /*0x49C*/ u16 palette[16]; - /*0x4BC*/ u8 description1[45]; - /*0x4E9*/ u8 description2[45]; - /*0x516*/ u8 itemEffect[18]; - /*0x528*/ u8 holdEffect; - /*0x529*/ u8 holdEffectParam; - /*0x52C*/ u32 checksum; -}; - -struct BattleEnigmaBerry -{ - /*0x00*/ u8 name[7]; - /*0x07*/ u8 holdEffect; - /*0x08*/ u8 itemEffect[18]; - /*0x1A*/ u8 holdEffectParam; -}; - -struct BerryTree -{ - /*0x00*/ u8 berry; - /*0x01*/ u8 stage:7; - /* - A berry sparkle is a state that a berry tree - can be in after growing within the player's - viewport. - */ - /*0x01*/ bool8 growthSparkle:1; - /*0x02*/ u16 minutesUntilNextStage; - /*0x04*/ u8 berryYield; - /*0x05*/ u8 regrowthCount:4; - /*0x05*/ u8 watered1:1; - /*0x05*/ u8 watered2:1; - /*0x05*/ u8 watered3:1; - /*0x05*/ u8 watered4:1; -}; - -#endif // GUARD_GLOBAL_BERRY_H diff --git a/berry_fix/payload/include/global.fieldmap.h b/berry_fix/payload/include/global.fieldmap.h deleted file mode 100644 index e7150b429f..0000000000 --- a/berry_fix/payload/include/global.fieldmap.h +++ /dev/null @@ -1,310 +0,0 @@ -#ifndef GUARD_GLOBAL_FIELDMAP_H -#define GUARD_GLOBAL_FIELDMAP_H - -enum -{ - CONNECTION_SOUTH = 1, - CONNECTION_NORTH, - CONNECTION_WEST, - CONNECTION_EAST, - CONNECTION_DIVE, - CONNECTION_EMERGE -}; - -typedef void (*TilesetCB)(void); - -struct Tileset -{ - /*0x00*/ bool8 isCompressed; - /*0x01*/ bool8 isSecondary; - /*0x04*/ void *tiles; - /*0x08*/ void *palettes; - /*0x0c*/ void *metatiles; - /*0x10*/ void *metatileAttributes; - /*0x14*/ TilesetCB callback; -}; - -struct MapLayout -{ - /*0x00*/ s32 width; - /*0x04*/ s32 height; - /*0x08*/ u16 *border; - /*0x0c*/ u16 *map; - /*0x10*/ struct Tileset *primaryTileset; - /*0x14*/ struct Tileset *secondaryTileset; -}; - -struct BackupMapLayout -{ - s32 width; - s32 height; - u16 *map; -}; - -struct EventObjectTemplate -{ - /*0x00*/ u8 localId; - /*0x01*/ u8 graphicsId; - /*0x02*/ u8 unk2; - /*0x04*/ s16 x; - /*0x06*/ s16 y; - /*0x08*/ u8 elevation; - /*0x09*/ u8 movementType; - /*0x0A*/ u8 movementRangeX:4; - u8 movementRangeY:4; - /*0x0C*/ u16 trainerType; - /*0x0E*/ u16 trainerRange_berryTreeId; - /*0x10*/ u8 *script; - /*0x14*/ u16 flagId; -}; - -struct WarpEvent -{ - s16 x, y; - u8 elevation; - u8 warpId; - u8 mapNum; - u8 mapGroup; -}; - -struct CoordEvent -{ - s16 x, y; - u8 elevation; - u16 trigger; - u16 index; - u8 filler_A[0x2]; - u8 *script; -}; - -struct BgEvent -{ - u16 x, y; - u8 elevation; - u8 kind; // The "kind" field determines how to access bgUnion union below. - union { - u8 *script; - struct { - u16 item; - u16 hiddenItemId; - } hiddenItem; - u32 secretBaseId; - } bgUnion; -}; - -struct MapEvents -{ - u8 eventObjectCount; - u8 warpCount; - u8 coordEventCount; - u8 bgEventCount; - - struct EventObjectTemplate *eventObjects; - struct WarpEvent *warps; - struct CoordEvent *coordEvents; - struct BgEvent *bgEvents; -}; - -struct MapConnection -{ - /*0x00*/ u8 direction; - /*0x01*/ u32 offset; - /*0x05*/ u8 mapGroup; - /*0x06*/ u8 mapNum; -}; - -struct MapConnections -{ - s32 count; - struct MapConnection *connections; -}; - -struct MapHeader -{ - /* 0x00 */ struct MapLayout *mapLayout; - /* 0x04 */ struct MapEvents *events; - /* 0x08 */ u8 *mapScripts; - /* 0x0C */ struct MapConnections *connections; - /* 0x10 */ u16 music; - /* 0x12 */ u16 mapLayoutId; - /* 0x14 */ u8 regionMapSectionId; - /* 0x15 */ u8 cave; - /* 0x16 */ u8 weather; - /* 0x17 */ u8 mapType; - /* 0x18 */ u8 filler_18; - /* 0x19 */ u8 escapeRope; - /* 0x1A */ u8 flags; - /* 0x1B */ u8 battleType; -}; - -struct EventObject -{ - /*0x00*/ u32 active:1; - u32 singleMovementActive:1; - u32 triggerGroundEffectsOnMove:1; - u32 triggerGroundEffectsOnStop:1; - u32 disableCoveringGroundEffects:1; // disables ground effects that cover parts of the object's sprite - u32 landingJump:1; - u32 heldMovementActive:1; - u32 heldMovementFinished:1; - /*0x01*/ u32 frozen:1; - u32 facingDirectionLocked:1; - u32 disableAnim:1; // used to disable forced movement sliding animations (like on ice) - u32 enableAnim:1; - u32 inanimate:1; - u32 invisible:1; - u32 offScreen:1; - u32 trackedByCamera:1; // only set for the player object - /*0x02*/ u32 isPlayer:1; - u32 hasReflection:1; - u32 inShortGrass:1; - u32 inShallowFlowingWater:1; - u32 inSandPile:1; - u32 inHotSprings:1; - u32 hasShadow:1; - u32 spriteAnimPausedBackup:1; - /*0x03*/ u32 spriteAffineAnimPausedBackup:1; - u32 disableJumpLandingGroundEffect:1; - u32 fixedPriority:1; - /*0x04*/ u8 spriteId; - /*0x05*/ u8 graphicsId; - /*0x06*/ u8 movementType; - /*0x07*/ u8 trainerType; - /*0x08*/ u8 localId; - /*0x09*/ u8 mapNum; - /*0x0A*/ u8 mapGroup; - /*0x0B*/ u8 currentElevation:4; - u8 previousElevation:4; - /*0x0C*/ struct Coords16 initialCoords; - /*0x10*/ struct Coords16 currentCoords; - /*0x14*/ struct Coords16 previousCoords; - /*0x18*/ u8 facingDirection:4; - /*0x18*/ u8 movementDirection:4; - /*0x19*/ union __attribute__((packed)) { - u8 as_byte; - struct __attribute__((packed)) { - u16 x:4; - u16 y:4; - } as_nybbles; - } range; - /*0x1A*/ u8 fieldEffectSpriteId; - /*0x1B*/ u8 warpArrowSpriteId; - /*0x1C*/ u8 movementActionId; - /*0x1D*/ u8 trainerRange_berryTreeId; - /*0x1E*/ u8 currentMetatileBehavior; - /*0x1F*/ u8 previousMetatileBehavior; - /*0x20*/ u8 previousMovementDirection; - /*0x21*/ u8 directionSequenceIndex; - /*0x22*/ u8 playerCopyableMovement; // used as an index to gCopyPlayerMovementFuncs for the "copy player" movement types - /*size = 0x24*/ -}; - -struct EventObjectGraphicsInfo -{ - /*0x00*/ u16 tileTag; - /*0x02*/ u16 paletteTag; - /*0x04*/ u16 bridgeReflectionPaletteTag; - /*0x06*/ u16 size; - /*0x08*/ s16 width; - /*0x0A*/ s16 height; - /*0x0C*/ u8 paletteSlot:4; - u8 shadowSize:2; - u8 inanimate:1; - u8 disableReflectionPaletteLoad:1; - /*0x0D*/ u8 tracks; - /*0x10*/ const struct OamData *oam; - /*0x14*/ const struct SubspriteTable *subspriteTables; - /*0x18*/ const union AnimCmd *const *anims; - /*0x1C*/ const struct SpriteFrameImage *images; - /*0x20*/ const union AffineAnimCmd *const *affineAnims; -}; - -#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << 0) -#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << 1) -#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << 2) -#define PLAYER_AVATAR_FLAG_SURFING (1 << 3) -#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << 4) -#define PLAYER_AVATAR_FLAG_CONTROLLABLE (1 << 5) -#define PLAYER_AVATAR_FLAG_FORCED_MOVE (1 << 6) -#define PLAYER_AVATAR_FLAG_DASH (1 << 7) - -enum -{ - ACRO_BIKE_NORMAL, - ACRO_BIKE_TURNING, - ACRO_BIKE_WHEELIE_STANDING, - ACRO_BIKE_BUNNY_HOP, - ACRO_BIKE_WHEELIE_MOVING, - ACRO_BIKE_STATE5, - ACRO_BIKE_STATE6, -}; - -enum -{ - DIR_NONE, - DIR_SOUTH, - DIR_NORTH, - DIR_WEST, - DIR_EAST, - DIR_SOUTHWEST, - DIR_SOUTHEAST, - DIR_NORTHWEST, - DIR_NORTHEAST, -}; - -enum -{ - COLLISION_LEDGE_JUMP = 6 -}; - -// player running states -enum -{ - NOT_MOVING, - TURN_DIRECTION, // not the same as turning! turns your avatar without moving. also known as a turn frame in some circles - MOVING, -}; - -// player tile transition states -enum -{ - T_NOT_MOVING, - T_TILE_TRANSITION, - T_TILE_CENTER, // player is on a frame in which they are centered on a tile during which the player either stops or keeps their momentum and keeps going, changing direction if necessary. -}; - -struct PlayerAvatar /* 0x202E858 */ -{ - /*0x00*/ u8 flags; - /*0x01*/ u8 unk1; // used to be named bike, but its definitely not that. seems to be some transition flags - /*0x02*/ u8 runningState; // this is a static running state. 00 is not moving, 01 is turn direction, 02 is moving. - /*0x03*/ u8 tileTransitionState; // this is a transition running state: 00 is not moving, 01 is transition between tiles, 02 means you are on the frame in which you have centered on a tile but are about to keep moving, even if changing directions. 2 is also used for a ledge hop, since you are transitioning. - /*0x04*/ u8 spriteId; - /*0x05*/ u8 eventObjectId; - /*0x06*/ bool8 preventStep; - /*0x07*/ u8 gender; - /*0x08*/ u8 acroBikeState; // 00 is normal, 01 is turning, 02 is standing wheelie, 03 is hopping wheelie - /*0x09*/ u8 newDirBackup; // during bike movement, the new direction as opposed to player's direction is backed up here. - /*0x0A*/ u8 bikeFrameCounter; // on the mach bike, when this value is 1, the bike is moving but not accelerating yet for 1 tile. on the acro bike, this acts as a timer for acro bike. - /*0x0B*/ u8 bikeSpeed; - // acro bike only - /*0x0C*/ u32 directionHistory; // up/down/left/right history is stored in each nybble, but using the field directions and not the io inputs. - /*0x10*/ u32 abStartSelectHistory; // same as above but for A + B + start + select only - // these two are timer history arrays which [0] is the active timer for acro bike. every element is backed up to the next element upon update. - /*0x14*/ u8 dirTimerHistory[8]; - /*0x1C*/ u8 abStartSelectTimerHistory[8]; -}; - -struct Camera -{ - bool8 active:1; - s32 x; - s32 y; -}; - -extern struct EventObject gMapObjects[]; -extern u8 gSelectedEventObject; -extern struct MapHeader gMapHeader; -extern struct PlayerAvatar gPlayerAvatar; - -#endif // GUARD_GLOBAL_FIELDMAP_H diff --git a/berry_fix/payload/include/global.h b/berry_fix/payload/include/global.h deleted file mode 100644 index 4bea138d67..0000000000 --- a/berry_fix/payload/include/global.h +++ /dev/null @@ -1,876 +0,0 @@ -#ifndef GUARD_GLOBAL_H -#define GUARD_GLOBAL_H - -#include "gba/gba.h" - -// global.h from pokemon ruby - -// IDE support -#if defined(__APPLE__) || defined(__CYGWIN__) || defined(__INTELLISENSE__) -// We define these when using certain IDEs to fool preproc -#define _(x) (x) -#define __(x) (x) -#define INCBIN(...) {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 - -// Prevent cross-jump optimization. -#define BLOCK_CROSS_JUMP asm(""); - -// to help in decompiling -#define asm_comment(x) asm volatile("@ -- " x " -- ") - -#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided\n") - -#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0])) - - -#define POKEMON_SLOTS_NUMBER 412 -#define POKEMON_NAME_LENGTH 10 -#define OT_NAME_LENGTH 7 - -#define min(a, b) ((a) < (b) ? (a) : (b)) -#define max(a, b) ((a) >= (b) ? (a) : (b)) - -// why does GF hate 2d arrays -#define MULTI_DIM_ARR(x, dim, y) ((x) * dim + (y)) - -// dim access enums -enum -{ - B_8 = 1, - B_16 = 2, - B_32 = 4 -}; - -// There are many quirks in the source code which have overarching behavioral differences from -// a number of other files. For example, diploma.c seems to declare rodata before each use while -// other files declare out of order and must be at the beginning. There are also a number of -// macros which differ from one file to the next due to the method of obtaining the result, such -// as these below. Because of this, there is a theory (Two Team Theory) that states that these -// programming projects had more than 1 "programming team" which utilized different macros for -// each of the files that were worked on. -#define T1_READ_8(ptr) ((ptr)[0]) -#define T1_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8)) -#define T1_READ_32(ptr) ((ptr)[0] | ((ptr)[1] << 8) | ((ptr)[2] << 16) | ((ptr)[3] << 24)) -#define T1_READ_PTR(ptr) (u8*) T1_READ_32(ptr) - -// T2_READ_8 is a duplicate to remain consistent with each group. -#define T2_READ_8(ptr) ((ptr)[0]) -#define T2_READ_16(ptr) ((ptr)[0] + ((ptr)[1] << 8)) -#define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24)) -#define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr) - -// Credits to Made (dolphin emoji) -#define S16TOPOSFLOAT(val) \ -({ \ - s16 v = (val); \ - float f = (float)v; \ - if(v < 0) f += 65536.0f; \ - f; \ -}) - -enum -{ - VERSION_SAPPHIRE = 1, - VERSION_RUBY = 2, - VERSION_EMERALD = 3, -}; - -enum LanguageId -{ - LANGUAGE_JAPANESE = 1, - LANGUAGE_ENGLISH = 2, - LANGUAGE_GERMAN = 5, -}; - -// capacities of various saveblock objects -#define DAYCARE_MON_COUNT 2 -#define POKEBLOCKS_COUNT 40 -#define PARTY_SIZE 6 -#define EVENT_OBJECTS_COUNT 16 -#define BERRY_TREES_COUNT 128 -#define FLAGS_COUNT 288 -#define VARS_COUNT 256 -#define MAIL_COUNT 16 -#define SECRET_BASES_COUNT 20 -#define TV_SHOWS_COUNT 25 -#define POKE_NEWS_COUNT 16 -#define PC_ITEMS_COUNT 50 -#define BAG_ITEMS_COUNT 20 -#define BAG_KEYITEMS_COUNT 20 -#define BAG_POKEBALLS_COUNT 16 -#define BAG_TMHM_COUNT 64 -#define BAG_BERRIES_COUNT 46 - -enum -{ - MALE, - FEMALE -}; - -enum -{ - OPTIONS_BUTTON_MODE_NORMAL, - OPTIONS_BUTTON_MODE_LR, - OPTIONS_BUTTON_MODE_L_EQUALS_A -}; - -enum -{ - OPTIONS_TEXT_SPEED_SLOW, - OPTIONS_TEXT_SPEED_MID, - OPTIONS_TEXT_SPEED_FAST -}; - -enum -{ - OPTIONS_SOUND_MONO, - OPTIONS_SOUND_STEREO -}; - -enum -{ - OPTIONS_BATTLE_STYLE_SHIFT, - OPTIONS_BATTLE_STYLE_SET -}; - -enum -{ - BAG_ITEMS = 1, - BAG_POKEBALLS, - BAG_TMsHMs, - BAG_BERRIES, - BAG_KEYITEMS -}; - -struct Coords16 -{ - s16 x; - s16 y; -}; - -struct UCoords16 -{ - u16 x; - u16 y; -}; - -struct SecretBaseRecord -{ - /*0x1A08*/ u8 secretBaseId; - /*0x1A09*/ u8 sbr_field_1_0:4; - /*0x1A09*/ u8 gender:1; - /*0x1A09*/ u8 sbr_field_1_5:1; - /*0x1A09*/ u8 sbr_field_1_6:2; - /*0x1A0A*/ u8 playerName[OT_NAME_LENGTH]; - /*0x1A11*/ u8 trainerId[4]; // byte 0 is used for determining trainer class - /*0x1A16*/ u16 sbr_field_e; - /*0x1A18*/ u8 sbr_field_10; - /*0x1A19*/ u8 sbr_field_11; - /*0x1A1A*/ u8 decorations[16]; - /*0x1A2A*/ u8 decorationPos[16]; - /*0x1A3C*/ u32 partyPersonality[6]; - /*0x1A54*/ u16 partyMoves[6 * 4]; - /*0x1A84*/ u16 partySpecies[6]; - /*0x1A90*/ u16 partyHeldItems[6]; - /*0x1A9C*/ u8 partyLevels[6]; - /*0x1AA2*/ u8 partyEVs[6]; -}; - -#include "constants/game_stat.h" -#include "global.fieldmap.h" -#include "global.berry.h" -#include "pokemon.h" - -struct WarpData -{ - s8 mapGroup; - s8 mapNum; - s8 warpId; - s16 x, y; -}; - -struct ItemSlot -{ - u16 itemId; - u16 quantity; -}; - -struct Pokeblock -{ - u8 color; - u8 spicy; - u8 dry; - u8 sweet; - u8 bitter; - u8 sour; - u8 feel; -}; - -struct Roamer -{ - /*0x00*/ u32 ivs; - /*0x04*/ u32 personality; - /*0x08*/ u16 species; - /*0x0A*/ u16 hp; - /*0x0C*/ u8 level; - /*0x0D*/ u8 status; - /*0x0E*/ u8 cool; - /*0x0F*/ u8 beauty; - /*0x10*/ u8 cute; - /*0x11*/ u8 smart; - /*0x12*/ u8 tough; - /*0x13*/ bool8 active; - /*0x14*/ u8 filler[0x8]; -}; - -struct RamScriptData -{ - u8 magic; - u8 mapGroup; - u8 mapNum; - u8 objectId; - u8 script[995]; -}; - -struct RamScript -{ - u32 checksum; - struct RamScriptData data; -}; - -struct EasyChatPair -{ - u16 unk0_0:7; - u16 unk0_7:7; - u16 unk1_6:1; - u16 unk2; - u16 words[2]; -}; /*size = 0x8*/ - -struct TVShowCommon -{ - /*0x00*/ u8 kind; - /*0x01*/ bool8 active; - /*0x02*/ u8 pad02[20]; - /*0x16*/ u16 var16[3]; - /*0x1C*/ u8 srcTrainerId3Lo; - /*0x1D*/ u8 srcTrainerId3Hi; - /*0x1E*/ u8 srcTrainerId2Lo; - /*0x1F*/ u8 srcTrainerId2Hi; - /*0x20*/ u8 srcTrainerIdLo; - /*0x21*/ u8 srcTrainerIdHi; - /*0x22*/ u8 trainerIdLo; - /*0x23*/ u8 trainerIdHi; -}; - -struct TVShowFanClubLetter -{ - /*0x00*/ u8 kind; - /*0x01*/ bool8 active; - /*0x02*/ u16 species; - /*0x04*/ u16 pad04[6]; - /*0x10*/ u8 playerName[8]; - /*0x18*/ u8 language; -}; - -struct TVShowRecentHappenings -{ - /*0x00*/ u8 kind; - /*0x01*/ bool8 active; - /*0x02*/ u16 var02; - /*0x04*/ u16 var04[6]; - /*0x10*/ u8 playerName[8]; - /*0x18*/ u8 language; - /*0x19*/ u8 pad19[10]; -}; - -struct TVShowFanclubOpinions -{ - /*0x00*/ u8 kind; - /*0x01*/ bool8 active; - /*0x02*/ u16 var02; - /*0x04*/ u8 var04A:4; - /*0x04*/ u8 var04B:4; - /*0x05*/ u8 playerName[8]; - /*0x0D*/ u8 language; - /*0x0E*/ u8 var0E; - /*0x0F*/ u8 var0F; - /*0x10*/ u8 var10[8]; - /*0x18*/ u16 var18[2]; - /*0x1C*/ u16 var1C[4]; -}; - -struct TVShowUnknownType04 -{ - /*0x00*/ u8 kind; - /*0x01*/ bool8 active; - /*0x02*/ u8 pad02[4]; - /*0x06*/ u16 var06; -}; - -struct TVShowNameRaterShow -{ - /*0x00*/ u8 kind; - /*0x01*/ bool8 active; - /*0x02*/ u16 species; - /*0x04*/ u8 pokemonName[11]; - /*0x0F*/ u8 trainerName[11]; - /*0x1A*/ u8 random; - /*0x1B*/ u8 random2; - /*0x1C*/ u16 var1C; - /*0x1E*/ u8 language; - /*0x1F*/ u8 pokemonNameLanguage; -}; - -struct TVShowBravoTrainerPokemonProfiles -{ - /*0x00*/ u8 kind; - /*0x01*/ bool8 active; - /*0x02*/ u16 species; - /*0x04*/ u16 var04[2]; - /*0x08*/ u8 pokemonNickname[11]; - /*0x13*/ u8 contestCategory:3; - /*0x13*/ u8 contestRank:2; - /*0x13*/ u8 contestResult:2; - /*0x13*/ u8 var13_7:1; - /*0x14*/ u16 var14; - /*0x16*/ u8 playerName[8]; - /*0x1E*/ u8 language; - /*0x1F*/ u8 var1f; -}; - -struct TVShowBravoTrainerBattleTowerSpotlight -{ - /*0x00*/ u8 kind; - /*0x01*/ bool8 active; - /*0x02*/ u8 trainerName[8]; - /*0x0A*/ u16 species; - /*0x0C*/ u8 enemyTrainerName[8]; - /*0x14*/ u16 defeatedSpecies; - /*0x16*/ u16 var16; - /*0x18*/ u16 var18[1]; - /*0x1A*/ u8 btLevel; - /*0x1B*/ u8 var1b; - /*0x1C*/ u8 var1c; - /*0x1D*/ u8 language; -}; - -struct TVShowPokemonToday -{ - /*0x00*/ u8 kind; - /*0x01*/ bool8 active; - /*0x02*/ u8 language; - /*0x03*/ u8 language2; - /*0x04*/ u8 nickname[11]; - /*0x0F*/ u8 ball; - /*0x10*/ u16 species; - /*0x12*/ u8 var12; - /*0x13*/ u8 playerName[8]; -}; - -struct TVShowSmartShopper -{ - /*0x00*/ u8 kind; - /*0x01*/ bool8 active; - /*0x02*/ u8 priceReduced; - /*0x03*/ u8 language; - /*0x04*/ u8 pad04[2]; - /*0x06*/ u16 itemIds[3]; - /*0x0C*/ u16 itemAmounts[3]; - /*0x12*/ u8 shopLocation; - /*0x13*/ u8 playerName[8]; -}; - -struct TVShowPokemonTodayFailed -{ - /*0x00*/ u8 kind; - /*0x01*/ bool8 active; - /*0x02*/ u8 language; - /*0x03*/ u8 pad03[9]; - /*0x0c*/ u16 species; - /*0x0e*/ u16 species2; - /*0x10*/ u8 var10; - /*0x11*/ u8 var11; - /*0x12*/ u8 var12; - /*0x13*/ u8 playerName[8]; -}; - -struct TVShowPokemonAngler -{ - /*0x00*/ u8 kind; - /*0x01*/ bool8 active; - /*0x02*/ u8 var02; - /*0x03*/ u8 var03; - /*0x04*/ u16 var04; - /*0x06*/ u8 language; - u8 pad07[12]; - /*0x13*/ u8 playerName[8]; -}; - -struct TVShowWorldOfMasters -{ - /*0x00*/ u8 kind; - /*0x01*/ bool8 active; - /*0x02*/ u16 var02; - /*0x04*/ u16 var04; - /*0x06*/ u16 var06; - /*0x08*/ u16 var08; - /*0x0a*/ u8 var0a; - /*0x0b*/ u8 language; - u8 pad0c[7]; - /*0x13*/ u8 playerName[8]; -}; - -struct TVShowMassOutbreak -{ - /*0x00*/ u8 kind; - /*0x01*/ bool8 active; - /*0x02*/ u8 var02; - /*0x03*/ u8 var03; - /*0x04*/ u16 moves[4]; - /*0x0C*/ u16 species; - /*0x0E*/ u16 var0E; - /*0x10*/ u8 locationMapNum; - /*0x11*/ u8 locationMapGroup; - /*0x12*/ u8 var12; - /*0x13*/ u8 probability; - /*0x14*/ u8 level; - /*0x15*/ u8 var15; - /*0x16*/ u16 daysLeft; - /*0x18*/ u8 language; - u8 pad19[11]; -}; - -typedef union TVShow -{ - struct TVShowCommon common; - struct TVShowFanClubLetter fanclubLetter; - struct TVShowRecentHappenings recentHappenings; - struct TVShowFanclubOpinions fanclubOpinions; - struct TVShowUnknownType04 unkShow04; - struct TVShowNameRaterShow nameRaterShow; - struct TVShowBravoTrainerPokemonProfiles bravoTrainer; - struct TVShowBravoTrainerBattleTowerSpotlight bravoTrainerTower; - struct TVShowPokemonToday pokemonToday; - struct TVShowSmartShopper smartshopperShow; - struct TVShowPokemonTodayFailed pokemonTodayFailed; - struct TVShowPokemonAngler pokemonAngler; - struct TVShowWorldOfMasters worldOfMasters; - struct TVShowMassOutbreak massOutbreak; -} TVShow; - -struct MailStruct -{ - /*0x00*/ u16 words[9]; - /*0x12*/ u8 playerName[8]; - /*0x1A*/ u8 trainerId[4]; - /*0x1E*/ u16 species; - /*0x20*/ u16 itemId; -}; - - -// Mauville Pokemon Center men - -struct MauvilleManCommon -{ - u8 id; -}; - -struct MauvilleManBard -{ - /*0x00*/ u8 id; - /*0x02*/ u16 songLyrics[6]; - /*0x0E*/ u16 temporaryLyrics[6]; - /*0x1A*/ u8 playerName[8]; - /*0x22*/ u8 filler_2DB6[0x3]; - /*0x25*/ u8 playerTrainerId[4]; - /*0x29*/ bool8 hasChangedSong; -}; /*size = 0x2C*/ - -struct MauvilleManHipster -{ - u8 id; - bool8 alreadySpoken; -}; - -struct MauvilleManTrader -{ - u8 id; - u8 unk1[4]; - u8 unk5[4][11]; - bool8 alreadyTraded; -}; - -struct MauvilleManStoryteller -{ - u8 id; - bool8 alreadyRecorded; - u8 filler2[2]; - u8 gameStatIDs[4]; - u8 trainerNames[4][7]; - u8 statValues[4][4]; -}; - -struct MauvilleManGiddy -{ - /*0x00*/ u8 id; - /*0x01*/ u8 taleCounter; - /*0x02*/ u8 questionNum; - /*0x04*/ u16 randomWords[10]; - /*0x18*/ u8 questionList[12]; -}; /*size = 0x2C*/ - - -union MauvilleMan -{ - struct MauvilleManCommon common; - struct MauvilleManBard bard; - struct MauvilleManHipster hipster; - struct MauvilleManTrader trader; - struct MauvilleManStoryteller storyteller; - struct MauvilleManGiddy giddy; - u8 filler[0x40]; // needed to pad out the struct -}; - -struct PokeNews -{ - u8 kind; - u8 state; - u16 days; -}; - -struct GabbyAndTyData -{ - /*2b10*/ u16 mon1; - /*2b12*/ u16 mon2; - /*2b14*/ u16 lastMove; - /*2b16*/ u16 quote; - /*2b18*/ u8 mapnum; - /*2b19*/ u8 battleNum; - /*2b1a*/ u8 valA_0:1; - /*2b1a*/ u8 valA_1:1; - /*2b1a*/ u8 valA_2:1; - /*2b1a*/ u8 valA_3:1; - /*2b1a*/ u8 valA_4:1; - /*2b1a*/ u8 valA_5:3; - /*2b1b*/ u8 valB_0:1; - /*2b1b*/ u8 valB_1:1; - /*2b1b*/ u8 valB_2:1; - /*2b1b*/ u8 valB_3:1; - /*2b1b*/ u8 valB_4:1; - /*2b1b*/ u8 valB_5:3; -}; - -struct DayCareMail -{ - /*0x00*/ struct MailStruct message; - /*0x24*/ u8 names[19]; -}; - -struct DayCareStepCountersEtc { - u32 steps[DAYCARE_MON_COUNT]; - u16 pendingEggPersonality; - u8 eggCycleStepsRemaining; -}; - -struct RecordMixingDayCareMail -{ - struct DayCareMail mail[DAYCARE_MON_COUNT]; - u32 numDaycareMons; - u16 itemsHeld[DAYCARE_MON_COUNT]; // marks whether or not each daycare mon is currently holding an item. -}; - -struct DayCareMisc -{ - struct DayCareMail mail[DAYCARE_MON_COUNT]; - struct DayCareStepCountersEtc countersEtc; -}; - -struct DayCare { - struct BoxPokemon mons[DAYCARE_MON_COUNT]; - struct DayCareMisc misc; -}; - -struct LinkBattleRecord -{ - u8 name[8]; - u16 trainerId; - u16 wins; - u16 losses; - u16 draws; -}; - -struct RecordMixingGiftData -{ - u8 unk0; - u8 quantity; - u16 itemId; - u8 filler4[8]; -}; - -struct RecordMixingGift -{ - int checksum; - struct RecordMixingGiftData data; -}; - -struct ContestWinner -{ - /*0x00*/ u32 personality; // personality - /*0x04*/ u32 otId; // otId - /*0x08*/ u16 species; // species - /*0x0A*/ u8 contestCategory; - /*0x0B*/ u8 nickname[11]; - /*0x16*/ u8 trainerName[8]; -}; - -// there should be enough flags for all 412 slots -// each slot takes up 8 flags -// if the value is not divisible by 8, we need to account for the reminder as well -#define DEX_FLAGS_NO ((POKEMON_SLOTS_NUMBER / 8) + ((POKEMON_SLOTS_NUMBER % 8) ? 1 : 0)) - -struct SaveBlock1 /* 0x02025734 */ -{ - /*0x00*/ struct Coords16 pos; - /*0x04*/ struct WarpData location; - /*0x0C*/ struct WarpData warp1; - /*0x14*/ struct WarpData warp2; - /*0x1C*/ struct WarpData lastHealLocation; - /*0x24*/ struct WarpData warp4; - /*0x2C*/ u16 savedMusic; - /*0x2E*/ u8 weather; - /*0x2F*/ u8 weatherCycleStage; - /*0x30*/ u8 flashLevel; // flash level on current map, 0 being normal and 4 being the darkest - /*0x32*/ u16 mapLayoutId; - /*0x34*/ u16 mapView[0x100]; - /*0x234*/ u8 playerPartyCount; - /*0x238*/ struct Pokemon playerParty[6]; - /*0x490*/ u32 money; - /*0x494*/ u16 coins; - /*0x496*/ u16 registeredItem; // registered for use with SELECT button - /*0x498*/ struct ItemSlot pcItems[PC_ITEMS_COUNT]; - /*0x560*/ struct ItemSlot bagPocket_Items[BAG_ITEMS_COUNT]; - /*0x5B0*/ struct ItemSlot bagPocket_KeyItems[BAG_KEYITEMS_COUNT]; - /*0x600*/ struct ItemSlot bagPocket_PokeBalls[BAG_POKEBALLS_COUNT]; - /*0x640*/ struct ItemSlot bagPocket_TMHM[BAG_TMHM_COUNT]; - /*0x740*/ struct ItemSlot bagPocket_Berries[BAG_BERRIES_COUNT]; - /*0x7F8*/ struct Pokeblock pokeblocks[POKEBLOCKS_COUNT]; - /*0x938*/ u8 dexSeen2[DEX_FLAGS_NO]; - /*0x96C*/ u16 berryBlenderRecords[3]; - /*0x972*/ u8 filler_972[0x6]; - /*0x978*/ u16 trainerRematchStepCounter; - /*0x97A*/ u8 trainerRematches[100]; - /*0x9E0*/ struct EventObject eventObjects[EVENT_OBJECTS_COUNT]; - /*0xC20*/ struct EventObjectTemplate eventObjectTemplates[64]; - /*0x1220*/ u8 flags[FLAGS_COUNT]; - /*0x1340*/ u16 vars[VARS_COUNT]; - /*0x1540*/ u32 gameStats[NUM_GAME_STATS]; - /*0x1608*/ struct BerryTree berryTrees[BERRY_TREES_COUNT]; - /*0x1A08*/ struct SecretBaseRecord secretBases[SECRET_BASES_COUNT]; - /*0x2688*/ u8 playerRoomDecor[12]; - /*0x2694*/ u8 playerRoomDecorPos[12]; - /*0x26A0*/ u8 decorDesk[10]; - /*0x26AA*/ u8 decorChair[10]; - /*0x26B4*/ u8 decorPlant[10]; - /*0x26BE*/ u8 decorOrnament[30]; - /*0x26DC*/ u8 decorMat[30]; - /*0x26FA*/ u8 decorPoster[10]; - /*0x2704*/ u8 decorDoll[40]; - /*0x272C*/ u8 decorCushion[10]; - /*0x2736*/ u8 padding_2736[2]; - /*0x2738*/ TVShow tvShows[TV_SHOWS_COUNT]; - /*0x2ABC*/ struct PokeNews pokeNews[POKE_NEWS_COUNT]; - /*0x2AFC*/ u16 outbreakPokemonSpecies; - /*0x2AFE*/ u8 outbreakLocationMapNum; - /*0x2AFF*/ u8 outbreakLocationMapGroup; - /*0x2B00*/ u8 outbreakPokemonLevel; - /*0x2B01*/ u8 outbreakUnk1; - /*0x2B02*/ u16 outbreakUnk2; - /*0x2B04*/ u16 outbreakPokemonMoves[4]; - /*0x2B0C*/ u8 outbreakUnk4; - /*0x2B0D*/ u8 outbreakPokemonProbability; - /*0x2B0E*/ u16 outbreakUnk5; - /*0x2B10*/ struct GabbyAndTyData gabbyAndTyData; - /*0x2B1C*/ struct { - /*0x2B1C*/ u16 unk2B1C[6]; - /*0x2B28*/ u16 unk2B28[6]; - /*0x2B34*/ u16 unk2B34[6]; - /*0x2B40*/ u16 unk2B40[6]; - } easyChats; - /*0x2B4C*/ struct MailStruct mail[MAIL_COUNT]; - /*0x2D8C*/ u8 unk2D8C[4]; // What is this? Apparently it's supposed to be 64 bytes in size. - /*0x2D90*/ u8 filler_2D90[0x4]; - /*0x2D94*/ union MauvilleMan mauvilleMan; - /*0x2DD4*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff - /*0x2DFC*/ struct ContestWinner contestWinners[8]; - /*0x2EFC*/ struct ContestWinner museumPortraits[5]; - /*0x2F9C*/ struct DayCare daycare; - /*0x30B8*/ struct LinkBattleRecord linkBattleRecords[5]; - struct { - /*0x3108*/ u8 unknown1[8]; - /*0x3110*/ u8 giftRibbons[11]; - /*0x311B*/ u8 unknown2[8]; - /*0x3123*/ u32 currentPokeCoupons; - /*0x3127*/ u32 totalEarnedPokeCoupons; - /*0x312B*/ u8 unknown3[6]; - /*0x3131*/ u8 receivedWishmakerJirachi; - /*0x3132*/ u8 unknown4[18]; - } __attribute__((packed)) externalReservedData; - /*0x3144*/ struct Roamer roamer; - /*0x3160*/ struct EnigmaBerry enigmaBerry; - /*0x3690*/ struct RamScript ramScript; - /*0x3A7C*/ struct RecordMixingGift recordMixingGift; - /*0x3A8C*/ u8 dexSeen3[DEX_FLAGS_NO]; -}; - -extern struct SaveBlock1 gSaveBlock1; - -struct Time -{ - /*0x00*/ s16 days; - /*0x02*/ s8 hours; - /*0x03*/ s8 minutes; - /*0x04*/ s8 seconds; -}; - -struct Pokedex -{ - /*0x00*/ u8 order; - /*0x01*/ u8 unknown1; - /*0x02*/ u8 nationalMagic; // must equal 0xDA in order to have National mode - /*0x03*/ u8 unknown2; - /*0x04*/ u32 unownPersonality; // set when you first see Unown - /*0x08*/ u32 spindaPersonality; // set when you first see Spinda - /*0x0C*/ u32 unknown3; - /*0x10*/ u8 owned[DEX_FLAGS_NO]; - /*0x44*/ u8 seen[DEX_FLAGS_NO]; -}; - -struct BattleTowerTrainer -{ - /*0x00*/ u8 trainerClass; - /*0x01*/ u8 name[8]; - /*0x09*/ u8 teamFlags; - u8 filler0A[2]; - /*0x0C*/ u16 greeting[6]; -}; - -struct BattleTowerRecord // record mixing -{ - /*0x00*/ u8 battleTowerLevelType; // 0 = level 50, 1 = level 100 - /*0x01*/ u8 trainerClass; - /*0x02*/ u16 winStreak; - /*0x04*/ u8 name[8]; - /*0x0C*/ u8 trainerId[4]; - /*0x10*/ u16 greeting[6]; - /*0x1C*/ struct BattleTowerPokemon party[3]; - /*0xA0*/ u32 checksum; -}; - -struct BattleTowerEReaderTrainer -{ - /*0x00*/ u8 unk0; - /*0x01*/ u8 trainerClass; - /*0x02*/ u16 winStreak; - /*0x04*/ u8 name[8]; - /*0x0C*/ u8 trainerId[4]; - /*0x10*/ u16 greeting[6]; - /*0x1C*/ u16 farewellPlayerLost[6]; - /*0x28*/ u16 farewellPlayerWon[6]; - /*0x34*/ struct BattleTowerPokemon party[3]; - /*0xB8*/ u32 checksum; -}; - -struct BattleTowerData -{ - /*0x0000, 0x00A8*/ struct BattleTowerRecord playerRecord; - /*0x00A4, 0x014C*/ struct BattleTowerRecord records[5]; // from record mixing - /*0x03D8, 0x0480*/ u16 firstMonSpecies; // species of the first pokemon in the player's battle tower party - /*0x03DA, 0x0482*/ u16 defeatedBySpecies; // species of the pokemon that defated the player - /*0x03DC, 0x0484*/ u8 defeatedByTrainerName[8]; - /*0x03E4, 0x048C*/ u8 firstMonNickname[POKEMON_NAME_LENGTH]; // nickname of the first pokemon in the player's battle tower party - /*0x03F0, 0x0498*/ struct BattleTowerEReaderTrainer ereaderTrainer; - /*0x04AC, 0x0554*/ u8 battleTowerLevelType:1; // 0 = level 50; 1 = level 100 - /*0x04AC, 0x0554*/ u8 unk_554:1; - /*0x04AD, 0x0555*/ u8 battleOutcome; - /*0x04AE, 0x0556*/ u8 var_4AE[2]; - /*0x04B0, 0x0558*/ u16 curChallengeBattleNum[2]; // 1-based index of battle in the current challenge. (challenges consist of 7 battles) - /*0x04B4, 0x055C*/ u16 curStreakChallengesNum[2]; // 1-based index of the current challenge in the current streak. - /*0x04B8, 0x0560*/ u16 recordWinStreaks[2]; - /*0x04BC, 0x0564*/ u8 battleTowerTrainerId; // index for gBattleTowerTrainers table - /*0x04BD, 0x0565*/ u8 selectedPartyMons[0x3]; // indices of the 3 selected player party mons. - /*0x04C0, 0x0568*/ u16 prizeItem; - /*0x04C2, 0x056A*/ u8 battledTrainerIds[6]; - /*0x04C8, 0x0570*/ u16 totalBattleTowerWins; - /*0x04CA, 0x0572*/ u16 bestBattleTowerWinStreak; - /*0x04CC, 0x0574*/ u16 currentWinStreaks[2]; - /*0x04D0, 0x0578*/ u8 lastStreakLevelType; // 0 = level 50, 1 = level 100. level type of the last streak. Used by tv to report the level mode. - /*0x04D1, 0x0579*/ u8 filler_4D1[0x317]; -}; - -struct SaveBlock2 /* 0x02024EA4 */ -{ - /*0x00*/ u8 playerName[8]; - /*0x08*/ u8 playerGender; // MALE, FEMALE - /*0x09*/ u8 specialSaveWarp; - /*0x0A*/ u8 playerTrainerId[4]; - /*0x0E*/ u16 playTimeHours; - /*0x10*/ u8 playTimeMinutes; - /*0x11*/ u8 playTimeSeconds; - /*0x12*/ u8 playTimeVBlanks; - /*0x13*/ u8 optionsButtonMode; // OPTIONS_BUTTON_MODE_[NORMAL/LR/L_EQUALS_A] - /*0x14*/ u16 optionsTextSpeed:3; // OPTIONS_TEXT_SPEED_[SLOW/MID/FAST] - u16 optionsWindowFrameType:5; // Specifies one of the 20 decorative borders for text boxes - u16 optionsSound:1; // OPTIONS_SOUND_[MONO/STEREO] - u16 optionsBattleStyle:1; // OPTIONS_BATTLE_STYLE_[SHIFT/SET] - u16 optionsBattleSceneOff:1; // whether battle animations are disabled - u16 regionMapZoom:1; // whether the map is zoomed in - /*0x18*/ struct Pokedex pokedex; - /*0x90*/ u8 filler_90[0x8]; - /*0x98*/ struct Time localTimeOffset; - /*0xA0*/ struct Time lastBerryTreeUpdate; - /*0xA8*/ struct BattleTowerData battleTower; -}; - -struct MapPosition -{ - s16 x; - s16 y; - s8 height; -}; - -struct UnkStruct_8054FF8 -{ - u8 a; - u8 b; - u8 c; - u8 d; - struct MapPosition sub; - u16 field_C; -}; - -// wasnt defined so I had to define it -struct HallOfFame -{ - u8 filler[0x1F00]; -}; - -extern struct SaveBlock2 gSaveBlock2; - -#define RomHeaderGameTitle ((const char *)0x080000A0) -#define RomHeaderGameCode ((const char *)0x080000AC) -#define RomHeaderMakerCode ((const char *)0x080000B0) -#define RomHeaderMagic ((const u8 *) 0x080000B2) -#define RomHeaderSoftwareVersion ((const u8 *) 0x080000BC) - -#define LocalTimeOffset ((struct Time *)0x02028098) -#define LastBerryTreeUpdate ((struct Time *)0x020280A0) - -#endif //GUARD_GLOBAL_H diff --git a/berry_fix/payload/include/main.h b/berry_fix/payload/include/main.h deleted file mode 100644 index cb58d59826..0000000000 --- a/berry_fix/payload/include/main.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef GUARD_MAIN_H -#define GUARD_MAIN_H - -#include "gba/gba.h" - -enum RomHeaderValidationResult -{ - SAPPHIRE_UPDATABLE = 2, - RUBY_UPDATABLE, - SAPPHIRE_NONEED, - RUBY_NONEED, - INVALID -}; - -enum MainCallbackState -{ - MAINCB_INIT = 0, - MAINCB_CHECK_RTC, - MAINCB_CHECK_FLASH, - MAINCB_READ_SAVE, - MAINCB_CHECK_TIME, - MAINCB_FIX_DATE, - MAINCB_NO_NEED_TO_FIX, - MAINCB_YEAR_MAKES_NO_SENSE, - MAINCB_FINISHED, - MAINCB_CHECK_PACIFIDLOG_TM, - MAINCB_FIX_PACIFIDLOG_TM, - MAINCB_ERROR -}; - -extern IntrFunc gIntrTable[]; -extern u16 gHeldKeys; -extern u16 gNewKeys; -extern u8 gIntrVector[]; -extern u32 gUpdateSuccessful; -extern u32 gUnknown_3001194; -extern u32 gUnknown_30011A0[]; -extern u32 gMainCallbackState; -extern u32 gGameVersion; - -extern u8 gSharedMem[0x8000]; - -extern const IntrFunc gIntrFuncPointers[]; - -#endif //GUARD_MAIN_H diff --git a/berry_fix/payload/include/pokemon.h b/berry_fix/payload/include/pokemon.h deleted file mode 100644 index d3a14ffff9..0000000000 --- a/berry_fix/payload/include/pokemon.h +++ /dev/null @@ -1,154 +0,0 @@ -#ifndef GUARD_POKEMON_H -#define GUARD_POKEMON_H - -struct PokemonSubstruct0 -{ - u16 species; - u16 heldItem; - u32 experience; - u8 ppBonuses; - u8 friendship; -}; - -struct PokemonSubstruct1 -{ - u16 moves[4]; - u8 pp[4]; -}; - -struct PokemonSubstruct2 -{ - u8 hpEV; - u8 attackEV; - u8 defenseEV; - u8 speedEV; - u8 spAttackEV; - u8 spDefenseEV; - u8 cool; - u8 beauty; - u8 cute; - u8 smart; - u8 tough; - u8 sheen; -}; - -struct PokemonSubstruct3 -{ - /*0x00*/ u8 pokerus; - /*0x01*/ u8 metLocation; - - /*0x02*/ u16 metLevel:7; - /*0x02*/ u16 metGame:4; - /*0x03*/ u16 pokeball:4; - /*0x03*/ u16 otGender:1; - - /*0x04*/ u32 hpIV:5; - /*0x04*/ u32 attackIV:5; - /*0x05*/ u32 defenseIV:5; - /*0x05*/ u32 speedIV:5; - /*0x05*/ u32 spAttackIV:5; - /*0x06*/ u32 spDefenseIV:5; - /*0x07*/ u32 isEgg:1; - /*0x07*/ u32 altAbility:1; - - /*0x08*/ u32 coolRibbon:3; - /*0x08*/ u32 beautyRibbon:3; - /*0x08*/ u32 cuteRibbon:3; - /*0x09*/ u32 smartRibbon:3; - /*0x09*/ u32 toughRibbon:3; - /*0x09*/ u32 championRibbon:1; - /*0x0A*/ u32 winningRibbon:1; - /*0x0A*/ u32 victoryRibbon:1; - /*0x0A*/ u32 artistRibbon:1; - /*0x0A*/ u32 effortRibbon:1; - /*0x0A*/ u32 giftRibbon1:1; - /*0x0A*/ u32 giftRibbon2:1; - /*0x0A*/ u32 giftRibbon3:1; - /*0x0A*/ u32 giftRibbon4:1; - /*0x0B*/ u32 giftRibbon5:1; - /*0x0B*/ u32 giftRibbon6:1; - /*0x0B*/ u32 giftRibbon7:1; - /*0x0B*/ u32 fatefulEncounter:5; // unused in Ruby/Sapphire, but the high bit must be set for Mew/Deoxys to obey in FR/LG/Emerald -}; - -union PokemonSubstruct -{ - struct PokemonSubstruct0 type0; - struct PokemonSubstruct1 type1; - struct PokemonSubstruct2 type2; - struct PokemonSubstruct3 type3; - u16 raw[6]; -}; - -struct BoxPokemon -{ - /*0x00*/ u32 personality; - /*0x04*/ u32 otId; - /*0x08*/ u8 nickname[POKEMON_NAME_LENGTH]; - /*0x12*/ u8 language; - /*0x13*/ u8 isBadEgg:1; - u8 hasSpecies:1; - u8 isEgg:1; - /*0x14*/ u8 otName[OT_NAME_LENGTH]; - /*0x1B*/ u8 markings; - /*0x1C*/ u16 checksum; - /*0x1E*/ u16 unknown; - - union - { - u32 raw[12]; - union PokemonSubstruct substructs[4]; - } secure; -}; /*size = 0x50*/ - -struct Pokemon -{ - /*0x00*/ struct BoxPokemon box; - /*0x50*/ u32 status; - /*0x54*/ u8 level; - /*0x55*/ u8 mail; - /*0x56*/ u16 hp; - /*0x58*/ u16 maxHP; - /*0x5A*/ u16 attack; - /*0x5C*/ u16 defense; - /*0x5E*/ u16 speed; - /*0x60*/ u16 spAttack; - /*0x62*/ u16 spDefense; -}; - -struct BattleTowerPokemon -{ - /*0x00*/u16 species; - /*0x02*/u16 heldItem; - /*0x04*/u16 moves[4]; - /*0x0C*/u8 level; - /*0x0D*/u8 ppBonuses; - /*0x0E*/u8 hpEV; - /*0x0F*/u8 attackEV; - /*0x10*/u8 defenseEV; - /*0x11*/u8 speedEV; - /*0x12*/u8 spAttackEV; - /*0x13*/u8 spDefenseEV; - /*0x14*/u32 otId; - /*0x18*/u32 hpIV:5; - /*0x18*/u32 attackIV:5; - /*0x19*/u32 defenseIV:5; - /*0x19*/u32 speedIV:5; - /*0x1A*/u32 spAttackIV:5; - /*0x1A*/u32 spDefenseIV:5; - /*0x1B*/u32 gap:1; - /*0x1B*/u32 altAbility:1; - /*0x1C*/u32 personality; - /*0x20*/u8 nickname[POKEMON_NAME_LENGTH + 1]; - /*0x2B*/u8 friendship; -}; - -struct PokemonStorage -{ - /*0x0000*/ u8 currentBox; - /*0x0004*/ struct BoxPokemon boxes[14][30]; - /*0x8344*/ u8 boxNames[14][9]; - /*0x83c2*/ u8 wallpaper[14]; -}; - -#endif // GUARD_POKEMON_H diff --git a/berry_fix/payload/include/rtc.h b/berry_fix/payload/include/rtc.h deleted file mode 100644 index 35654d866b..0000000000 --- a/berry_fix/payload/include/rtc.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef GUARD_RTC_H -#define GUARD_RTC_H - -#include "gba/gba.h" -#include "siirtc.h" -#include "global.h" - -extern struct Time gTimeSinceBerryUpdate; -extern struct Time gRtcUTCTime; - -bool32 rtc_maincb_is_rtc_working(void); -bool32 rtc_maincb_is_time_since_last_berry_update_positive(u8 *); -void rtc_maincb_fix_date(void); - -#endif //GUARD_RTC_H diff --git a/berry_fix/payload/include/siirtc.h b/berry_fix/payload/include/siirtc.h deleted file mode 100644 index de4fd634df..0000000000 --- a/berry_fix/payload/include/siirtc.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef GUARD_RTC_H -#define GUARD_RTC_H - -#include "gba/gba.h" - -#define SIIRTCINFO_INTFE 0x01 // frequency interrupt enable -#define SIIRTCINFO_INTME 0x02 // per-minute interrupt enable -#define SIIRTCINFO_INTAE 0x04 // alarm interrupt enable -#define SIIRTCINFO_24HOUR 0x40 // 0: 12-hour mode, 1: 24-hour mode -#define SIIRTCINFO_POWER 0x80 // power on or power failure occurred - -enum -{ - MONTH_JAN = 1, - MONTH_FEB, - MONTH_MAR, - MONTH_APR, - MONTH_MAY, - MONTH_JUN, - MONTH_JUL, - MONTH_AUG, - MONTH_SEP, - MONTH_OCT, - MONTH_NOV, - MONTH_DEC -}; - -struct SiiRtcInfo -{ - u8 year; - u8 month; - u8 day; - u8 dayOfWeek; - u8 hour; - u8 minute; - u8 second; - u8 status; - u8 alarmHour; - u8 alarmMinute; -}; - -void SiiRtcUnprotect(void); -void SiiRtcProtect(void); -u8 SiiRtcProbe(void); -bool8 SiiRtcReset(void); -bool8 SiiRtcGetStatus(struct SiiRtcInfo *rtc); -bool8 SiiRtcSetStatus(struct SiiRtcInfo *rtc); -bool8 SiiRtcGetDateTime(struct SiiRtcInfo *rtc); -bool8 SiiRtcSetDateTime(struct SiiRtcInfo *rtc); -bool8 SiiRtcGetTime(struct SiiRtcInfo *rtc); -bool8 SiiRtcSetTime(struct SiiRtcInfo *rtc); -bool8 SiiRtcSetAlarm(struct SiiRtcInfo *rtc); - -#endif // GUARD_RTC_H diff --git a/berry_fix/payload/ld_script.sed b/berry_fix/payload/ld_script.sed deleted file mode 100644 index b91542b6f8..0000000000 --- a/berry_fix/payload/ld_script.sed +++ /dev/null @@ -1,14 +0,0 @@ -// { - r sym_ewram.ld - d -} - -// { - r sym_bss.ld - d -} - -// { - r sym_common.ld - d -} diff --git a/berry_fix/payload/ld_script.txt b/berry_fix/payload/ld_script.txt deleted file mode 100644 index d0a0af9edb..0000000000 --- a/berry_fix/payload/ld_script.txt +++ /dev/null @@ -1,107 +0,0 @@ -ENTRY(Init) - -SECTIONS { - . = 0x2010000; - - .text : - ALIGN(4) - { - asm/crt0.o(.text); - src/main.o(.text); - src/rtc.o(.text); - src/flash.o(.text); - } =0 - - lib_text : - ALIGN(4) - { - src/agb_flash.o(.text); - src/agb_flash_1m.o(.text); - src/agb_flash_mx.o(.text); - asm/libagbsyscall.o(.text); - src/siirtc.o(.text); - *libgcc.a:_call_via_rX.o(.text); - *libgcc.a:_modsi3.o(.text); - *libgcc.a:_umodsi3.o(.text); - *libgcc.a:_dvmd_tls.o(.text); - } =0 - - .rodata : - ALIGN(4) - { - src/main.o(.rodata); - src/rtc.o(.rodata); - src/flash.o(.rodata); - } =0 - - lib_rodata : - ALIGN(4) - { - src/agb_flash.o(.rodata); - src/agb_flash_1m.o(.rodata); - src/agb_flash_mx.o(.rodata); - src/agb_flash_le.o(.rodata); - src/siirtc.o(.rodata); - } - - . = 0x2020000; - - ewram (NOLOAD) : - ALIGN(4) - { - - } - - . = 0x3001000; - - iwram (NOLOAD) : - ALIGN(4) - { - - . = 0x40; - - end = .; - } - - . = 0x8000000; - - RS_Rom (NOLOAD) : - ALIGN(4) - { - _start = .; - . += 4; - RomHeaderNintendoLogo = .; - . += 156; - RS_RomHeader = .; - RomHeaderGameTitle = .; - . += 12; - RomHeaderGameCode = .; - . += 4; - RomHeaderMakerCode = .; - . += 2; - RomHeaderMagic = .; - . += 1; - RomHeaderMainUnitCode = .; - . += 1; - RomHeaderDeviceType = .; - . += 1; - RomHeaderReserved1 = .; - . += 7; - RomHeaderSoftwareVersion = .; - . += 1; - RomHeaderChecksum = .; - . += 1; - RomHeaderReserved2 = .; - . += 6; - GPIOPortData = .; - . += 2; - GPIOPortDirection = .; - . += 2; - GPIOPortReadEnable = .; - } =0 - - /DISCARD/ : - { - *(*); - } -} diff --git a/berry_fix/payload/rom.sha1 b/berry_fix/payload/rom.sha1 deleted file mode 100644 index 92eee7e879..0000000000 --- a/berry_fix/payload/rom.sha1 +++ /dev/null @@ -1 +0,0 @@ -866991e2b5a8de02d12f53abe0ee9af03a2b6e01 payload.gba diff --git a/berry_fix/payload/src/agb_flash.c b/berry_fix/payload/src/agb_flash.c deleted file mode 100644 index 2c2c96e6e9..0000000000 --- a/berry_fix/payload/src/agb_flash.c +++ /dev/null @@ -1,296 +0,0 @@ -#include "gba/gba.h" -#include "gba/flash_internal.h" - -static u8 sTimerNum; -static u16 sTimerCount; -static vu16 *sTimerReg; -static u16 sSavedIme; - -u8 gFlashTimeoutFlag; -u8 (*PollFlashStatus)(u8 *); -const struct FlashType *gFlash; -u16 gFlashNumRemainingBytes; -const u16 *gFlashMaxTime; - -u16 (*ProgramFlashByte)(u16, u32, u8); -u16 (*ProgramFlashSector)(u16, void *); -u16 (*EraseFlashChip)(void); -u16 (*EraseFlashSector)(u16); -u16 (*WaitForFlashWrite)(u8, u8 *, u8); - -void SetReadFlash1(u16 *dest); - -void SwitchFlashBank(u8 bankNum) -{ - FLASH_WRITE(0x5555, 0xAA); - FLASH_WRITE(0x2AAA, 0x55); - FLASH_WRITE(0x5555, 0xB0); - FLASH_WRITE(0x0000, bankNum); -} - -#define DELAY() \ -do { \ - vu16 i; \ - for (i = 20000; i != 0; i--) \ - ; \ -} while (0) - -u16 ReadFlashId(void) -{ - u16 flashId; - u16 readFlash1Buffer[0x20]; - u8 (*readFlash1)(u8 *); - - SetReadFlash1(readFlash1Buffer); - readFlash1 = (u8 (*)(u8 *))((s32)readFlash1Buffer + 1); - - // Enter ID mode. - FLASH_WRITE(0x5555, 0xAA); - FLASH_WRITE(0x2AAA, 0x55); - FLASH_WRITE(0x5555, 0x90); - DELAY(); - - flashId = readFlash1(FLASH_BASE + 1) << 8; - flashId |= readFlash1(FLASH_BASE); - - // Leave ID mode. - FLASH_WRITE(0x5555, 0xAA); - FLASH_WRITE(0x2AAA, 0x55); - FLASH_WRITE(0x5555, 0xF0); - FLASH_WRITE(0x5555, 0xF0); - DELAY(); - - return flashId; -} - -void FlashTimerIntr(void) -{ - if (sTimerCount != 0 && --sTimerCount == 0) - gFlashTimeoutFlag = 1; -} - -u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void)) -{ - if (timerNum >= 4) - return 1; - - sTimerNum = timerNum; - sTimerReg = ®_TMCNT(sTimerNum); - *intrFunc = FlashTimerIntr; - return 0; -} - -void StartFlashTimer(u8 phase) -{ - const u16 *maxTime = &gFlashMaxTime[phase * 3]; - sSavedIme = REG_IME; - REG_IME = 0; - sTimerReg[1] = 0; - REG_IE |= (INTR_FLAG_TIMER0 << sTimerNum); - gFlashTimeoutFlag = 0; - sTimerCount = *maxTime++; - *sTimerReg++ = *maxTime++; - *sTimerReg-- = *maxTime++; - REG_IF = (INTR_FLAG_TIMER0 << sTimerNum); - REG_IME = 1; -} - -void StopFlashTimer(void) -{ - REG_IME = 0; - *sTimerReg++ = 0; - *sTimerReg-- = 0; - REG_IE &= ~(INTR_FLAG_TIMER0 << sTimerNum); - REG_IME = sSavedIme; -} - -u8 ReadFlash1(u8 *addr) -{ - return *addr; -} - -void SetReadFlash1(u16 *dest) -{ - u16 *src; - u16 i; - - PollFlashStatus = (u8 (*)(u8 *))((s32)dest + 1); - - src = (u16 *)ReadFlash1; - src = (u16 *)((s32)src ^ 1); - - i = ((s32)SetReadFlash1 - (s32)ReadFlash1) >> 1; - - while (i != 0) - { - *dest++ = *src++; - i--; - } -} - -void ReadFlash_Core(u8 *src, u8 *dest, u32 size) -{ - while (size-- != 0) - { - *dest++ = *src++; - } -} - -void ReadFlash(u16 sectorNum, u32 offset, void *dest, u32 size) -{ - u8 *src; - u16 i; - u16 readFlash_Core_Buffer[0x40]; - u16 *funcSrc; - u16 *funcDest; - void (*readFlash_Core)(u8 *, u8 *, u32); - - REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8; - - if (gFlash->romSize == FLASH_ROM_SIZE_1M) - { - SwitchFlashBank(sectorNum / SECTORS_PER_BANK); - sectorNum %= SECTORS_PER_BANK; - } - - funcSrc = (u16 *)ReadFlash_Core; - funcSrc = (u16 *)((s32)funcSrc ^ 1); - funcDest = readFlash_Core_Buffer; - - i = ((s32)ReadFlash - (s32)ReadFlash_Core) >> 1; - - while (i != 0) - { - *funcDest++ = *funcSrc++; - i--; - } - - readFlash_Core = (void (*)(u8 *, u8 *, u32))((s32)readFlash_Core_Buffer + 1); - - src = FLASH_BASE + (sectorNum << gFlash->sector.shift) + offset; - - readFlash_Core(src, dest, size); -} - -u32 VerifyFlashSector_Core(u8 *src, u8 *tgt, u32 size) -{ - while (size-- != 0) - { - if (*tgt++ != *src++) - return (u32)(tgt - 1); - } - - return 0; -} - -u32 VerifyFlashSector(u16 sectorNum, u8 *src) -{ - u16 i; - u16 verifyFlashSector_Core_Buffer[0x80]; - u16 *funcSrc; - u16 *funcDest; - u8 *tgt; - u16 size; - u32 (*verifyFlashSector_Core)(u8 *, u8 *, u32); - - REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8; - - if (gFlash->romSize == FLASH_ROM_SIZE_1M) - { - SwitchFlashBank(sectorNum / SECTORS_PER_BANK); - sectorNum %= SECTORS_PER_BANK; - } - - funcSrc = (u16 *)VerifyFlashSector_Core; - funcSrc = (u16 *)((s32)funcSrc ^ 1); - funcDest = verifyFlashSector_Core_Buffer; - - i = ((s32)VerifyFlashSector - (s32)VerifyFlashSector_Core) >> 1; - - while (i != 0) - { - *funcDest++ = *funcSrc++; - i--; - } - - verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((s32)verifyFlashSector_Core_Buffer + 1); - - tgt = FLASH_BASE + (sectorNum << gFlash->sector.shift); - size = gFlash->sector.size; - - return verifyFlashSector_Core(src, tgt, size); -} - -u32 VerifyFlashSectorNBytes(u16 sectorNum, u8 *src, u32 n) -{ - u16 i; - u16 verifyFlashSector_Core_Buffer[0x80]; - u16 *funcSrc; - u16 *funcDest; - u8 *tgt; - u32 (*verifyFlashSector_Core)(u8 *, u8 *, u32); - - if (gFlash->romSize == FLASH_ROM_SIZE_1M) - { - SwitchFlashBank(sectorNum / SECTORS_PER_BANK); - sectorNum %= SECTORS_PER_BANK; - } - - REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8; - - funcSrc = (u16 *)VerifyFlashSector_Core; - funcSrc = (u16 *)((s32)funcSrc ^ 1); - funcDest = verifyFlashSector_Core_Buffer; - - i = ((s32)VerifyFlashSector - (s32)VerifyFlashSector_Core) >> 1; - - while (i != 0) - { - *funcDest++ = *funcSrc++; - i--; - } - - verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((s32)verifyFlashSector_Core_Buffer + 1); - - tgt = FLASH_BASE + (sectorNum << gFlash->sector.shift); - - return verifyFlashSector_Core(src, tgt, n); -} - -u32 ProgramFlashSectorAndVerify(u16 sectorNum, u8 *src) -{ - u8 i; - u32 result; - - for (i = 0; i < 3; i++) - { - result = ProgramFlashSector(sectorNum, src); - if (result != 0) - continue; - - result = VerifyFlashSector(sectorNum, src); - if (result == 0) - break; - } - - return result; -} - -u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, void *src, u32 n) -{ - u8 i; - u32 result; - - for (i = 0; i < 3; i++) - { - result = ProgramFlashSector(sectorNum, src); - if (result != 0) - continue; - - result = VerifyFlashSectorNBytes(sectorNum, src, n); - if (result == 0) - break; - } - - return result; -} diff --git a/berry_fix/payload/src/agb_flash_1m.c b/berry_fix/payload/src/agb_flash_1m.c deleted file mode 100644 index 7f8bdeb5f0..0000000000 --- a/berry_fix/payload/src/agb_flash_1m.c +++ /dev/null @@ -1,86 +0,0 @@ -#include "gba/gba.h" -#include "gba/flash_internal.h" - -static const char AgbLibFlashVersion[] = "FLASH1M_V103"; - -const struct FlashSetupInfo * const sSetupInfos[] = -{ - &MX29L010, - &LE26FV10N1TS, - &DefaultFlash -}; - -u32 IdentifyFlash(void) -{ - u16 result; - u16 flashId; - const struct FlashSetupInfo * const *setupInfo; - - REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8; - - flashId = ReadFlashId(); - - setupInfo = sSetupInfos; - result = 1; - - for (;;) - { - if ((*setupInfo)->type.ids.separate.makerId == 0) - break; - - if (flashId == (*setupInfo)->type.ids.joined) - { - result = 0; - break; - } - - setupInfo++; - } - - ProgramFlashByte = (*setupInfo)->programFlashByte; - ProgramFlashSector = (*setupInfo)->programFlashSector; - EraseFlashChip = (*setupInfo)->eraseFlashChip; - EraseFlashSector = (*setupInfo)->eraseFlashSector; - WaitForFlashWrite = (*setupInfo)->WaitForFlashWrite; - gFlashMaxTime = (*setupInfo)->maxTime; - gFlash = &(*setupInfo)->type; - - return result; -} - -u16 WaitForFlashWrite_Common(u8 phase, u8 *addr, u8 lastData) -{ - u16 result = 0; - u8 status; - - StartFlashTimer(phase); - - while ((status = PollFlashStatus(addr)) != lastData) - { - if (status & 0x20) - { - // The write operation exceeded the flash chip's time limit. - - if (PollFlashStatus(addr) == lastData) - break; - - FLASH_WRITE(0x5555, 0xF0); - result = phase | 0xA000u; - break; - } - - if (gFlashTimeoutFlag) - { - if (PollFlashStatus(addr) == lastData) - break; - - FLASH_WRITE(0x5555, 0xF0); - result = phase | 0xC000u; - break; - } - } - - StopFlashTimer(); - - return result; -} diff --git a/berry_fix/payload/src/agb_flash_le.c b/berry_fix/payload/src/agb_flash_le.c deleted file mode 100644 index 39d956e277..0000000000 --- a/berry_fix/payload/src/agb_flash_le.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "gba/gba.h" -#include "gba/flash_internal.h" - -const u16 leMaxTime[] = -{ - 10, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK, - 10, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK, - 2000, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK, - 2000, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK, -}; - -const struct FlashSetupInfo LE26FV10N1TS = -{ - ProgramFlashByte_MX, - ProgramFlashSector_MX, - EraseFlashChip_MX, - EraseFlashSector_MX, - WaitForFlashWrite_Common, - leMaxTime, - { - 131072, // ROM size - { - 4096, // sector size - 12, // bit shift to multiply by sector size (4096 == 1 << 12) - 32, // number of sectors - 0 // appears to be unused - }, - { 3, 1 }, // wait state setup data - { { 0x62, 0x13 } } // ID - } -}; diff --git a/berry_fix/payload/src/agb_flash_mx.c b/berry_fix/payload/src/agb_flash_mx.c deleted file mode 100644 index 68eb00cd8d..0000000000 --- a/berry_fix/payload/src/agb_flash_mx.c +++ /dev/null @@ -1,193 +0,0 @@ -#include "gba/gba.h" -#include "gba/flash_internal.h" - -const u16 mxMaxTime[] = -{ - 10, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK, - 10, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK, - 2000, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK, - 2000, 65469, TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_256CLK, -}; - -const struct FlashSetupInfo MX29L010 = -{ - ProgramFlashByte_MX, - ProgramFlashSector_MX, - EraseFlashChip_MX, - EraseFlashSector_MX, - WaitForFlashWrite_Common, - mxMaxTime, - { - 131072, // ROM size - { - 4096, // sector size - 12, // bit shift to multiply by sector size (4096 == 1 << 12) - 32, // number of sectors - 0 // appears to be unused - }, - { 3, 1 }, // wait state setup data - { { 0xC2, 0x09 } } // ID - } -}; - -const struct FlashSetupInfo DefaultFlash = -{ - ProgramFlashByte_MX, - ProgramFlashSector_MX, - EraseFlashChip_MX, - EraseFlashSector_MX, - WaitForFlashWrite_Common, - mxMaxTime, - { - 131072, // ROM size - { - 4096, // sector size - 12, // bit shift to multiply by sector size (4096 == 1 << 12) - 32, // number of sectors - 0 // appears to be unused - }, - { 3, 1 }, // wait state setup data - { { 0x00, 0x00 } } // ID of 0 - } -}; - -u16 EraseFlashChip_MX(void) -{ - u16 result; - u16 readFlash1Buffer[0x20]; - - REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | gFlash->wait[0]; - - FLASH_WRITE(0x5555, 0xAA); - FLASH_WRITE(0x2AAA, 0x55); - FLASH_WRITE(0x5555, 0x80); - FLASH_WRITE(0x5555, 0xAA); - FLASH_WRITE(0x2AAA, 0x55); - FLASH_WRITE(0x5555, 0x10); - - SetReadFlash1(readFlash1Buffer); - - result = WaitForFlashWrite(3, FLASH_BASE, 0xFF); - - REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8; - - return result; -} - -u16 EraseFlashSector_MX(u16 sectorNum) -{ - u16 numTries; - u16 result; - u8 *addr; - u16 readFlash1Buffer[0x20]; - - if (sectorNum >= gFlash->sector.count) - return 0x80FF; - - SwitchFlashBank(sectorNum / SECTORS_PER_BANK); - sectorNum %= SECTORS_PER_BANK; - - numTries = 0; - -try_erase: - REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | gFlash->wait[0]; - - addr = FLASH_BASE + (sectorNum << gFlash->sector.shift); - - FLASH_WRITE(0x5555, 0xAA); - FLASH_WRITE(0x2AAA, 0x55); - FLASH_WRITE(0x5555, 0x80); - FLASH_WRITE(0x5555, 0xAA); - FLASH_WRITE(0x2AAA, 0x55); - *addr = 0x30; - - SetReadFlash1(readFlash1Buffer); - - result = WaitForFlashWrite(2, addr, 0xFF); - - if (!(result & 0xA000) || numTries > 3) - goto done; - - numTries++; - - goto try_erase; - -done: - REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8; - - return result; -} - -u16 ProgramFlashByte_MX(u16 sectorNum, u32 offset, u8 data) -{ - u8 *addr; - u16 readFlash1Buffer[0x20]; - - if (offset >= gFlash->sector.size) - return 0x8000; - - SwitchFlashBank(sectorNum / SECTORS_PER_BANK); - sectorNum %= SECTORS_PER_BANK; - - addr = FLASH_BASE + (sectorNum << gFlash->sector.shift) + offset; - - SetReadFlash1(readFlash1Buffer); - - REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | gFlash->wait[0]; - - FLASH_WRITE(0x5555, 0xAA); - FLASH_WRITE(0x2AAA, 0x55); - FLASH_WRITE(0x5555, 0xA0); - *addr = data; - - return WaitForFlashWrite(1, addr, data); -} - -static u16 ProgramByte(u8 *src, u8 *dest) -{ - FLASH_WRITE(0x5555, 0xAA); - FLASH_WRITE(0x2AAA, 0x55); - FLASH_WRITE(0x5555, 0xA0); - *dest = *src; - - return WaitForFlashWrite(1, dest, *src); -} - -u16 ProgramFlashSector_MX(u16 sectorNum, void *src) -{ - u16 result; - u8 *dest; - u16 readFlash1Buffer[0x20]; - - if (sectorNum >= gFlash->sector.count) - return 0x80FF; - - result = EraseFlashSector_MX(sectorNum); - - if (result != 0) - return result; - - SwitchFlashBank(sectorNum / SECTORS_PER_BANK); - sectorNum %= SECTORS_PER_BANK; - - SetReadFlash1(readFlash1Buffer); - - REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | gFlash->wait[0]; - - gFlashNumRemainingBytes = gFlash->sector.size; - dest = FLASH_BASE + (sectorNum << gFlash->sector.shift); - - while (gFlashNumRemainingBytes > 0) - { - result = ProgramByte(src, dest); - - if (result != 0) - break; - - gFlashNumRemainingBytes--; - src++; - dest++; - } - - return result; -} diff --git a/berry_fix/payload/src/flash.c b/berry_fix/payload/src/flash.c deleted file mode 100644 index 1f09d0b8f7..0000000000 --- a/berry_fix/payload/src/flash.c +++ /dev/null @@ -1,752 +0,0 @@ -#include "gba/gba.h" -#include "gba/flash_internal.h" -#include "constants/vars.h" -#include "global.h" -#include "main.h" -#include "flash.h" -#include "rtc.h" - -struct SaveBlockChunk -{ - u8 * data; - u16 size; -}; - -u8 WriteSaveBlockChunks(u16 a0, const struct SaveBlockChunk * a1); -u8 WriteSingleChunk(u16 a0, const struct SaveBlockChunk * a1); -u8 TryWriteSector(u8, u8 *); -u8 EraseCurrentChunk(u16 a0, const struct SaveBlockChunk * a1); -u8 TryReadAllSaveSectorsCurrentSlot(u16 a0, const struct SaveBlockChunk * a1); -u8 ReadAllSaveSectorsCurrentSlot(u16 a0, const struct SaveBlockChunk * a1); -u8 GetSaveValidStatus(const struct SaveBlockChunk * a1); -u32 DoReadFlashWholeSection(u8 a0, struct SaveSector * a1); -u16 CalculateChecksum(const void *, u16); - -u16 gFirstSaveSector; -u32 gPrevSaveCounter; -u16 gLastKnownGoodSector; -u32 gDamagedSaveSectors; -u32 gSaveCounter; -struct SaveSector * gFastSaveSection; -u16 gCurSaveChunk; -bool32 gFlashIdentIsValid; - -EWRAM_DATA struct SaveBlock2 gSaveBlock2 = {}; -EWRAM_DATA struct SaveBlock1 gSaveBlock1 = {}; -EWRAM_DATA struct PokemonStorage gPokemonStorage = {}; - -// Each 4 KiB flash sector contains 3968 bytes of actual data followed by a 128 byte footer -#define SECTOR_DATA_SIZE 3968 -#define SECTOR_FOOTER_SIZE 128 - -#define SAVEBLOCK_CHUNK(structure, chunkNum) \ -{ \ - (u8 *)&structure + chunkNum * SECTOR_DATA_SIZE, \ - min(sizeof(structure) - chunkNum * SECTOR_DATA_SIZE, SECTOR_DATA_SIZE) \ -} \ - -static const struct SaveBlockChunk sSaveBlockChunks[] = -{ - SAVEBLOCK_CHUNK(gSaveBlock2, 0), - - SAVEBLOCK_CHUNK(gSaveBlock1, 0), - SAVEBLOCK_CHUNK(gSaveBlock1, 1), - SAVEBLOCK_CHUNK(gSaveBlock1, 2), - SAVEBLOCK_CHUNK(gSaveBlock1, 3), - - SAVEBLOCK_CHUNK(gPokemonStorage, 0), - SAVEBLOCK_CHUNK(gPokemonStorage, 1), - SAVEBLOCK_CHUNK(gPokemonStorage, 2), - SAVEBLOCK_CHUNK(gPokemonStorage, 3), - SAVEBLOCK_CHUNK(gPokemonStorage, 4), - SAVEBLOCK_CHUNK(gPokemonStorage, 5), - SAVEBLOCK_CHUNK(gPokemonStorage, 6), - SAVEBLOCK_CHUNK(gPokemonStorage, 7), - SAVEBLOCK_CHUNK(gPokemonStorage, 8), -}; - -const u16 gInfoMessagesPal[] = INCBIN_U16("graphics/msg_box.gbapal"); -const u8 gInfoMessagesTilemap[] = INCBIN_U8("graphics/msg_box.tilemap.lz"); -const u8 gInfoMessagesGfx[] = INCBIN_U8("graphics/msg_box.4bpp.lz"); - -bool32 flash_maincb_ident_is_valid(void) -{ - gFlashIdentIsValid = TRUE; - if (!IdentifyFlash()) - { - SetFlashTimerIntr(0, &((IntrFunc *)gIntrFuncPointers)[9]); - return TRUE; - } - gFlashIdentIsValid = FALSE; - return FALSE; -} - -void Call_ReadFlash(u16 sectorNum, ptrdiff_t offset, void * dest, size_t size) -{ - ReadFlash(sectorNum, offset, dest, size); -} - -u8 Call_WriteSaveBlockChunks(u16 a0, const struct SaveBlockChunk * a1) -{ - return WriteSaveBlockChunks(a0, a1); -} - -u8 Call_TryReadAllSaveSectorsCurrentSlot(u16 a0, const struct SaveBlockChunk * a1) -{ - return TryReadAllSaveSectorsCurrentSlot(a0, a1); -} - -u32 * GetDamagedSaveSectorsPtr(void) -{ - return &gDamagedSaveSectors; -} - -s32 flash_write_save_block_chunks(u8 a0) -{ - u8 i; - - switch (a0) - { - case 0: - default: - Call_WriteSaveBlockChunks(0xFFFF, sSaveBlockChunks); - break; - case 1: - for (i = 0; i < 5; i++) - { - Call_WriteSaveBlockChunks(i, sSaveBlockChunks); - } - break; - case 2: - Call_WriteSaveBlockChunks(0, sSaveBlockChunks); - break; - } - - return 0; -} - -u8 flash_write_save_block_chunks_check_damage(u8 a0) -{ - flash_write_save_block_chunks(a0); - if (*GetDamagedSaveSectorsPtr() == 0) - return 1; - return 0xFF; -} - -u8 flash_maincb_read_save(u32 unused) -{ - return Call_TryReadAllSaveSectorsCurrentSlot(0xFFFF, sSaveBlockChunks); -} - -void msg_load_gfx(void) -{ - REG_DISPCNT = 0; - REG_BG0HOFS = 0; - REG_BG0VOFS = 0; - REG_BLDCNT = 0; - LZ77UnCompVram(gInfoMessagesGfx, (void *)BG_VRAM); - LZ77UnCompVram(gInfoMessagesTilemap, (void *)BG_SCREEN_ADDR(28)); - CpuCopy16(gInfoMessagesPal, (void *)BG_PLTT, 0x200); - REG_BG0CNT = BGCNT_SCREENBASE(28) | BGCNT_TXT512x512; - REG_DISPCNT = DISPCNT_BG0_ON; -} - -void msg_display(enum MsgBoxUpdateMessage a0) -{ - switch (a0) - { - case MSGBOX_WILL_NOW_UPDATE: - REG_BG0HOFS = 0; - REG_BG0VOFS = 0; - break; - case MSGBOX_HAS_BEEN_UPDATED: - REG_BG0HOFS = 0x100; - REG_BG0VOFS = 0; - break; - case MSGBOX_UNABLE_TO_UPDATE: - REG_BG0HOFS = 0x100; - REG_BG0VOFS = 0xB0; - break; - case MSGBOX_NO_NEED_TO_UPDATE: - REG_BG0HOFS = 0; - REG_BG0VOFS = 0xB0; - break; - case MSGBOX_UPDATING: - REG_BG0HOFS = 0; - REG_BG0VOFS = 0x160; - break; - } -} - -void Save_EraseAllData(void) -{ - u16 i; - for (i = 0; i < 32; i++) - EraseFlashSector(i); -} - -void Save_ResetSaveCounters(void) -{ - gSaveCounter = 0; - gFirstSaveSector = 0; - gDamagedSaveSectors = 0; -} - -bool32 SetSectorDamagedStatus(u8 op, u8 sectorNum) -{ - bool32 retVal = FALSE; - - switch (op) - { - case SECTOR_DAMAGED: - gDamagedSaveSectors |= (1 << sectorNum); - break; - case SECTOR_OK: - gDamagedSaveSectors &= ~(1 << sectorNum); - break; - case SECTOR_CHECK: // unused - if (gDamagedSaveSectors & (1 << sectorNum)) - retVal = TRUE; - break; - } - - return retVal; -} - -u8 WriteSaveBlockChunks(u16 chunkId, const struct SaveBlockChunk *chunks) -{ - u32 retVal; - u16 i; - - gFastSaveSection = eSaveSection; - - if (chunkId != 0xFFFF) // write single chunk - { - retVal = WriteSingleChunk(chunkId, chunks); - } - else // write all chunks - { - gLastKnownGoodSector = gFirstSaveSector; - gPrevSaveCounter = gSaveCounter; - gFirstSaveSector++; - gFirstSaveSector %= NUM_SECTORS_PER_SAVE_SLOT; - gSaveCounter++; - retVal = SAVE_STATUS_OK; - - for (i = 0; i < NUM_SECTORS_PER_SAVE_SLOT; i++) - WriteSingleChunk(i, chunks); - - // Check for any bad sectors - if (gDamagedSaveSectors != 0) // skip the damaged sector. - { - retVal = SAVE_STATUS_ERROR; - gFirstSaveSector = gLastKnownGoodSector; - gSaveCounter = gPrevSaveCounter; - } - } - - return retVal; -} - -u8 WriteSingleChunk(u16 chunkId, const struct SaveBlockChunk * chunks) -{ - u16 i; - u16 sectorNum; - u8 *chunkData; - u16 chunkSize; - - // select sector number - sectorNum = chunkId + gFirstSaveSector; - sectorNum %= NUM_SECTORS_PER_SAVE_SLOT; - // select save slot - sectorNum += NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2); - - chunkData = chunks[chunkId].data; - chunkSize = chunks[chunkId].size; - - // clear save section. - for (i = 0; i < sizeof(struct SaveSector); i++) - ((u8 *)gFastSaveSection)[i] = 0; - - gFastSaveSection->id = chunkId; - gFastSaveSection->signature = FILE_SIGNATURE; - gFastSaveSection->counter = gSaveCounter; - for (i = 0; i < chunkSize; i++) - gFastSaveSection->data[i] = chunkData[i]; - gFastSaveSection->checksum = CalculateChecksum(chunkData, chunkSize); - - return TryWriteSector(sectorNum, gFastSaveSection->data); -} - -u8 HandleWriteSectorNBytes(u8 sectorNum, u8 *data, u16 size) -{ - u16 i; - struct SaveSector *section = eSaveSection; - - for (i = 0; i < sizeof(struct SaveSector); i++) - ((char *)section)[i] = 0; - - section->signature = FILE_SIGNATURE; - for (i = 0; i < size; i++) - section->data[i] = data[i]; - section->id = CalculateChecksum(data, size); // though this appears to be incorrect, it might be some sector checksum instead of a whole save checksum and only appears to be relevent to HOF data, if used. - - return TryWriteSector(sectorNum, section->data); -} - -u8 TryWriteSector(u8 sectorNum, u8 *data) -{ - if (ProgramFlashSectorAndVerify(sectorNum, data) != 0) // is damaged? - { - SetSectorDamagedStatus(SECTOR_DAMAGED, sectorNum); // set damaged sector bits. - return SAVE_STATUS_ERROR; - } - else - { - SetSectorDamagedStatus(SECTOR_OK, sectorNum); // unset damaged sector bits. it's safe now. - return SAVE_STATUS_OK; - } -} - -u32 RestoreSaveBackupVarsAndIncrement(const struct SaveBlockChunk *chunk) // chunk is unused -{ - gFastSaveSection = eSaveSection; - gLastKnownGoodSector = gFirstSaveSector; - gPrevSaveCounter = gSaveCounter; - gFirstSaveSector++; - gFirstSaveSector %= NUM_SECTORS_PER_SAVE_SLOT; - gSaveCounter++; - gCurSaveChunk = 0; - gDamagedSaveSectors = 0; - return 0; -} - -u32 RestoreSaveBackupVars(const struct SaveBlockChunk *chunk) -{ - gFastSaveSection = eSaveSection; - gLastKnownGoodSector = gFirstSaveSector; - gPrevSaveCounter = gSaveCounter; - gCurSaveChunk = 0; - gDamagedSaveSectors = 0; - return 0; -} - -u8 WriteSingleChunkAndIncrement(u16 a1, const struct SaveBlockChunk * chunk) -{ - u8 retVal; - - if (gCurSaveChunk < a1 - 1) - { - retVal = SAVE_STATUS_OK; - WriteSingleChunk(gCurSaveChunk, chunk); - gCurSaveChunk++; - if (gDamagedSaveSectors) - { - retVal = SAVE_STATUS_ERROR; - gFirstSaveSector = gLastKnownGoodSector; - gSaveCounter = gPrevSaveCounter; - } - } - else - { - retVal = SAVE_STATUS_ERROR; - } - - return retVal; -} - -u8 ErasePreviousChunk(u16 a1, const struct SaveBlockChunk *chunk) -{ - u8 retVal = SAVE_STATUS_OK; - - EraseCurrentChunk(a1 - 1, chunk); - - if (gDamagedSaveSectors) - { - retVal = SAVE_STATUS_ERROR; - gFirstSaveSector = gLastKnownGoodSector; - gSaveCounter = gPrevSaveCounter; - } - return retVal; -} - -u8 EraseCurrentChunk(u16 chunkId, const struct SaveBlockChunk *chunks) -{ - u16 i; - u16 sector; - u8 *data; - u16 size; - u8 status; - - // select sector number - sector = chunkId + gFirstSaveSector; - sector %= NUM_SECTORS_PER_SAVE_SLOT; - // select save slot - sector += NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2); - - data = chunks[chunkId].data; - size = chunks[chunkId].size; - - // clear temp save section. - for (i = 0; i < sizeof(struct SaveSector); i++) - ((char *)gFastSaveSection)[i] = 0; - - gFastSaveSection->id = chunkId; - gFastSaveSection->signature = FILE_SIGNATURE; - gFastSaveSection->counter = gSaveCounter; - - // set temp section's data. - for (i = 0; i < size; i++) - gFastSaveSection->data[i] = data[i]; - - // calculate checksum. - gFastSaveSection->checksum = CalculateChecksum(data, size); - - EraseFlashSector(sector); - - status = SAVE_STATUS_OK; - - for (i = 0; i < sizeof(struct UnkSaveSection); i++) - { - if (ProgramFlashByte(sector, i, gFastSaveSection->data[i])) - { - status = SAVE_STATUS_ERROR; - break; - } - } - - if (status == SAVE_STATUS_ERROR) - { - SetSectorDamagedStatus(SECTOR_DAMAGED, sector); - return SAVE_STATUS_ERROR; - } - else - { - status = SAVE_STATUS_OK; - - for (i = 0; i < 7; i++) - { - if (ProgramFlashByte(sector, 0xFF9 + i, ((u8 *)gFastSaveSection)[0xFF9 + i])) - { - status = SAVE_STATUS_ERROR; - break; - } - } - - if (status == SAVE_STATUS_ERROR) - { - SetSectorDamagedStatus(SECTOR_DAMAGED, sector); - return SAVE_STATUS_ERROR; - } - else - { - SetSectorDamagedStatus(SECTOR_OK, sector); - return SAVE_STATUS_OK; - } - } -} - -u8 WriteSomeFlashByteToPrevSector(u16 a1, const struct SaveBlockChunk *chunk) -{ - u16 sector; - - // select sector number - sector = a1 + gFirstSaveSector - 1; - sector %= NUM_SECTORS_PER_SAVE_SLOT; - // select save slot - sector += NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2); - - if (ProgramFlashByte(sector, sizeof(struct UnkSaveSection), ((u8 *)gFastSaveSection)[sizeof(struct UnkSaveSection)])) - { - // sector is damaged, so enable the bit in gDamagedSaveSectors and restore the last written sector and save counter. - SetSectorDamagedStatus(SECTOR_DAMAGED, sector); - gFirstSaveSector = gLastKnownGoodSector; - gSaveCounter = gPrevSaveCounter; - return SAVE_STATUS_ERROR; - } - else - { - SetSectorDamagedStatus(SECTOR_OK, sector); - return SAVE_STATUS_OK; - } -} - -u8 WriteSomeFlashByte0x25ToPrevSector(u16 a1, const struct SaveBlockChunk *chunk) -{ - u16 sector; - - sector = a1 + gFirstSaveSector - 1; - sector %= NUM_SECTORS_PER_SAVE_SLOT; - sector += NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2); - - if (ProgramFlashByte(sector, sizeof(struct UnkSaveSection), 0x25)) - { - // sector is damaged, so enable the bit in gDamagedSaveSectors and restore the last written sector and save counter. - SetSectorDamagedStatus(SECTOR_DAMAGED, sector); - gFirstSaveSector = gLastKnownGoodSector; - gSaveCounter = gPrevSaveCounter; - return SAVE_STATUS_ERROR; - } - else - { - SetSectorDamagedStatus(SECTOR_OK, sector); - return SAVE_STATUS_OK; - } -} - -u8 TryReadAllSaveSectorsCurrentSlot(u16 a1, const struct SaveBlockChunk *chunk) -{ - u8 retVal; - gFastSaveSection = eSaveSection; - if (a1 != 0xFFFF) - { - retVal = SAVE_STATUS_ERROR; - } - else - { - retVal = GetSaveValidStatus(chunk); - ReadAllSaveSectorsCurrentSlot(0xFFFF, chunk); - } - - return retVal; -} - -u8 ReadAllSaveSectorsCurrentSlot(u16 a1, const struct SaveBlockChunk *chunks) -{ - u16 i; - u16 checksum; - u16 sector = NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2); - u16 id; - - for (i = 0; i < NUM_SECTORS_PER_SAVE_SLOT; i++) - { - DoReadFlashWholeSection(i + sector, gFastSaveSection); - id = gFastSaveSection->id; - if (id == 0) - gFirstSaveSector = i; - checksum = CalculateChecksum(gFastSaveSection->data, chunks[id].size); - if (gFastSaveSection->signature == FILE_SIGNATURE - && gFastSaveSection->checksum == checksum) - { - u16 j; - for (j = 0; j < chunks[id].size; j++) - chunks[id].data[j] = gFastSaveSection->data[j]; - } - } - - return 1; -} - -u8 GetSaveValidStatus(const struct SaveBlockChunk *chunks) -{ - u16 sector; - bool8 signatureValid; - u16 checksum; - u32 slot1saveCounter = 0; - u32 slot2saveCounter = 0; - u8 slot1Status; - u8 slot2Status; - u32 validSectors; - const u32 ALL_SECTORS = (1 << NUM_SECTORS_PER_SAVE_SLOT) - 1; // bitmask of all saveblock sectors - - // check save slot 1. - validSectors = 0; - signatureValid = FALSE; - for (sector = 0; sector < NUM_SECTORS_PER_SAVE_SLOT; sector++) - { - DoReadFlashWholeSection(sector, gFastSaveSection); - if (gFastSaveSection->signature == FILE_SIGNATURE) - { - signatureValid = TRUE; - checksum = CalculateChecksum(gFastSaveSection->data, chunks[gFastSaveSection->id].size); - if (gFastSaveSection->checksum == checksum) - { - slot1saveCounter = gFastSaveSection->counter; - validSectors |= 1 << gFastSaveSection->id; - } - } - } - - if (signatureValid) - { - if (validSectors == ALL_SECTORS) - slot1Status = SAVE_STATUS_OK; - else - slot1Status = SAVE_STATUS_ERROR; - } - else - { - slot1Status = SAVE_STATUS_EMPTY; - } - - // check save slot 2. - validSectors = 0; - signatureValid = FALSE; - for (sector = 0; sector < NUM_SECTORS_PER_SAVE_SLOT; sector++) - { - DoReadFlashWholeSection(NUM_SECTORS_PER_SAVE_SLOT + sector, gFastSaveSection); - if (gFastSaveSection->signature == FILE_SIGNATURE) - { - signatureValid = TRUE; - checksum = CalculateChecksum(gFastSaveSection->data, chunks[gFastSaveSection->id].size); - if (gFastSaveSection->checksum == checksum) - { - slot2saveCounter = gFastSaveSection->counter; - validSectors |= 1 << gFastSaveSection->id; - } - } - } - - if (signatureValid) - { - if (validSectors == ALL_SECTORS) - slot2Status = SAVE_STATUS_OK; - else - slot2Status = SAVE_STATUS_ERROR; - } - else - { - slot2Status = SAVE_STATUS_EMPTY; - } - - if (slot1Status == SAVE_STATUS_OK && slot2Status == SAVE_STATUS_OK) - { - // Choose counter of the most recent save file - if ((slot1saveCounter == -1 && slot2saveCounter == 0) || (slot1saveCounter == 0 && slot2saveCounter == -1)) - { - if ((unsigned)(slot1saveCounter + 1) < (unsigned)(slot2saveCounter + 1)) - gSaveCounter = slot2saveCounter; - else - gSaveCounter = slot1saveCounter; - } - else - { - if (slot1saveCounter < slot2saveCounter) - gSaveCounter = slot2saveCounter; - else - gSaveCounter = slot1saveCounter; - } - return SAVE_STATUS_OK; - } - - if (slot1Status == SAVE_STATUS_OK) - { - gSaveCounter = slot1saveCounter; - if (slot2Status == SAVE_STATUS_ERROR) - return SAVE_STATUS_ERROR; - else - return SAVE_STATUS_OK; - } - - if (slot2Status == SAVE_STATUS_OK) - { - gSaveCounter = slot2saveCounter; - if (slot1Status == SAVE_STATUS_ERROR) - return SAVE_STATUS_ERROR; - else - return SAVE_STATUS_OK; - } - - if (slot1Status == SAVE_STATUS_EMPTY && slot2Status == SAVE_STATUS_EMPTY) - { - gSaveCounter = 0; - gFirstSaveSector = 0; - return SAVE_STATUS_EMPTY; - } - - gSaveCounter = 0; - gFirstSaveSector = 0; - return 2; -} - -u8 ReadSomeUnknownSectorAndVerify(u8 sector, u8 *data, u16 size) -{ - u16 i; - struct SaveSector *section = eSaveSection; - - DoReadFlashWholeSection(sector, section); - if (section->signature == FILE_SIGNATURE) - { - u16 checksum = CalculateChecksum(section->data, size); - if (section->id == checksum) - { - for (i = 0; i < size; i++) - data[i] = section->data[i]; - return SAVE_STATUS_OK; - } - else - { - return 2; - } - } - else - { - return SAVE_STATUS_EMPTY; - } -} - -u32 DoReadFlashWholeSection(u8 sector, struct SaveSector *section) -{ - ReadFlash(sector, 0, section->data, sizeof(struct SaveSector)); - return 1; -} - -u16 CalculateChecksum(const void *data, u16 size) -{ - u16 i; - u32 checksum = 0; - - for (i = 0; i < (size / 4); i++) - { - checksum += *((u32 *)data); - data += sizeof(u32); - } - - return ((checksum >> 16) + checksum); -} - -void nullsub_0201182C() -{ -} - -void nullsub_02011830() -{ -} - -void nullsub_02011834() -{ -} - -u16 * get_var_addr(u16 a0) -{ - if (a0 < VARS_START) - return NULL; - if (a0 < VAR_SPECIAL_0) - return &gSaveBlock1.vars[a0 - VARS_START]; - return NULL; -} - -bool32 flash_maincb_check_need_reset_pacifidlog_tm(void) -{ - u8 sp0; - u16 * data = get_var_addr(VAR_PACIFIDLOG_TM_RECEIVED_DAY); - rtc_maincb_is_time_since_last_berry_update_positive(&sp0); - if (*data <= gRtcUTCTime.days) - return TRUE; - else - return FALSE; -} - -bool32 flash_maincb_reset_pacifidlog_tm(void) -{ - u8 sp0; - if (flash_maincb_check_need_reset_pacifidlog_tm() == TRUE) - return TRUE; - rtc_maincb_is_time_since_last_berry_update_positive(&sp0); - if (gRtcUTCTime.days < 0) - return FALSE; - *get_var_addr(VAR_PACIFIDLOG_TM_RECEIVED_DAY) = 1; - if (flash_write_save_block_chunks_check_damage(0) != TRUE) - return FALSE; - return TRUE; -} diff --git a/berry_fix/payload/src/main.c b/berry_fix/payload/src/main.c deleted file mode 100644 index 325d3830eb..0000000000 --- a/berry_fix/payload/src/main.c +++ /dev/null @@ -1,289 +0,0 @@ -#include "gba/gba.h" -#include "global.h" -#include "main.h" -#include "rtc.h" -#include "flash.h" - -static s32 gInitialWaitTimer; -IntrFunc gIntrTable[16]; -u16 gHeldKeys; -u16 gNewKeys; -u8 gIntrVector[0x100]; -u32 gUpdateSuccessful; -u32 gUnknown_3001194; -u32 gUnknown_30011A0[0x19]; -u32 gMainCallbackState; -u32 gGameVersion; - -EWRAM_DATA u8 gSharedMem[0x8000] = {}; - -void IntrMain(void); -void ReadKeys(void); -void dummy_intr_0(void); -void dummy_intr_1(void); -void main_callback(u32 *, void *, void *); - - -const char gBerryFixGameCode[] = "AGBJ"; -const IntrFunc gIntrFuncPointers[] = { - dummy_intr_0, - dummy_intr_1, - dummy_intr_0, - dummy_intr_0, - dummy_intr_0, - dummy_intr_0, - dummy_intr_0, - dummy_intr_0, - dummy_intr_0, - dummy_intr_0, - NULL, - NULL, - NULL -}; -const char gVersionData[][2] = { - {'J', 1}, - {'E', 2}, - {'D', 1}, - {'F', 1}, - {'I', 1}, - {'S', 1} -}; -const char gRubyTitleAndCode[] = "POKEMON RUBYAXV"; -const char gSapphireTitleAndCode[] = "POKEMON SAPPAXP"; -const u16 sDebugPals[20] = { - RGB(00, 00, 00), - RGB(31, 00, 00), - RGB(00, 31, 00), - RGB(00, 00, 31) -}; -const u16 sDebugDigitsGfx[] = INCBIN_U16("graphics/debug_digits.4bpp"); - -void AgbMain(void) -{ - RegisterRamReset(0x1E); - DmaCopy32(3, gIntrFuncPointers, gIntrTable, sizeof gIntrFuncPointers); - DmaCopy32(3, IntrMain, gIntrVector, sizeof(gIntrVector)); - INTR_VECTOR = gIntrVector; - REG_IE = INTR_FLAG_VBLANK; - if (*RomHeaderMagic == 0x96 && *(u32 *)RomHeaderGameCode == *(u32 *)gBerryFixGameCode) - REG_IE |= INTR_FLAG_GAMEPAK; - REG_DISPSTAT = DISPSTAT_VBLANK_INTR; - REG_IME = INTR_FLAG_VBLANK; - msg_load_gfx(); - gMainCallbackState = MAINCB_INIT; - gUnknown_3001194 = 0; - for (;;) - { - VBlankIntrWait(); - ReadKeys(); - main_callback(&gMainCallbackState, gUnknown_30011A0, gSharedMem); - } -} - -void dummy_intr_1(void) -{} - -void dummy_intr_0(void) -{} - -void ReadKeys(void) -{ - u16 keyInput = REG_KEYINPUT ^ KEYS_MASK; - gNewKeys = keyInput & ~gHeldKeys; - gHeldKeys = keyInput; -} - -void fill_palette(const u8 * src, u16 * dest, u8 value) -{ - s32 i; - for (i = 0; src[i] != 0; i++) - dest[i] = src[i] | value << 12; -} - -bool32 berry_fix_memcmp(const char * src1, const char * src2, size_t size) -{ - s32 i; - for (i = 0; i < size; i++) - { - if (src1[i] != src2[i]) - return FALSE; - } - return TRUE; -} - -s32 validate_rom_header_internal(void) -{ - char languageCode = *(RomHeaderGameCode + 3); - s32 softwareVersion = *RomHeaderSoftwareVersion; - s32 shouldUpdate = -1; - s32 i; - for (i = 0; i < ARRAY_COUNT(gVersionData); i++) - { - if (languageCode == gVersionData[i][0]) - { - if (softwareVersion >= gVersionData[i][1]) - { - shouldUpdate = 0; - } - else - { - shouldUpdate = 1; - } - break; - } - } - if (shouldUpdate != -1) - { - if (berry_fix_memcmp(RomHeaderGameTitle, gRubyTitleAndCode, 15) == TRUE) - { - if (shouldUpdate == 0) - return RUBY_NONEED; - else - { - gGameVersion = VERSION_RUBY; - return RUBY_UPDATABLE; - } - } - else if (berry_fix_memcmp(RomHeaderGameTitle, gSapphireTitleAndCode, 15) == TRUE) - { - if (shouldUpdate == 0) - return SAPPHIRE_NONEED; - else - { - gGameVersion = VERSION_SAPPHIRE; - return SAPPHIRE_UPDATABLE; - } - } - } - return INVALID; -} - -s32 validate_rom_header(void) -{ - if (*RomHeaderMakerCode == '0' && *(RomHeaderMakerCode + 1) == '1' && *RomHeaderMagic == 0x96) - return validate_rom_header_internal(); - else - return INVALID; -} - -void main_callback(u32 * state, void * unused1, void * unused2) -{ - u8 year; - switch (*state) - { - case MAINCB_INIT: - msg_display(MSGBOX_WILL_NOW_UPDATE); - if (++gInitialWaitTimer >= 180) - { - gInitialWaitTimer = 0; - gUpdateSuccessful = 0; - switch (validate_rom_header()) - { - case SAPPHIRE_UPDATABLE: - case RUBY_UPDATABLE: // Should Update Ruby - ++(*state); // MAINCB_CHECK_RTC - break; - case INVALID: // Invalid header - *state = MAINCB_ERROR; - break; - case SAPPHIRE_NONEED: // Should not update Sapphire - case RUBY_NONEED: // Should not update Ruby - *state = MAINCB_NO_NEED_TO_FIX; - break; - } - } - break; - case MAINCB_CHECK_RTC: - if (!rtc_maincb_is_rtc_working()) - *state = MAINCB_ERROR; - else - ++(*state); // MAINCB_CHECK_FLASH - break; - case MAINCB_CHECK_FLASH: - if (flash_maincb_ident_is_valid() == TRUE) - ++(*state); // MAINCB_READ_SAVE - else - *state = MAINCB_ERROR; - break; - case MAINCB_READ_SAVE: - if (flash_maincb_read_save(0) == SAVE_STATUS_OK) - ++(*state); // MAINCB_CHECK_TIME - else - *state = MAINCB_ERROR; - break; - case MAINCB_CHECK_TIME: - if (rtc_maincb_is_time_since_last_berry_update_positive(&year) == TRUE) - { - if (year == 0) - ++(*state); // MAINCB_FIX_DATE - else - *state = MAINCB_CHECK_PACIFIDLOG_TM; - } - else - { - if (year != 1) - *state = MAINCB_YEAR_MAKES_NO_SENSE; - else - ++(*state); // MAINCB_FIX_DATE - } - break; - case MAINCB_FIX_DATE: - rtc_maincb_fix_date(); - gUpdateSuccessful |= 1; - *state = MAINCB_CHECK_PACIFIDLOG_TM; - break; - case MAINCB_CHECK_PACIFIDLOG_TM: - if (flash_maincb_check_need_reset_pacifidlog_tm() == TRUE) - *state = MAINCB_FINISHED; - else - *state = MAINCB_FIX_PACIFIDLOG_TM; - break; - case MAINCB_FIX_PACIFIDLOG_TM: - msg_display(MSGBOX_UPDATING); - if (flash_maincb_reset_pacifidlog_tm() == TRUE) - { - gUpdateSuccessful |= 1; - *state = MAINCB_FINISHED; - } - else - *state = MAINCB_ERROR; - break; - case MAINCB_FINISHED: - if (gUpdateSuccessful == 0) - *state = MAINCB_NO_NEED_TO_FIX; - else - msg_display(MSGBOX_HAS_BEEN_UPDATED); - break; - case MAINCB_NO_NEED_TO_FIX: - msg_display(MSGBOX_NO_NEED_TO_UPDATE); - break; - case MAINCB_YEAR_MAKES_NO_SENSE: - msg_display(MSGBOX_UNABLE_TO_UPDATE); - break; - case MAINCB_ERROR: - msg_display(MSGBOX_UNABLE_TO_UPDATE); - break; - } -} - -void DBG_LoadDigitsPal(void) -{ - const u16 * src; - s32 i; - register vu16 * dest asm("r3") = (vu16 *)BG_PLTT + 1; - DmaFill16(3, RGB(31, 31, 31), (vu16 *)BG_PLTT, BG_PLTT_SIZE); - src = sDebugPals; - for (i = 0; i < 4; i++) - { - *dest = *src; - dest += 16; - src++; - } -} - -void DBG_LoadDigits(void) -{ - DmaFill16(3, 0x1111, (void *)VRAM + 0x8420, 0x1800); - DmaCopy32(3, sDebugDigitsGfx, (void *)VRAM + 0x8600, 0x200); - DBG_LoadDigitsPal(); -} diff --git a/berry_fix/payload/src/rtc.c b/berry_fix/payload/src/rtc.c deleted file mode 100644 index e73f522aad..0000000000 --- a/berry_fix/payload/src/rtc.c +++ /dev/null @@ -1,346 +0,0 @@ -#include "gba/gba.h" -#include "siirtc.h" -#include "global.h" -#include "main.h" - -struct Time gTimeSinceBerryUpdate; -struct Time gRtcUTCTime; - -static u16 sRtcProbeStatus; -static struct SiiRtcInfo sRtcInfoBuffer; -static u8 sRtcProbeCode; -static u16 sImeBak; -static struct SiiRtcInfo sRtcInfoWork; - -const struct SiiRtcInfo sDefaultRTC = { - .year = 0, // 2000 - .month = 1, // January - .day = 1, // 01 - .dayOfWeek = 0, - .hour = 0, - .minute = 0, - .second = 0, - .status = 0, - .alarmHour = 0, - .alarmMinute = 0 -}; -const s32 sDaysPerMonth[] = { - 31, - 28, - 31, - 30, - 31, - 30, - 31, - 31, - 30, - 31, - 30, - 31 -}; - -void rtc_get_status_and_datetime(struct SiiRtcInfo *); -u16 rtc_validate_datetime(struct SiiRtcInfo *); - - -void rtc_intr_disable(void) -{ - sImeBak = REG_IME; - REG_IME = 0; -} - -void rtc_intr_enable(void) -{ - REG_IME = sImeBak; -} - -s32 bcd_to_hex(u8 a0) -{ - if (a0 >= 0xa0 || (a0 & 0xF) >= 10) - return 0xFF; - return ((a0 >> 4) & 0xF) * 10 + (a0 & 0xF); -} - -bool8 is_leap_year(u8 year) -{ - if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) - return TRUE; - return FALSE; -} - -u16 rtc_count_days_parameterized(u8 year, u8 month, u8 day) -{ - u16 numDays = 0; - s32 i; - for (i = year - 1; i > 0; i--) - { - numDays += 365; - if (is_leap_year(i) == TRUE) - numDays++; - } - for (i = 0; i < month - 1; i++) - numDays += sDaysPerMonth[i]; - if (month > MONTH_FEB && is_leap_year(year) == TRUE) - numDays++; - numDays += day; - return numDays; -} - -u16 rtc_count_days_from_info(struct SiiRtcInfo *info) -{ - return rtc_count_days_parameterized(bcd_to_hex(info->year), bcd_to_hex(info->month), bcd_to_hex(info->day)); -} - -static void rtc_probe_status(void) -{ - sRtcProbeStatus = 0; - rtc_intr_disable(); - SiiRtcUnprotect(); - sRtcProbeCode = SiiRtcProbe(); - rtc_intr_enable(); - if ((sRtcProbeCode & 0xF) != 1) - sRtcProbeStatus = 1; - else - { - if (sRtcProbeCode & 0xF0) - sRtcProbeStatus = 2; - else - sRtcProbeStatus = 0; - rtc_get_status_and_datetime(&sRtcInfoBuffer); - sRtcProbeStatus = rtc_validate_datetime(&sRtcInfoBuffer); - } -} - -u16 rtc_get_probe_status(void) -{ - return sRtcProbeStatus; -} - -void sub_020106EC(struct SiiRtcInfo * info) -{ - if (sRtcProbeStatus & 0xFF0) - *info = sDefaultRTC; - else - rtc_get_status_and_datetime(info); -} - -void rtc_get_datetime(struct SiiRtcInfo * info) -{ - rtc_intr_disable(); - SiiRtcGetDateTime(info); - rtc_intr_enable(); -} - -void rtc_get_status(struct SiiRtcInfo * info) -{ - rtc_intr_disable(); - SiiRtcGetStatus(info); - rtc_intr_enable(); -} - -void rtc_get_status_and_datetime(struct SiiRtcInfo * info) -{ - rtc_get_status(info); - rtc_get_datetime(info); -} - -u16 rtc_validate_datetime(struct SiiRtcInfo * info) -{ - s32 year, month, day; - u16 r4 = (info->status & SIIRTCINFO_POWER) ? 0x20 : 0; - if (!(info->status & SIIRTCINFO_24HOUR)) - r4 |= 0x10; - year = bcd_to_hex(info->year); - if (year == 0xFF) - r4 |= 0x40; - month = bcd_to_hex(info->month); - if (month == 0xFF || month == 0 || month > 12) - r4 |= 0x80; - day = bcd_to_hex(info->day); - if (day == 0xFF) - r4 |= 0x100; - if (month == MONTH_FEB) - { - if (day > is_leap_year(year) + sDaysPerMonth[1]) - r4 |= 0x100; - } - else - { - if (day > sDaysPerMonth[month - 1]) - r4 |= 0x100; - } - day = bcd_to_hex(info->hour); - if (day > 24) - r4 |= 0x200; - day = bcd_to_hex(info->minute); - if (day > 60) - r4 |= 0x400; - day = bcd_to_hex(info->second); - if (day > 60) - r4 |= 0x800; - return r4; -} - -void rtc_reset(void) -{ - rtc_intr_disable(); - SiiRtcReset(); - rtc_intr_enable(); -} - -void rtc_sub_time_from_datetime(struct SiiRtcInfo * datetime, struct Time * dest, struct Time * timediff) -{ - u16 r4 = rtc_count_days_from_info(datetime); - dest->seconds = bcd_to_hex(datetime->second) - timediff->seconds; - dest->minutes = bcd_to_hex(datetime->minute) - timediff->minutes; - dest->hours = bcd_to_hex(datetime->hour) - timediff->hours; - dest->days = r4 - timediff->days; - if (dest->seconds < 0) - { - dest->seconds += 60; - dest->minutes--; - } - if (dest->minutes < 0) - { - dest->minutes += 60; - dest->hours--; - } - if (dest->hours < 0) - { - dest->hours += 24; - dest->days--; - } -} - -void rtc_sub_time_from_time(struct Time * dest, struct Time * diff, struct Time * src) -{ - dest->seconds = src->seconds - diff->seconds; - dest->minutes = src->minutes - diff->minutes; - dest->hours = src->hours - diff->hours; - dest->days = src->days - diff->days; - if (dest->seconds < 0) - { - dest->seconds += 60; - dest->minutes--; - } - if (dest->minutes < 0) - { - dest->minutes += 60; - dest->hours--; - } - if (dest->hours < 0) - { - dest->hours += 24; - dest->days--; - } -} - -bool32 rtc_maincb_is_rtc_working(void) -{ - rtc_probe_status(); - if (rtc_get_probe_status() & 0xFF0) - return FALSE; - return TRUE; -} - -void rtc_set_datetime(struct SiiRtcInfo * info) -{ - vu16 imeBak = REG_IME; - REG_IME = 0; - SiiRtcSetDateTime(info); - REG_IME = imeBak; -} - -bool32 rtc_maincb_is_time_since_last_berry_update_positive(u8 * a0) -{ - rtc_get_status_and_datetime(&sRtcInfoWork); - *a0 = bcd_to_hex(sRtcInfoWork.year); - rtc_sub_time_from_datetime(&sRtcInfoWork, &gRtcUTCTime, LocalTimeOffset); - rtc_sub_time_from_time(&gTimeSinceBerryUpdate, LastBerryTreeUpdate, &gRtcUTCTime); - if (gTimeSinceBerryUpdate.days * 1440 + gTimeSinceBerryUpdate.hours * 60 + gTimeSinceBerryUpdate.minutes >= 0) - return TRUE; - return FALSE; -} - -u32 hex_to_bcd(u8 a0) -{ - u32 r4; - if (a0 > 99) - return 0xFF; - r4 = Div(a0, 10) << 4; - r4 |= Mod(a0, 10); - return r4; -} - -void sii_rtc_inc(u8 * a0) -{ - *a0 = hex_to_bcd(bcd_to_hex(*a0) + 1); -} - -void sii_rtc_inc_month(struct SiiRtcInfo * a0) -{ - sii_rtc_inc(&a0->month); - if (bcd_to_hex(a0->month) > 12) - { - sii_rtc_inc(&a0->year); - a0->month = MONTH_JAN; - } -} - -void sii_rtc_inc_day(struct SiiRtcInfo * a0) -{ - sii_rtc_inc(&a0->day); - if (bcd_to_hex(a0->day) > sDaysPerMonth[bcd_to_hex(a0->month) - 1]) - { - if (!is_leap_year(bcd_to_hex(a0->year)) || bcd_to_hex(a0->month) != MONTH_FEB || bcd_to_hex(a0->day) != 29) - { - a0->day = 1; - sii_rtc_inc_month(a0); - } - } -} - -bool32 rtc_is_past_feb_28_2000(struct SiiRtcInfo * a0) -{ - if (bcd_to_hex(a0->year) == 0) - { - if (bcd_to_hex(a0->month) == MONTH_JAN) - return FALSE; - if (bcd_to_hex(a0->month) > MONTH_FEB) - return TRUE; - if (bcd_to_hex(a0->day) == 29) - return TRUE; - return FALSE; - } - if (bcd_to_hex(a0->year) == 1) - return TRUE; - return FALSE; -} - -void rtc_maincb_fix_date(void) -{ - rtc_get_status_and_datetime(&sRtcInfoWork); - if (bcd_to_hex(sRtcInfoWork.year) == 0 || bcd_to_hex(sRtcInfoWork.year) == 1) - { - if (bcd_to_hex(sRtcInfoWork.year) == 1) - { - sRtcInfoWork.year = 2; - sRtcInfoWork.month = MONTH_JAN; - sRtcInfoWork.day = 2; - rtc_set_datetime(&sRtcInfoWork); - } - else - { - if (rtc_is_past_feb_28_2000(&sRtcInfoWork) == TRUE) - { - sii_rtc_inc_day(&sRtcInfoWork); - sii_rtc_inc(&sRtcInfoWork.year); - } - else - { - sii_rtc_inc(&sRtcInfoWork.year); - } - rtc_set_datetime(&sRtcInfoWork); - } - } -} diff --git a/berry_fix/payload/src/siirtc.c b/berry_fix/payload/src/siirtc.c deleted file mode 100644 index 965a068f13..0000000000 --- a/berry_fix/payload/src/siirtc.c +++ /dev/null @@ -1,432 +0,0 @@ -// Ruby/Sapphire/Emerald cartridges contain a Seiko Instruments Inc. (SII) -// S-3511A real-time clock (RTC). This library ("SIIRTC_V001") is for -// communicating with the RTC. - -#include "gba/gba.h" -#include "siirtc.h" - -#define STATUS_INTFE 0x02 // frequency interrupt enable -#define STATUS_INTME 0x08 // per-minute interrupt enable -#define STATUS_INTAE 0x20 // alarm interrupt enable -#define STATUS_24HOUR 0x40 // 0: 12-hour mode, 1: 24-hour mode -#define STATUS_POWER 0x80 // power on or power failure occurred - -#define TEST_MODE 0x80 // flag in the "second" byte - -#define ALARM_AM 0x00 -#define ALARM_PM 0x80 - -#define OFFSET_YEAR offsetof(struct SiiRtcInfo, year) -#define OFFSET_MONTH offsetof(struct SiiRtcInfo, month) -#define OFFSET_DAY offsetof(struct SiiRtcInfo, day) -#define OFFSET_DAY_OF_WEEK offsetof(struct SiiRtcInfo, dayOfWeek) -#define OFFSET_HOUR offsetof(struct SiiRtcInfo, hour) -#define OFFSET_MINUTE offsetof(struct SiiRtcInfo, minute) -#define OFFSET_SECOND offsetof(struct SiiRtcInfo, second) -#define OFFSET_STATUS offsetof(struct SiiRtcInfo, status) -#define OFFSET_ALARM_HOUR offsetof(struct SiiRtcInfo, alarmHour) -#define OFFSET_ALARM_MINUTE offsetof(struct SiiRtcInfo, alarmMinute) - -#define INFO_BUF(info, index) (*((u8 *)(info) + (index))) - -#define DATETIME_BUF(info, index) INFO_BUF(info, OFFSET_YEAR + index) -#define DATETIME_BUF_LEN (OFFSET_SECOND - OFFSET_YEAR + 1) - -#define TIME_BUF(info, index) INFO_BUF(info, OFFSET_HOUR + index) -#define TIME_BUF_LEN (OFFSET_SECOND - OFFSET_HOUR + 1) - -#define WR 0 // command for writing data -#define RD 1 // command for reading data - -#define CMD(n) (0x60 | (n << 1)) - -#define CMD_RESET CMD(0) -#define CMD_STATUS CMD(1) -#define CMD_DATETIME CMD(2) -#define CMD_TIME CMD(3) -#define CMD_ALARM CMD(4) - -#define GPIO_PORT_DATA (*(vu16 *)0x80000C4) -#define GPIO_PORT_DIRECTION (*(vu16 *)0x80000C6) -#define GPIO_PORT_READ_ENABLE (*(vu16 *)0x80000C8) - -extern vu16 GPIOPortDirection; - -static u16 sDummy; // unused variable -static bool8 sLocked; - -static int WriteCommand(u8 value); -static int WriteData(u8 value); -static u8 ReadData(); -static void EnableGpioPortRead(); -static void DisableGpioPortRead(); - -static const char AgbLibRtcVersion[] = "SIIRTC_V001"; - -void SiiRtcUnprotect() -{ - EnableGpioPortRead(); - sLocked = FALSE; -} - -void SiiRtcProtect() -{ - DisableGpioPortRead(); - sLocked = TRUE; -} - -u8 SiiRtcProbe() -{ - u8 errorCode; - struct SiiRtcInfo rtc; - - if (!SiiRtcGetStatus(&rtc)) - return 0; - - errorCode = 0; - - if ((rtc.status & (SIIRTCINFO_POWER | SIIRTCINFO_24HOUR)) == SIIRTCINFO_POWER - || (rtc.status & (SIIRTCINFO_POWER | SIIRTCINFO_24HOUR)) == 0) - { - // The RTC is in 12-hour mode. Reset it and switch to 24-hour mode. - - // Note that the conditions are redundant and equivalent to simply - // "(rtc.status & SIIRTCINFO_24HOUR) == 0". It's possible that this - // was also intended to handle resetting the clock after power failure - // but a mistake was made. - - if (!SiiRtcReset()) - return 0; - - errorCode++; - } - - SiiRtcGetTime(&rtc); - - if (rtc.second & TEST_MODE) - { - // The RTC is in test mode. Reset it to leave test mode. - - if (!SiiRtcReset()) - return (errorCode << 4) & 0xF0; - - errorCode++; - } - - return (errorCode << 4) | 1; -} - -bool8 SiiRtcReset() -{ - u8 result; - struct SiiRtcInfo rtc; - - if (sLocked == TRUE) - return FALSE; - - sLocked = TRUE; - - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 5; - - GPIO_PORT_DIRECTION = 7; - - WriteCommand(CMD_RESET | WR); - - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 1; - - sLocked = FALSE; - - rtc.status = SIIRTCINFO_24HOUR; - - result = SiiRtcSetStatus(&rtc); - - return result; -} - -bool8 SiiRtcGetStatus(struct SiiRtcInfo *rtc) -{ - u8 statusData; - - if (sLocked == TRUE) - return FALSE; - - sLocked = TRUE; - - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 5; - - GPIO_PORT_DIRECTION = 7; - - WriteCommand(CMD_STATUS | RD); - - GPIO_PORT_DIRECTION = 5; - - statusData = ReadData(); - - rtc->status = (statusData & (STATUS_POWER | STATUS_24HOUR)) - | ((statusData & STATUS_INTAE) >> 3) - | ((statusData & STATUS_INTME) >> 2) - | ((statusData & STATUS_INTFE) >> 1); - - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 1; - - sLocked = FALSE; - - return TRUE; -} - -bool8 SiiRtcSetStatus(struct SiiRtcInfo *rtc) -{ - u8 statusData; - - if (sLocked == TRUE) - return FALSE; - - sLocked = TRUE; - - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 5; - - statusData = STATUS_24HOUR - | ((rtc->status & SIIRTCINFO_INTAE) << 3) - | ((rtc->status & SIIRTCINFO_INTME) << 2) - | ((rtc->status & SIIRTCINFO_INTFE) << 1); - - GPIO_PORT_DIRECTION = 7; - - WriteCommand(CMD_STATUS | WR); - - WriteData(statusData); - - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 1; - - sLocked = FALSE; - - return TRUE; -} - -bool8 SiiRtcGetDateTime(struct SiiRtcInfo *rtc) -{ - u8 i; - - if (sLocked == TRUE) - return FALSE; - - sLocked = TRUE; - - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 5; - - GPIO_PORT_DIRECTION = 7; - - WriteCommand(CMD_DATETIME | RD); - - GPIO_PORT_DIRECTION = 5; - - for (i = 0; i < DATETIME_BUF_LEN; i++) - DATETIME_BUF(rtc, i) = ReadData(); - - INFO_BUF(rtc, OFFSET_HOUR) &= 0x7F; - - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 1; - - sLocked = FALSE; - - return TRUE; -} - -bool8 SiiRtcSetDateTime(struct SiiRtcInfo *rtc) -{ - u8 i; - - if (sLocked == TRUE) - return FALSE; - - sLocked = TRUE; - - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 5; - - GPIO_PORT_DIRECTION = 7; - - WriteCommand(CMD_DATETIME | WR); - - for (i = 0; i < DATETIME_BUF_LEN; i++) - WriteData(DATETIME_BUF(rtc, i)); - - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 1; - - sLocked = FALSE; - - return TRUE; -} - -bool8 SiiRtcGetTime(struct SiiRtcInfo *rtc) -{ - u8 i; - - if (sLocked == TRUE) - return FALSE; - - sLocked = TRUE; - - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 5; - - GPIO_PORT_DIRECTION = 7; - - WriteCommand(CMD_TIME | RD); - - GPIO_PORT_DIRECTION = 5; - - for (i = 0; i < TIME_BUF_LEN; i++) - TIME_BUF(rtc, i) = ReadData(); - - INFO_BUF(rtc, OFFSET_HOUR) &= 0x7F; - - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 1; - - sLocked = FALSE; - - return TRUE; -} - -bool8 SiiRtcSetTime(struct SiiRtcInfo *rtc) -{ - u8 i; - - if (sLocked == TRUE) - return FALSE; - - sLocked = TRUE; - - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 5; - - GPIO_PORT_DIRECTION = 7; - - WriteCommand(CMD_TIME | WR); - - for (i = 0; i < TIME_BUF_LEN; i++) - WriteData(TIME_BUF(rtc, i)); - - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 1; - - sLocked = FALSE; - - return TRUE; -} - -bool8 SiiRtcSetAlarm(struct SiiRtcInfo *rtc) -{ - u8 i; - u8 alarmData[2]; - - if (sLocked == TRUE) - return FALSE; - - sLocked = TRUE; - - // Decode BCD. - alarmData[0] = (rtc->alarmHour & 0xF) + 10 * ((rtc->alarmHour >> 4) & 0xF); - - // The AM/PM flag must be set correctly even in 24-hour mode. - - if (alarmData[0] < 12) - alarmData[0] = rtc->alarmHour | ALARM_AM; - else - alarmData[0] = rtc->alarmHour | ALARM_PM; - - alarmData[1] = rtc->alarmMinute; - - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 5; - - GPIOPortDirection = 7; // Why is this the only instance that uses a symbol? - - WriteCommand(CMD_ALARM | WR); - - for (i = 0; i < 2; i++) - WriteData(alarmData[i]); - - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 1; - - sLocked = FALSE; - - return TRUE; -} - -static int WriteCommand(u8 value) -{ - u8 i; - u8 temp; - - for (i = 0; i < 8; i++) - { - temp = ((value >> (7 - i)) & 1); - GPIO_PORT_DATA = (temp << 1) | 4; - GPIO_PORT_DATA = (temp << 1) | 4; - GPIO_PORT_DATA = (temp << 1) | 4; - GPIO_PORT_DATA = (temp << 1) | 5; - } - - // control reaches end of non-void function -} - -static int WriteData(u8 value) -{ - u8 i; - u8 temp; - - for (i = 0; i < 8; i++) - { - temp = ((value >> i) & 1); - GPIO_PORT_DATA = (temp << 1) | 4; - GPIO_PORT_DATA = (temp << 1) | 4; - GPIO_PORT_DATA = (temp << 1) | 4; - GPIO_PORT_DATA = (temp << 1) | 5; - } - - // control reaches end of non-void function -} - -static u8 ReadData() -{ - u8 i; - u8 temp; - u8 value; - - for (i = 0; i < 8; i++) - { - GPIO_PORT_DATA = 4; - GPIO_PORT_DATA = 4; - GPIO_PORT_DATA = 4; - GPIO_PORT_DATA = 4; - GPIO_PORT_DATA = 4; - GPIO_PORT_DATA = 5; - - temp = ((GPIO_PORT_DATA & 2) >> 1); - value = (value >> 1) | (temp << 7); // UB: accessing uninitialized var - } - - return value; -} - -static void EnableGpioPortRead() -{ - GPIO_PORT_READ_ENABLE = 1; -} - -static void DisableGpioPortRead() -{ - GPIO_PORT_READ_ENABLE = 0; -} diff --git a/berry_fix/payload/sym_bss.txt b/berry_fix/payload/sym_bss.txt deleted file mode 100644 index 3b1c62ae96..0000000000 --- a/berry_fix/payload/sym_bss.txt +++ /dev/null @@ -1,5 +0,0 @@ - .include "src/main.o" - .include "src/rtc.o" - .include "src/flash.o" - .include "src/agb_flash.o" - .include "src/siirtc.o" diff --git a/berry_fix/payload/sym_common.txt b/berry_fix/payload/sym_common.txt deleted file mode 100644 index 28b47f52e3..0000000000 --- a/berry_fix/payload/sym_common.txt +++ /dev/null @@ -1,29 +0,0 @@ - .include "main.o" - .include "rtc.o" - - .align 4 -gFirstSaveSector: @ 0x03001220 - .space 0x4 - -gPrevSaveCounter: @ 0x03001224 - .space 0x4 - -gLastKnownGoodSector: @ 0x03001228 - .space 0x4 - -gDamagedSaveSectors: @ 0x0300122C - .space 0x4 - -gSaveCounter: @ 0x03001230 - .space 0x4 - -gFastSaveSection: @ 0x03001234 - .space 0x4 - -gCurSaveChunk: - .space 0x4 - -gFlashIdentIsValid: @ 0x0300123C - .space 0x4 - - .include "agb_flash.o" diff --git a/berry_fix/payload/sym_ewram.txt b/berry_fix/payload/sym_ewram.txt deleted file mode 100644 index 2c61f5e7e5..0000000000 --- a/berry_fix/payload/sym_ewram.txt +++ /dev/null @@ -1,3 +0,0 @@ - .include "src/main.o" - .include "src/rtc.o" - .include "src/flash.o" diff --git a/berry_fix/rom.sha1 b/berry_fix/rom.sha1 deleted file mode 100644 index 145b083b2c..0000000000 --- a/berry_fix/rom.sha1 +++ /dev/null @@ -1 +0,0 @@ -2eb0a94a913bebfb4cb59ceb57f3f965da55ef6d berry_fix.gba diff --git a/charmap.txt b/charmap.txt index 4c01451c80..2606076784 100644 --- a/charmap.txt +++ b/charmap.txt @@ -84,6 +84,7 @@ SUPER_RE = A0 '“' = B1 '”' = B2 '‘' = B3 +'’' = B4 '\'' = B4 '♂' = B5 '♀' = B6 diff --git a/common_syms/overworld.txt b/common_syms/overworld.txt index e136f54449..dcada0bbef 100644 --- a/common_syms/overworld.txt +++ b/common_syms/overworld.txt @@ -1,6 +1,6 @@ -gBGTilemapBuffers1 -gBGTilemapBuffers2 -gBGTilemapBuffers3 +gOverworldTilemapBuffer_Bg2 +gOverworldTilemapBuffer_Bg1 +gOverworldTilemapBuffer_Bg3 gHeldKeyCodeToSend gFieldCallback gFieldCallback2 diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 7e970ed176..1cfc5230c0 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -763,7 +763,7 @@ Move_TAKE_DOWN: setalpha 12, 8 createvisualtask AnimTask_WindUpLunge, 5, ANIM_ATTACKER, -24, 8, 23, 10, 40, 10 delay 35 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 10, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 10, RGB_BLACK, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, -10, 0, ANIM_TARGET, 0 playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 1 @@ -783,7 +783,7 @@ Move_TAKE_DOWN: Move_DOUBLE_EDGE: loadspritegfx ANIM_TAG_IMPACT playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 4, 2, RGB_WHITE, 10, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 4, 2, RGB_WHITE, 10, RGB_BLACK, 0 waitforvisualfinish delay 10 playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER @@ -951,7 +951,7 @@ Move_MEGA_PUNCH: createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 22, 1 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 0, RGB_WHITE - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 8, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 8, RGB_BLACK, 0 playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET @@ -995,7 +995,7 @@ Move_MEGA_KICK: createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 22, 1 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 0, RGB_WHITE - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 8, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 8, RGB_BLACK, 0 waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -1247,7 +1247,7 @@ Move_REVERSAL: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, RGB_WHITE, 8, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, RGB_WHITE, 8, RGB_BLACK, 0 waitforvisualfinish delay 30 createvisualtask AnimTask_BlendColorCycle, 2, 31, 3, 2, 0, 10, RGB_WHITE @@ -1264,7 +1264,7 @@ Move_REVERSAL: createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 8 playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_WHITE, 8, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_WHITE, 8, RGB_BLACK, 0 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 10, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 8, 1, 0 @@ -1446,13 +1446,13 @@ FuryCutterRight: createsprite gCuttingSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 1 goto FuryCutterContinue FuryCutterMedium: - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB(9, 8, 10), 4, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB(9, 8, 10), 4, RGB_BLACK, 0 goto FuryCutterContinue2 FuryCutterStrong: - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, RGB(9, 8, 10), 4, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, RGB(9, 8, 10), 4, RGB_BLACK, 0 goto FuryCutterContinue2 FuryCutterStrongest: - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, RGB(9, 8, 10), 4, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, RGB(9, 8, 10), 4, RGB_BLACK, 0 goto FuryCutterContinue2 Move_SELF_DESTRUCT: @@ -1623,7 +1623,7 @@ RisingWaterHitEffect: Move_EXPLOSION: loadspritegfx ANIM_TAG_EXPLOSION - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 8, 9, RGB(26, 8, 8), 8, 0, 8 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 8, 9, RGB(26, 8, 8), 8, RGB_BLACK, 8 createvisualtask AnimTask_ShakeMon2, 5, 4, 8, 0, 40, 1 createvisualtask AnimTask_ShakeMon2, 5, 5, 8, 0, 40, 1 createvisualtask AnimTask_ShakeMon2, 5, 6, 8, 0, 40, 1 @@ -1870,7 +1870,7 @@ Move_GUILLOTINE: delay 46 createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 8, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 0 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 8, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 8, RGB_BLACK, 0 playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -2601,9 +2601,9 @@ Move_EARTHQUAKE: createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 10, 50 playsewithpan SE_M_EARTHQUAKE, 0 delay 10 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, 0x7FFF, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 delay 16 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, 0x7FFF, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 end Move_FISSURE: @@ -2614,11 +2614,11 @@ Move_FISSURE: delay 8 call FissureDirtPlumeFar delay 15 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, 0x7FFF, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 delay 15 call FissureDirtPlumeClose delay 15 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, 0x7FFF, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 delay 15 call FissureDirtPlumeFar delay 50 @@ -2846,7 +2846,7 @@ SkullBashAttack: playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish playse SE_BANG - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, 0x7FFF, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 40, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 10, 0, 40, 1 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, ANIM_TARGET, 0 @@ -3025,7 +3025,7 @@ Move_SUPER_FANG: createsprite gSuperFangSpriteTemplate, ANIM_TARGET, 2 playsewithpan SE_M_BITE, SOUND_PAN_TARGET delay 8 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB(31, 2, 2), 14, 0x7FFF, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB(31, 2, 2), 14, RGB_WHITE, 14 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 7, 12, 1 waitforvisualfinish blendoff @@ -3332,9 +3332,9 @@ MagnitudeIntense: createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 0, 50 loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 10 delay 10 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, 0x7FFF, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 delay 16 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, 0x7FFF, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 goto MagnitudeEnd Move_RAPID_SPIN: @@ -3955,7 +3955,7 @@ Move_MIST_BALL: waitforvisualfinish playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 10, 0 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 1, 1, RGB(23, 16, 31), 16, 0x7FFF, 16 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 1, 1, RGB(23, 16, 31), 16, RGB_WHITE, 16 delay 0 playsewithpan SE_M_HAZE, 0 createvisualtask AnimTask_LoadMistTiles, 5 @@ -4223,7 +4223,7 @@ Move_ODOR_SLEUTH: waitforvisualfinish clearmonbg ANIM_TARGET delay 1 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_WHITEALPHA, 16, -1, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_WHITEALPHA, 16, RGB_WHITEALPHA, 0 playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER end @@ -4351,7 +4351,7 @@ Move_AERIAL_ACE: playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER delay 5 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 10, 1 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 10, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 10, RGB_BLACK, 0 playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET @@ -4361,7 +4361,7 @@ Move_AERIAL_ACE: Move_IRON_DEFENSE: loopsewithpan SE_SHINY, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 8, 2, RGB_WHITEALPHA, 14, -1, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 8, 2, RGB_WHITEALPHA, 14, RGB_WHITEALPHA, 0 waitforvisualfinish end @@ -5665,7 +5665,7 @@ Move_SIGNAL_BEAM: call SignalBeamOrbs call SignalBeamOrbs createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 25, 1 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 4, 8, 5, RGB_RED, 8, 961, 8 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 4, 8, 5, RGB_RED, 8, RGB(1, 30, 0), 8 call SignalBeamOrbs call SignalBeamOrbs call SignalBeamOrbs @@ -6060,7 +6060,7 @@ Move_BONE_CLUB: delay 12 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 7, 5, 1, RGB_BLACK, 10, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 7, 5, 1, RGB_BLACK, 10, RGB_BLACK, 0 playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -6124,7 +6124,7 @@ MegahornContinue: createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -16, 4, 1, 4 waitforvisualfinish createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, -4, 1, 12, 1 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 7, 5, 1, RGB_WHITE, 10, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 7, 5, 1, RGB_WHITE, 10, RGB_BLACK, 0 delay 10 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 11 delay 3 @@ -6266,7 +6266,7 @@ Move_CRABHAMMER: createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, ANIM_TARGET, 0 playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB(13, 21, 31), 10, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB(13, 21, 31), 10, RGB_BLACK, 0 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -24, 0, 0, 4 waitforvisualfinish delay 8 @@ -6469,7 +6469,7 @@ Move_CROSS_CHOP: createsprite gCrossChopHandSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1 delay 40 playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_WHITE, 10, 0, 10 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_WHITE, 10, RGB_BLACK, 10 createsprite gCrossImpactSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 20 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 7, 0, 9, 1 waitforvisualfinish @@ -8491,7 +8491,7 @@ Move_BLAZE_KICK: createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 14, 1 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 0, RGB_WHITE - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 8, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 8, RGB_BLACK, 0 call FireSpreadEffect waitforvisualfinish clearmonbg ANIM_TARGET @@ -9558,7 +9558,7 @@ Move_KNOCK_OFF: playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET createsprite gKnockOffStrikeSpriteTemplate, ANIM_TARGET, 2, -16, -16 delay 8 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 5, 1, RGB_WHITE, 10, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 5, 1, RGB_WHITE, 10, RGB_BLACK, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 2 playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -12, 10, 0, 3 @@ -9836,7 +9836,7 @@ Move_WEATHER_BALL: waitforvisualfinish delay 15 playsewithpan SE_M_DETECT, 0 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 5, 1, RGB_WHITE, 10, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 5, 1, RGB_WHITE, 10, RGB_BLACK, 0 waitforvisualfinish createvisualtask AnimTask_GetWeather, 2 delay 1 diff --git a/data/ereader_link_data.s b/data/ereader_link_data.s deleted file mode 100644 index d3269ebfe0..0000000000 --- a/data/ereader_link_data.s +++ /dev/null @@ -1,6 +0,0 @@ - .section .rodata - - .align 2 -gEReaderLinkData_Start:: - .incbin "data/ereader_link_data.bin" -gEReaderLinkData_End:: diff --git a/data/event_scripts.s b/data/event_scripts.s index 26b12b3cf9..80f7897c79 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -59,7 +59,6 @@ .section script_data, "aw", %progbits -@ 81DB67C .include "data/script_cmd_table.inc" gSpecialVars:: @@ -99,7 +98,7 @@ gStdScripts:: .4byte Std_ObtainDecoration @ STD_OBTAIN_DECORATION .4byte Std_RegisteredInMatchCall @ STD_REGISTER_MATCH_CALL .4byte Std_MsgboxGetPoints @ MSGBOX_GETPOINTS - .4byte Std_10 + .4byte Std_MsgboxPokenav @ MSGBOX_POKENAV gStdScripts_End:: .include "data/maps/PetalburgCity/scripts.inc" @@ -585,12 +584,9 @@ EventScript_WhiteOut:: end EventScript_ResetMrBriney:: - compare VAR_BRINEY_LOCATION, 1 - goto_if_eq EventScript_MoveMrBrineyToHouse - compare VAR_BRINEY_LOCATION, 2 - goto_if_eq EventScript_MoveMrBrineyToDewford - compare VAR_BRINEY_LOCATION, 3 - goto_if_eq EventScript_MoveMrBrineyToRoute109 + goto_if_eq VAR_BRINEY_LOCATION, 1, EventScript_MoveMrBrineyToHouse + goto_if_eq VAR_BRINEY_LOCATION, 2, EventScript_MoveMrBrineyToDewford + goto_if_eq VAR_BRINEY_LOCATION, 3, EventScript_MoveMrBrineyToRoute109 end EventScript_MoveMrBrineyToHouse:: @@ -803,10 +799,8 @@ Movement_UnusedBoardFerry: step_end Common_EventScript_FerryDepartIsland:: - compare VAR_FACING, DIR_SOUTH - call_if_eq Ferry_EventScript_DepartIslandSouth - compare VAR_FACING, DIR_WEST - call_if_eq Ferry_EventScript_DepartIslandWest + call_if_eq VAR_FACING, DIR_SOUTH, Ferry_EventScript_DepartIslandSouth + call_if_eq VAR_FACING, DIR_WEST, Ferry_EventScript_DepartIslandWest delay 30 hideobjectat OBJ_EVENT_ID_PLAYER, 0 call Common_EventScript_FerryDepart @@ -822,7 +816,7 @@ Common_EventScript_NameReceivedPartyMon:: return Common_EventScript_PlayerHandedOverTheItem:: - bufferitemname 0, VAR_0x8004 + bufferitemname STR_VAR_1, VAR_0x8004 playfanfare MUS_OBTAIN_TMHM message gText_PlayerHandedOverTheItem waitmessage @@ -1003,7 +997,7 @@ Common_EventScript_LegendaryFlewAway:: fadescreenswapbuffers FADE_TO_BLACK removeobject VAR_LAST_TALKED fadescreenswapbuffers FADE_FROM_BLACK - bufferspeciesname 0, VAR_0x8004 + bufferspeciesname STR_VAR_1, VAR_0x8004 msgbox gText_LegendaryFlewAway, MSGBOX_DEFAULT release end diff --git a/data/map_events.s b/data/map_events.s index dcbb9cfb17..cfa5799d37 100644 --- a/data/map_events.s +++ b/data/map_events.s @@ -1,3 +1,4 @@ +#include "constants/global.h" #include "constants/event_bg.h" #include "constants/event_object_movement.h" #include "constants/event_objects.h" diff --git a/data/maps.s b/data/maps.s index beb28ddec8..9d9ac2101c 100644 --- a/data/maps.s +++ b/data/maps.s @@ -1,3 +1,4 @@ +#include "constants/global.h" #include "constants/layouts.h" #include "constants/map_types.h" #include "constants/maps.h" diff --git a/data/maps/AbandonedShip_CaptainsOffice/scripts.inc b/data/maps/AbandonedShip_CaptainsOffice/scripts.inc index 99dfa7bd80..7c59fec967 100644 --- a/data/maps/AbandonedShip_CaptainsOffice/scripts.inc +++ b/data/maps/AbandonedShip_CaptainsOffice/scripts.inc @@ -5,9 +5,8 @@ AbandonedShip_CaptainsOffice_EventScript_CaptSternAide:: lock faceplayer goto_if_set FLAG_EXCHANGED_SCANNER, AbandonedShip_CaptainsOffice_EventScript_ThisIsSSCactus - checkitem ITEM_SCANNER, 1 - compare VAR_RESULT, TRUE - goto_if_eq AbandonedShip_CaptainsOffice_EventScript_CanYouDeliverScanner + checkitem ITEM_SCANNER + goto_if_eq VAR_RESULT, TRUE, AbandonedShip_CaptainsOffice_EventScript_CanYouDeliverScanner goto_if_set FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_4_SCANNER, AbandonedShip_CaptainsOffice_EventScript_ThisIsSSCactus msgbox AbandonedShip_CaptainsOffice_Text_NoSuccessFindingScanner, MSGBOX_DEFAULT release diff --git a/data/maps/AbandonedShip_Corridors_B1F/scripts.inc b/data/maps/AbandonedShip_Corridors_B1F/scripts.inc index dd70c9dd32..19f103362e 100644 --- a/data/maps/AbandonedShip_Corridors_B1F/scripts.inc +++ b/data/maps/AbandonedShip_Corridors_B1F/scripts.inc @@ -4,7 +4,7 @@ AbandonedShip_Corridors_B1F_MapScripts:: .byte 0 AbandonedShip_Corridors_B1F_OnResume: - setdivewarp MAP_ABANDONED_SHIP_UNDERWATER1, 255, 5, 4 + setdivewarp MAP_ABANDONED_SHIP_UNDERWATER1, 5, 4 end AbandonedShip_Corridors_B1F_OnLoad: @@ -13,11 +13,11 @@ AbandonedShip_Corridors_B1F_OnLoad: end AbandonedShip_Corridors_B1F_EventScript_LockStorageRoom:: - setmetatile 11, 4, METATILE_InsideShip_IntactDoor_Bottom_Locked, 1 + setmetatile 11, 4, METATILE_InsideShip_IntactDoor_Bottom_Locked, TRUE return AbandonedShip_Corridors_B1F_EventScript_UnlockStorageRoom:: - setmetatile 11, 4, METATILE_InsideShip_IntactDoor_Bottom_Unlocked, 1 + setmetatile 11, 4, METATILE_InsideShip_IntactDoor_Bottom_Unlocked, TRUE return AbandonedShip_Corridors_B1F_EventScript_TuberM:: @@ -27,9 +27,8 @@ AbandonedShip_Corridors_B1F_EventScript_TuberM:: AbandonedShip_Corridors_B1F_EventScript_StorageRoomDoor:: lockall goto_if_set FLAG_USED_STORAGE_KEY, AbandonedShip_Corridors_B1F_EventScript_DoorIsUnlocked - checkitem ITEM_STORAGE_KEY, 1 - compare VAR_RESULT, FALSE - goto_if_eq AbandonedShip_Corridors_B1F_EventScript_DoorIsLocked + checkitem ITEM_STORAGE_KEY + goto_if_eq VAR_RESULT, FALSE, AbandonedShip_Corridors_B1F_EventScript_DoorIsLocked msgbox AbandonedShip_Corridors_B1F_Text_InsertedStorageKey, MSGBOX_DEFAULT playse SE_PIN removeitem ITEM_STORAGE_KEY diff --git a/data/maps/AbandonedShip_HiddenFloorCorridors/scripts.inc b/data/maps/AbandonedShip_HiddenFloorCorridors/scripts.inc index 4ec63a7e10..dade6a516e 100644 --- a/data/maps/AbandonedShip_HiddenFloorCorridors/scripts.inc +++ b/data/maps/AbandonedShip_HiddenFloorCorridors/scripts.inc @@ -4,7 +4,7 @@ AbandonedShip_HiddenFloorCorridors_MapScripts:: .byte 0 AbandonedShip_HiddenFloorCorridors_OnResume: - setdivewarp MAP_ABANDONED_SHIP_UNDERWATER1, 255, 5, 4 + setdivewarp MAP_ABANDONED_SHIP_UNDERWATER1, 5, 4 end AbandonedShip_HiddenFloorCorridors_OnLoad: @@ -19,43 +19,42 @@ AbandonedShip_HiddenFloorCorridors_OnLoad: end AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom1:: - setmetatile 3, 8, METATILE_InsideShip_IntactDoor_Bottom_Unlocked, 1 + setmetatile 3, 8, METATILE_InsideShip_IntactDoor_Bottom_Unlocked, TRUE return AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom2:: - setmetatile 6, 8, METATILE_InsideShip_IntactDoor_Bottom_Unlocked, 1 + setmetatile 6, 8, METATILE_InsideShip_IntactDoor_Bottom_Unlocked, TRUE return AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom4:: - setmetatile 3, 3, METATILE_InsideShip_DoorIndent_Unlocked, 0 + setmetatile 3, 3, METATILE_InsideShip_DoorIndent_Unlocked, FALSE return AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom6:: - setmetatile 9, 3, METATILE_InsideShip_DoorIndent_Unlocked, 0 + setmetatile 9, 3, METATILE_InsideShip_DoorIndent_Unlocked, FALSE return AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom1:: - setmetatile 3, 8, METATILE_InsideShip_IntactDoor_Bottom_Locked, 1 + setmetatile 3, 8, METATILE_InsideShip_IntactDoor_Bottom_Locked, TRUE return AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom2:: - setmetatile 6, 8, METATILE_InsideShip_IntactDoor_Bottom_Locked, 1 + setmetatile 6, 8, METATILE_InsideShip_IntactDoor_Bottom_Locked, TRUE return AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom4:: - setmetatile 3, 3, METATILE_InsideShip_DoorIndent_Locked, 0 + setmetatile 3, 3, METATILE_InsideShip_DoorIndent_Locked, FALSE return AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom6:: - setmetatile 9, 3, METATILE_InsideShip_DoorIndent_Locked, 0 + setmetatile 9, 3, METATILE_InsideShip_DoorIndent_Locked, FALSE return AbandonedShip_HiddenFloorCorridors_EventScript_Room1Door:: lockall goto_if_set FLAG_USED_ROOM_1_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen - checkitem ITEM_ROOM_1_KEY, 1 - compare VAR_RESULT, FALSE - goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_Rm1IsLocked + checkitem ITEM_ROOM_1_KEY + goto_if_eq VAR_RESULT, FALSE, AbandonedShip_HiddenFloorCorridors_EventScript_Rm1IsLocked msgbox AbandonedShip_HiddenFloorCorridors_Text_InsertedKey, MSGBOX_DEFAULT playse SE_PIN removeitem ITEM_ROOM_1_KEY @@ -68,9 +67,8 @@ AbandonedShip_HiddenFloorCorridors_EventScript_Room1Door:: AbandonedShip_HiddenFloorCorridors_EventScript_Room2Door:: lockall goto_if_set FLAG_USED_ROOM_2_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen - checkitem ITEM_ROOM_2_KEY, 1 - compare VAR_RESULT, FALSE - goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_Rm2IsLocked + checkitem ITEM_ROOM_2_KEY + goto_if_eq VAR_RESULT, FALSE, AbandonedShip_HiddenFloorCorridors_EventScript_Rm2IsLocked msgbox AbandonedShip_HiddenFloorCorridors_Text_InsertedKey, MSGBOX_DEFAULT playse SE_PIN removeitem ITEM_ROOM_2_KEY @@ -83,9 +81,8 @@ AbandonedShip_HiddenFloorCorridors_EventScript_Room2Door:: AbandonedShip_HiddenFloorCorridors_EventScript_Room4Door:: lockall goto_if_set FLAG_USED_ROOM_4_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen - checkitem ITEM_ROOM_4_KEY, 1 - compare VAR_RESULT, FALSE - goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_Rm4IsLocked + checkitem ITEM_ROOM_4_KEY + goto_if_eq VAR_RESULT, FALSE, AbandonedShip_HiddenFloorCorridors_EventScript_Rm4IsLocked msgbox AbandonedShip_HiddenFloorCorridors_Text_InsertedKey, MSGBOX_DEFAULT playse SE_PIN removeitem ITEM_ROOM_4_KEY @@ -98,9 +95,8 @@ AbandonedShip_HiddenFloorCorridors_EventScript_Room4Door:: AbandonedShip_HiddenFloorCorridors_EventScript_Room6Door:: lockall goto_if_set FLAG_USED_ROOM_6_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen - checkitem ITEM_ROOM_6_KEY, 1 - compare VAR_RESULT, FALSE - goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_Rm6IsLocked + checkitem ITEM_ROOM_6_KEY + goto_if_eq VAR_RESULT, FALSE, AbandonedShip_HiddenFloorCorridors_EventScript_Rm6IsLocked msgbox AbandonedShip_HiddenFloorCorridors_Text_InsertedKey, MSGBOX_DEFAULT playse SE_PIN removeitem ITEM_ROOM_6_KEY diff --git a/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc b/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc index cdeb225de2..e9b14b7b0b 100644 --- a/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc +++ b/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc @@ -17,12 +17,9 @@ AbandonedShip_HiddenFloorRooms_EventScript_DoHiddenItemSparkle:: setvar VAR_TEMP_1, 1 getplayerxy VAR_TEMP_2, VAR_TEMP_3 setvar VAR_TEMP_4, 1 - compare VAR_TEMP_2, 21 - call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_InMiddleRoomColumn - compare VAR_TEMP_2, 36 - call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_InRightRoomColumn - compare VAR_TEMP_3, 2 - call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_InUpperRoomRow + call_if_eq VAR_TEMP_2, 21, AbandonedShip_HiddenFloorRooms_EventScript_InMiddleRoomColumn + call_if_eq VAR_TEMP_2, 36, AbandonedShip_HiddenFloorRooms_EventScript_InRightRoomColumn + call_if_eq VAR_TEMP_3, 2, AbandonedShip_HiddenFloorRooms_EventScript_InUpperRoomRow switch VAR_TEMP_4 case 1, AbandonedShip_HiddenFloorRooms_EventScript_EnterRm1 case 2, AbandonedShip_HiddenFloorRooms_EventScript_EnterRm2 @@ -48,8 +45,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_EnterRm1:: delay 20 dofieldeffectsparkle 10, 10, 0 specialvar VAR_RESULT, FoundAbandonedShipRoom4Key - compare VAR_RESULT, FALSE - call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_Rm4KeySparkle + call_if_eq VAR_RESULT, FALSE, AbandonedShip_HiddenFloorRooms_EventScript_Rm4KeySparkle waitfieldeffect FLDEFF_SPARKLE delay 10 end @@ -59,11 +55,9 @@ AbandonedShip_HiddenFloorRooms_EventScript_EnterRm2:: AbandonedShip_HiddenFloorRooms_EventScript_EnterRm3:: specialvar VAR_RESULT, FoundAbandonedShipRoom1Key - compare VAR_RESULT, TRUE - goto_if_eq AbandonedShip_HiddenFloorRooms_EventScript_Rm3NoSparkle + goto_if_eq VAR_RESULT, TRUE, AbandonedShip_HiddenFloorRooms_EventScript_Rm3NoSparkle delay 20 - compare VAR_RESULT, FALSE - call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_Rm1KeySparkle + call_if_eq VAR_RESULT, FALSE, AbandonedShip_HiddenFloorRooms_EventScript_Rm1KeySparkle waitfieldeffect FLDEFF_SPARKLE delay 10 end @@ -76,8 +70,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_EnterRm4:: dofieldeffectsparkle 8, 5, 0 dofieldeffectsparkle 11, 3, 0 specialvar VAR_RESULT, FoundAbandonedShipRoom6Key - compare VAR_RESULT, FALSE - call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_Rm6KeySparkle + call_if_eq VAR_RESULT, FALSE, AbandonedShip_HiddenFloorRooms_EventScript_Rm6KeySparkle waitfieldeffect FLDEFF_SPARKLE delay 10 end @@ -88,8 +81,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_EnterRm5:: dofieldeffectsparkle 25, 2, 0 dofieldeffectsparkle 24, 6, 0 specialvar VAR_RESULT, FoundAbandonedShipRoom2Key - compare VAR_RESULT, FALSE - call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_Rm2KeySparkle + call_if_eq VAR_RESULT, FALSE, AbandonedShip_HiddenFloorRooms_EventScript_Rm2KeySparkle waitfieldeffect FLDEFF_SPARKLE delay 10 end diff --git a/data/maps/AbandonedShip_Rooms2_1F/scripts.inc b/data/maps/AbandonedShip_Rooms2_1F/scripts.inc index e02d109b7b..b0f317ef28 100644 --- a/data/maps/AbandonedShip_Rooms2_1F/scripts.inc +++ b/data/maps/AbandonedShip_Rooms2_1F/scripts.inc @@ -4,8 +4,7 @@ AbandonedShip_Rooms2_1F_MapScripts:: AbandonedShip_Rooms2_1F_EventScript_Dan:: trainerbattle_double TRAINER_KIRA_AND_DAN_1, AbandonedShip_Rooms2_1F_Text_DanIntro, AbandonedShip_Rooms2_1F_Text_DanDefeat, AbandonedShip_Rooms2_1F_Text_DanNotEnoughMons, AbandonedShip_Rooms2_1F_EventScript_RegisterDan specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq AbandonedShip_Rooms2_1F_EventScript_DanRematch + goto_if_eq VAR_RESULT, TRUE, AbandonedShip_Rooms2_1F_EventScript_DanRematch msgbox AbandonedShip_Rooms2_1F_Text_DanPostBattle, MSGBOX_DEFAULT release end @@ -24,8 +23,7 @@ AbandonedShip_Rooms2_1F_EventScript_DanRematch:: AbandonedShip_Rooms2_1F_EventScript_Kira:: trainerbattle_double TRAINER_KIRA_AND_DAN_1, AbandonedShip_Rooms2_1F_Text_KiraIntro, AbandonedShip_Rooms2_1F_Text_KiraDefeat, AbandonedShip_Rooms2_1F_Text_KiraNotEnoughMons, AbandonedShip_Rooms2_1F_EventScript_RegisterKira specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq AbandonedShip_Rooms2_1F_EventScript_KiraRematch + goto_if_eq VAR_RESULT, TRUE, AbandonedShip_Rooms2_1F_EventScript_KiraRematch msgbox AbandonedShip_Rooms2_1F_Text_KiraPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/AbandonedShip_Rooms_1F/scripts.inc b/data/maps/AbandonedShip_Rooms_1F/scripts.inc index 41b4eb3b67..c8ea849640 100644 --- a/data/maps/AbandonedShip_Rooms_1F/scripts.inc +++ b/data/maps/AbandonedShip_Rooms_1F/scripts.inc @@ -13,8 +13,7 @@ AbandonedShip_Rooms_1F_EventScript_Demetrius:: AbandonedShip_Rooms_1F_EventScript_Thalia:: trainerbattle_single TRAINER_THALIA_1, AbandonedShip_Rooms_1F_Text_ThaliaIntro, AbandonedShip_Rooms_1F_Text_ThaliaDefeat, AbandonedShip_Rooms_1F_EventScript_RegisterThalia specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq AbandonedShip_Rooms_1F_EventScript_ThaliaRematch + goto_if_eq VAR_RESULT, TRUE, AbandonedShip_Rooms_1F_EventScript_ThaliaRematch msgbox AbandonedShip_Rooms_1F_Text_ThaliaPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/AbandonedShip_Rooms_B1F/scripts.inc b/data/maps/AbandonedShip_Rooms_B1F/scripts.inc index a716972ff4..484f15ba12 100644 --- a/data/maps/AbandonedShip_Rooms_B1F/scripts.inc +++ b/data/maps/AbandonedShip_Rooms_B1F/scripts.inc @@ -3,7 +3,7 @@ AbandonedShip_Rooms_B1F_MapScripts:: .byte 0 AbandonedShip_Rooms_B1F_OnResume: - setdivewarp MAP_ABANDONED_SHIP_UNDERWATER2, 255, 17, 4 + setdivewarp MAP_ABANDONED_SHIP_UNDERWATER2, 17, 4 end AbandonedShip_Rooms_B1F_EventScript_FatMan:: diff --git a/data/maps/AbandonedShip_Underwater1/scripts.inc b/data/maps/AbandonedShip_Underwater1/scripts.inc index 9b3528b779..0f47704d1a 100644 --- a/data/maps/AbandonedShip_Underwater1/scripts.inc +++ b/data/maps/AbandonedShip_Underwater1/scripts.inc @@ -3,6 +3,6 @@ AbandonedShip_Underwater1_MapScripts:: .byte 0 AbandonedShip_Underwater1_OnResume: - setdivewarp MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS, 255, 0, 10 + setdivewarp MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS, 0, 10 end diff --git a/data/maps/AbandonedShip_Underwater2/scripts.inc b/data/maps/AbandonedShip_Underwater2/scripts.inc index bb139bd510..6258b50c18 100644 --- a/data/maps/AbandonedShip_Underwater2/scripts.inc +++ b/data/maps/AbandonedShip_Underwater2/scripts.inc @@ -3,6 +3,6 @@ AbandonedShip_Underwater2_MapScripts:: .byte 0 AbandonedShip_Underwater2_OnResume: - setdivewarp MAP_ABANDONED_SHIP_ROOMS_B1F, 255, 13, 7 + setdivewarp MAP_ABANDONED_SHIP_ROOMS_B1F, 13, 7 end diff --git a/data/maps/AncientTomb/scripts.inc b/data/maps/AncientTomb/scripts.inc index f2e242bbd6..dd22359558 100644 --- a/data/maps/AncientTomb/scripts.inc +++ b/data/maps/AncientTomb/scripts.inc @@ -10,8 +10,7 @@ AncientTomb_OnResume: AncientTomb_EventScript_TryRemoveRegisteel:: specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_CAUGHT - goto_if_ne Common_EventScript_NopReturn + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return @@ -29,12 +28,12 @@ AncientTomb_OnLoad: end AncientTomb_EventScript_HideRegiEntrance:: - setmetatile 7, 19, METATILE_Cave_EntranceCover, 1 - setmetatile 8, 19, METATILE_Cave_EntranceCover, 1 - setmetatile 9, 19, METATILE_Cave_EntranceCover, 1 - setmetatile 7, 20, METATILE_Cave_SealedChamberBraille_Mid, 1 - setmetatile 8, 20, METATILE_Cave_SealedChamberBraille_Mid, 1 - setmetatile 9, 20, METATILE_Cave_SealedChamberBraille_Mid, 1 + setmetatile 7, 19, METATILE_Cave_EntranceCover, TRUE + setmetatile 8, 19, METATILE_Cave_EntranceCover, TRUE + setmetatile 9, 19, METATILE_Cave_EntranceCover, TRUE + setmetatile 7, 20, METATILE_Cave_SealedChamberBraille_Mid, TRUE + setmetatile 8, 20, METATILE_Cave_SealedChamberBraille_Mid, TRUE + setmetatile 9, 20, METATILE_Cave_SealedChamberBraille_Mid, TRUE return AncientTomb_EventScript_CaveEntranceMiddle:: @@ -62,18 +61,15 @@ AncientTomb_EventScript_Registeel:: playmoncry SPECIES_REGISTEEL, CRY_MODE_ENCOUNTER delay 40 waitmoncry - setwildbattle SPECIES_REGISTEEL, 40, ITEM_NONE + setwildbattle SPECIES_REGISTEEL, 40 setflag FLAG_SYS_CTRL_OBJ_DELETE special StartRegiBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq AncientTomb_EventScript_DefeatedRegisteel - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq AncientTomb_EventScript_RanFromRegisteel - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq AncientTomb_EventScript_RanFromRegisteel + goto_if_eq VAR_RESULT, B_OUTCOME_WON, AncientTomb_EventScript_DefeatedRegisteel + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, AncientTomb_EventScript_RanFromRegisteel + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, AncientTomb_EventScript_RanFromRegisteel setflag FLAG_DEFEATED_REGISTEEL release end diff --git a/data/maps/AquaHideout_B1F/scripts.inc b/data/maps/AquaHideout_B1F/scripts.inc index 2a6f156e5c..f644f6ae56 100644 --- a/data/maps/AquaHideout_B1F/scripts.inc +++ b/data/maps/AquaHideout_B1F/scripts.inc @@ -9,8 +9,7 @@ AquaHideout_B1F_OnResume: AquaHideout_B1F_EventScript_TryRemoveElectrode:: specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_CAUGHT - goto_if_ne Common_EventScript_NopReturn + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return @@ -30,7 +29,7 @@ AquaHideout_B1F_EventScript_ShowElectrode2:: AquaHideout_B1F_EventScript_Electrode1:: lock faceplayer - setwildbattle SPECIES_ELECTRODE, 30, ITEM_NONE + setwildbattle SPECIES_ELECTRODE, 30 waitse playmoncry SPECIES_ELECTRODE, CRY_MODE_ENCOUNTER delay 40 @@ -39,12 +38,9 @@ AquaHideout_B1F_EventScript_Electrode1:: dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq AquaHideout_B1F_EventScript_DefeatedElectrode1 - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq AquaHideout_B1F_EventScript_DefeatedElectrode1 - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq AquaHideout_B1F_EventScript_DefeatedElectrode1 + goto_if_eq VAR_RESULT, B_OUTCOME_WON, AquaHideout_B1F_EventScript_DefeatedElectrode1 + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, AquaHideout_B1F_EventScript_DefeatedElectrode1 + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, AquaHideout_B1F_EventScript_DefeatedElectrode1 setflag FLAG_DEFEATED_ELECTRODE_1_AQUA_HIDEOUT release end @@ -57,7 +53,7 @@ AquaHideout_B1F_EventScript_DefeatedElectrode1:: AquaHideout_B1F_EventScript_Electrode2:: lock faceplayer - setwildbattle SPECIES_ELECTRODE, 30, ITEM_NONE + setwildbattle SPECIES_ELECTRODE, 30 waitse playmoncry SPECIES_ELECTRODE, CRY_MODE_ENCOUNTER delay 40 @@ -66,12 +62,9 @@ AquaHideout_B1F_EventScript_Electrode2:: dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq AquaHideout_B1F_EventScript_DefeatedElectrode2 - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq AquaHideout_B1F_EventScript_DefeatedElectrode2 - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq AquaHideout_B1F_EventScript_DefeatedElectrode2 + goto_if_eq VAR_RESULT, B_OUTCOME_WON, AquaHideout_B1F_EventScript_DefeatedElectrode2 + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, AquaHideout_B1F_EventScript_DefeatedElectrode2 + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, AquaHideout_B1F_EventScript_DefeatedElectrode2 setflag FLAG_DEFEATED_ELECTRODE_2_AQUA_HIDEOUT release end diff --git a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc index adea508ae6..844ec070a6 100644 --- a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc @@ -28,10 +28,8 @@ BattleFrontier_BattleArenaBattleRoom_OnTransition: BattleFrontier_BattleArenaBattleRoom_EventScript_SetPlayerGfx:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_SetPlayerGfxMale - compare VAR_RESULT, FEMALE - goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_SetPlayerGfxFemale + goto_if_eq VAR_RESULT, MALE, BattleFrontier_BattleArenaBattleRoom_EventScript_SetPlayerGfxMale + goto_if_eq VAR_RESULT, FEMALE, BattleFrontier_BattleArenaBattleRoom_EventScript_SetPlayerGfxFemale return BattleFrontier_BattleArenaBattleRoom_EventScript_SetPlayerGfxMale:: @@ -52,8 +50,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_EnterRoom:: applymovement LOCALID_PLAYER, BattleFrontier_BattleArenaBattleRoom_Movement_PlayerEnter waitmovement 0 frontier_get FRONTIER_DATA_BATTLE_NUM - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_AnnounceTrainers + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleArenaBattleRoom_EventScript_AnnounceTrainers applymovement LOCALID_ATTENDANT, BattleFrontier_BattleArenaBattleRoom_Movement_WalkInPlaceDown applymovement LOCALID_PLAYER, BattleFrontier_BattleArenaBattleRoom_Movement_WalkInPlaceLeft setvar VAR_TEMP_2, 1 @@ -110,7 +107,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DeclareOpponentWinner:: msgbox BattleFrontier_BattleArenaBattleRoom_Text_WinnerIsOpponent, MSGBOX_DEFAULT BattleFrontier_BattleArenaBattleRoom_EventScript_WarpToLobbyLost:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST - warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY, 255, 7, 8 + warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY, 7, 8 waitstate BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedOpponent:: @@ -137,24 +134,16 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedOpponent:: BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent:: frontier_getbrainstatus copyvar VAR_TEMP_F, VAR_RESULT - compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY - goto_if_ne BattleFrontier_BattleArenaBattleRoom_EventScript_TycoonUpNext + goto_if_ne VAR_RESULT, FRONTIER_BRAIN_NOT_READY, BattleFrontier_BattleArenaBattleRoom_EventScript_TycoonUpNext frontier_get FRONTIER_DATA_BATTLE_NUM - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor2ndOpponent - compare VAR_RESULT, 2 - call_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor3rdOpponent - compare VAR_RESULT, 3 - call_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor4thOpponent - compare VAR_RESULT, 4 - call_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor5thOpponent - compare VAR_RESULT, 5 - call_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor6thOpponent - compare VAR_RESULT, 6 - call_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor7thOpponent + call_if_eq VAR_RESULT, 1, BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor2ndOpponent + call_if_eq VAR_RESULT, 2, BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor3rdOpponent + call_if_eq VAR_RESULT, 3, BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor4thOpponent + call_if_eq VAR_RESULT, 4, BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor5thOpponent + call_if_eq VAR_RESULT, 5, BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor6thOpponent + call_if_eq VAR_RESULT, 6, BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor7thOpponent call BattleFrontier_EventScript_GetCantRecordBattle - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponentNoRecord + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponentNoRecord multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_ContinueChallenge @@ -210,7 +199,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_ContinueChallenge:: BattleFrontier_BattleArenaBattleRoom_EventScript_ReturnToLobbyWon:: delay 60 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON - warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY, 255, 7, 8 + warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY, 7, 8 waitstate BattleFrontier_BattleArenaBattleRoom_EventScript_ReadyFor2ndOpponent:: @@ -254,16 +243,14 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_PauseChallenge:: end BattleFrontier_BattleArenaBattleRoom_EventScript_TycoonUpNext:: - compare VAR_TEMP_2, 1 - goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoon + goto_if_eq VAR_TEMP_2, 1, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoon msgbox BattleFrontier_BattleArenaBattleRoom_Text_NowFaceTycoon, MSGBOX_DEFAULT setvar VAR_TEMP_2, 1 BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoon:: message BattleFrontier_BattleArenaBattleRoom_Text_PreparedForTycoon waitmessage call BattleFrontier_EventScript_GetCantRecordBattle - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoonNoRecord + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForTycoonNoRecord multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGreta @@ -309,8 +296,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGreta:: case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGretaSilver case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGretaGold frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH - compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGretaSilver + goto_if_ne VAR_RESULT, FALSE, BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGretaSilver msgbox BattleFrontier_BattleArenaBattleRoom_Text_GretaYoureChallenger, MSGBOX_DEFAULT closemessage frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH @@ -324,15 +310,13 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGreta:: BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGretaSilver:: msgbox BattleFrontier_BattleArenaBattleRoom_Text_IgniteMyPassionForBattle, MSGBOX_DEFAULT call BattleFrontier_BattleArenaBattleRoom_EventScript_StartArenaBattle - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaSilver + goto_if_eq VAR_RESULT, 1, BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaSilver goto BattleFrontier_BattleArenaBattleRoom_EventScript_DeclareOpponentWinner BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaSilver:: call BattleFrontier_BattleArenaBattleRoom_EventScript_DeclarePlayerWinner frontier_getsymbols - compare VAR_RESULT, 0 - goto_if_ne BattleFrontier_BattleArenaBattleRoom_EventScript_ReturnToLobbyWon + goto_if_ne VAR_RESULT, 0, BattleFrontier_BattleArenaBattleRoom_EventScript_ReturnToLobbyWon applymovement LOCALID_OPPONENT, BattleFrontier_BattleArenaBattleRoom_Movement_OpponentStepForwardLong waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_GretaYoureToughAfterAll, MSGBOX_DEFAULT @@ -346,8 +330,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaSilver:: BattleFrontier_BattleArenaBattleRoom_EventScript_IntroGretaGold:: frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH - compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGretaGold + goto_if_ne VAR_RESULT, FALSE, BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGretaGold msgbox BattleFrontier_BattleArenaBattleRoom_Text_GretaLookingForwardToSeeingAgain, MSGBOX_DEFAULT closemessage frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH @@ -361,15 +344,13 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_IntroGretaGold:: BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGretaGold:: msgbox BattleFrontier_BattleArenaBattleRoom_Text_LetsGetThisStarted, MSGBOX_DEFAULT call BattleFrontier_BattleArenaBattleRoom_EventScript_StartArenaBattle - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaGold + goto_if_eq VAR_RESULT, 1, BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaGold goto BattleFrontier_BattleArenaBattleRoom_EventScript_DeclareOpponentWinner BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaGold:: call BattleFrontier_BattleArenaBattleRoom_EventScript_DeclarePlayerWinner frontier_getsymbols - compare VAR_RESULT, 2 - goto_if_eq BattleFrontier_BattleArenaBattleRoom_EventScript_ReturnToLobbyWon + goto_if_eq VAR_RESULT, 2, BattleFrontier_BattleArenaBattleRoom_EventScript_ReturnToLobbyWon applymovement LOCALID_OPPONENT, BattleFrontier_BattleArenaBattleRoom_Movement_OpponentStepForwardLong waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_GretaBlownAway, MSGBOX_DEFAULT diff --git a/data/maps/BattleFrontier_BattleArenaCorridor/scripts.inc b/data/maps/BattleFrontier_BattleArenaCorridor/scripts.inc index 1752b93421..7086819569 100644 --- a/data/maps/BattleFrontier_BattleArenaCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaCorridor/scripts.inc @@ -22,7 +22,7 @@ BattleFrontier_BattleArenaCorridor_EventScript_WalkToBattleRoom:: applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleArenaCorridor_Movement_PlayerEnterDoor waitmovement 0 setvar VAR_0x8006, 0 - warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM, 255, 7, 5 + warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM, 7, 5 waitstate end diff --git a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc index 12b600f69b..9467f34197 100644 --- a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc @@ -40,8 +40,7 @@ BattleFrontier_BattleArenaLobby_EventScript_QuitWithoutSaving:: BattleFrontier_BattleArenaLobby_EventScript_WonChallenge:: lockall frontier_isbrain - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleArenaLobby_EventScript_DefeatedTycoon + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleArenaLobby_EventScript_DefeatedTycoon msgbox BattleFrontier_BattleArenaLobby_Text_CongratsOnSevenWins, MSGBOX_DEFAULT goto BattleFrontier_BattleArenaLobby_EventScript_GiveBattlePoints @@ -80,8 +79,7 @@ BattleFrontier_BattleArenaLobby_EventScript_SaveAfterChallenge:: playse SE_SAVE waitse call BattleFrontier_EventScript_GetCantRecordBattle - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleArenaLobby_EventScript_EndSaveAfterChallenge + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleArenaLobby_EventScript_EndSaveAfterChallenge message BattleFrontier_BattleArenaLobby_Text_RecordLastMatch waitmessage multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE @@ -131,8 +129,7 @@ BattleFrontier_BattleArenaLobby_EventScript_TryEnterChallenge:: case FRONTIER_LVL_TENT, BattleFrontier_BattleArenaLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleArenaLobby_EventScript_CancelChallenge frontier_checkineligible - compare VAR_0x8004, TRUE - goto_if_eq BattleFrontier_BattleArenaLobby_EventScript_NotEnoughValidMons + goto_if_eq VAR_0x8004, TRUE, BattleFrontier_BattleArenaLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleArenaLobby_Text_SelectThreeMons, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK @@ -141,8 +138,7 @@ BattleFrontier_BattleArenaLobby_EventScript_TryEnterChallenge:: setvar VAR_0x8005, FRONTIER_PARTY_SIZE special ChoosePartyForBattleFrontier waitstate - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleArenaLobby_EventScript_LoadPartyAndCancelChallenge + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleArenaLobby_EventScript_LoadPartyAndCancelChallenge msgbox BattleFrontier_BattleArenaLobby_Text_OkayToSave, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattleArenaLobby_EventScript_LoadPartyAndCancelChallenge @@ -161,19 +157,16 @@ BattleFrontier_BattleArenaLobby_EventScript_SaveBeforeChallenge:: delay 2 call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleArenaLobby_EventScript_CancelChallengeSaveFailed + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleArenaLobby_EventScript_CancelChallengeSaveFailed BattleFrontier_BattleArenaLobby_EventScript_EnterChallenge:: special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox BattleFrontier_BattleArenaLobby_Text_GuideYouToArena, MSGBOX_DEFAULT closemessage frontier_get FRONTIER_DATA_LVL_MODE - compare VAR_RESULT, FRONTIER_LVL_50 - call_if_eq BattleFrontier_BattleArenaLobby_EventScript_WalkToDoorLv50 - compare VAR_RESULT, FRONTIER_LVL_OPEN - call_if_eq BattleFrontier_BattleArenaLobby_EventScript_WalkToDoorLvOpen - warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR, 255, 9, 13 + call_if_eq VAR_RESULT, FRONTIER_LVL_50, BattleFrontier_BattleArenaLobby_EventScript_WalkToDoorLv50 + call_if_eq VAR_RESULT, FRONTIER_LVL_OPEN, BattleFrontier_BattleArenaLobby_EventScript_WalkToDoorLvOpen + warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR, 9, 13 setvar VAR_TEMP_0, 0 waitstate end diff --git a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc index 76088f54d1..406ab46aec 100644 --- a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc @@ -20,17 +20,14 @@ BattleFrontier_BattleDomeBattleRoom_OnTransition: dome_setopponentgfx frontier_get FRONTIER_DATA_BATTLE_NUM copyvar VAR_TEMP_F, VAR_RESULT - compare VAR_RESULT, DOME_ROUND1 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_SetWalkingAudienceMemberPos + call_if_eq VAR_RESULT, DOME_ROUND1, BattleFrontier_BattleDomeBattleRoom_EventScript_SetWalkingAudienceMemberPos call BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfx end BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfx:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfxMale - compare VAR_RESULT, FEMALE - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfxFemale + goto_if_eq VAR_RESULT, MALE, BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfxMale + goto_if_eq VAR_RESULT, FEMALE, BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfxFemale return BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfxMale:: @@ -48,18 +45,15 @@ BattleFrontier_BattleDomeBattleRoom_OnFrame: BattleFrontier_BattleDomeBattleRoom_EventScript_EnterRoom:: lockall call BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum - compare VAR_RESULT, DOME_ROUND1 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_TryDoAudienceMemberWalkToSeat + call_if_eq VAR_RESULT, DOME_ROUND1, BattleFrontier_BattleDomeBattleRoom_EventScript_TryDoAudienceMemberWalkToSeat applymovement LOCALID_ANNOUNCER, Common_Movement_WalkInPlaceDown waitmovement 0 call BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayer msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerHasEnteredDome, MSGBOX_DEFAULT closemessage showobjectat LOCALID_PLAYER, MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM - compare VAR_TEMP_F, DOME_FINAL - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnter - compare VAR_TEMP_E, FRONTIER_BRAIN_NOT_READY - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnterForTucker + goto_if_ne VAR_TEMP_F, DOME_FINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnter + goto_if_ne VAR_TEMP_E, FRONTIER_BRAIN_NOT_READY, BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnterForTucker BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnter:: applymovement LOCALID_PLAYER, BattleFrontier_BattleDomeBattleRoom_Movement_PlayerEnter goto BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceReactToPlayer @@ -70,10 +64,8 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceReactToPlayer:: playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitmovement 0 - compare VAR_TEMP_F, DOME_FINAL - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_BattleOpponent - compare VAR_TEMP_E, FRONTIER_BRAIN_NOT_READY - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTucker + goto_if_ne VAR_TEMP_F, DOME_FINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_BattleOpponent + goto_if_ne VAR_TEMP_E, FRONTIER_BRAIN_NOT_READY, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTucker BattleFrontier_BattleDomeBattleRoom_EventScript_BattleOpponent:: dome_getopponentname msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerVersusTrainer, MSGBOX_DEFAULT @@ -105,8 +97,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_Draw:: delay 180 applymovement LOCALID_REFEREE, BattleFrontier_BattleDomeBattleRoom_Movement_RefereeExit waitmovement 0 - compare VAR_TEMP_2, DRAW_TUCKER @ Tucker always wins on a draw - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent + goto_if_eq VAR_TEMP_2, DRAW_TUCKER, BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent @ Tucker always wins on a draw dome_compareseeds switch VAR_RESULT case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_DefeatedOpponent @@ -114,12 +105,9 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent:: applymovement LOCALID_ANNOUNCER, Common_Movement_WalkInPlaceDown waitmovement 0 dome_getopponentname - compare VAR_TEMP_2, NO_DRAW - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWon - compare VAR_TEMP_2, DRAW_TRAINER - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWonDraw - compare VAR_TEMP_2, DRAW_TUCKER - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerWonDraw + call_if_eq VAR_TEMP_2, NO_DRAW, BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWon + call_if_eq VAR_TEMP_2, DRAW_TRAINER, BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWonDraw + call_if_eq VAR_TEMP_2, DRAW_TUCKER, BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerWonDraw playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 @@ -130,13 +118,13 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobbyLost:: goto BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobby BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWon:: - frontier_gettrainername 1 + frontier_gettrainername STR_VAR_2 message BattleFrontier_BattleDomeBattleRoom_Text_TrainerIsWinner waitmessage return BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWonDraw:: - frontier_gettrainername 0 + frontier_gettrainername STR_VAR_1 message BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerTrainer waitmessage return @@ -149,10 +137,8 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerWonDraw:: BattleFrontier_BattleDomeBattleRoom_EventScript_DefeatedOpponent:: applymovement LOCALID_ANNOUNCER, Common_Movement_WalkInPlaceDown waitmovement 0 - compare VAR_TEMP_2, NO_DRAW - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWon - compare VAR_TEMP_2, DRAW_TRAINER - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWonDraw + call_if_eq VAR_TEMP_2, NO_DRAW, BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWon + call_if_eq VAR_TEMP_2, DRAW_TRAINER, BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWonDraw playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 @@ -164,7 +150,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_DefeatedOpponent:: switch VAR_RESULT case DOME_ROUNDS_COUNT, BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney setvar VAR_0x8006, 1 - warp MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM, 255, 5, 3 + warp MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM, 5, 3 waitstate BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney:: @@ -196,14 +182,11 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWonDraw:: BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayer:: dome_get DOME_DATA_ATTEMPTED_CHALLENGE - compare VAR_RESULT, FALSE - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttempt + goto_if_eq VAR_RESULT, FALSE, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttempt dome_get DOME_DATA_HAS_WON_CHALLENGE - compare VAR_RESULT, FALSE - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWon + goto_if_eq VAR_RESULT, FALSE, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWon dome_get DOME_DATA_WIN_STREAK_ACTIVE - compare VAR_RESULT, FALSE - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreak + goto_if_eq VAR_RESULT, FALSE, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreak goto BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampion return @@ -266,8 +249,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonFinal:: return BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampion:: - compare VAR_TEMP_F, DOME_FINAL - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionNoTucker + goto_if_ne VAR_TEMP_F, DOME_FINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionNoTucker switch VAR_TEMP_E case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerSilver case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerGold @@ -387,8 +369,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerEnter:: case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerSilver case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerGold frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH - compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerSilver + goto_if_ne VAR_RESULT, FALSE, BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerSilver msgbox BattleFrontier_BattleDomeBattleRoom_Text_TuckerSilverIntro, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerSilver:: @@ -401,8 +382,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerSilver:: msgbox BattleFrontier_BattleDomeBattleRoom_Text_IncredibleVictorIsPlayer, MSGBOX_DEFAULT dome_resolvewinners DOME_PLAYER_WON_MATCH frontier_getsymbols - compare VAR_RESULT, 0 - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney + goto_if_ne VAR_RESULT, 0, BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney closemessage applymovement LOCALID_OPPONENT, BattleFrontier_BattleDomeBattleRoom_Movement_TuckerApproachPlayer waitmovement 0 @@ -417,8 +397,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerSilver:: BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerGoldIntro:: frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH - compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerGold + goto_if_ne VAR_RESULT, FALSE, BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerGold msgbox BattleFrontier_BattleDomeBattleRoom_Text_TuckerGoldIntro, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerGold:: @@ -431,8 +410,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerGold:: msgbox BattleFrontier_BattleDomeBattleRoom_Text_IncredibleVictorIsPlayer, MSGBOX_DEFAULT dome_resolvewinners DOME_PLAYER_WON_MATCH frontier_getsymbols - compare VAR_RESULT, 2 - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney + goto_if_eq VAR_RESULT, 2, BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney closemessage applymovement LOCALID_OPPONENT, BattleFrontier_BattleDomeBattleRoom_Movement_TuckerApproachPlayer waitmovement 0 @@ -490,12 +468,10 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_SetUpObjects:: setvar VAR_TEMP_1, 1 applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleDomeBattleRoom_Movement_SetInvisible frontier_get FRONTIER_DATA_BATTLE_NUM - compare VAR_RESULT, DOME_FINAL - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_EndSetUpObjects + goto_if_ne VAR_RESULT, DOME_FINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_EndSetUpObjects frontier_getbrainstatus copyvar VAR_TEMP_E, VAR_RESULT - compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_EndSetUpObjects + goto_if_eq VAR_RESULT, FRONTIER_BRAIN_NOT_READY, BattleFrontier_BattleDomeBattleRoom_EventScript_EndSetUpObjects call BattleFrontier_EventScript_SetBrainObjectGfx setobjectxyperm LOCALID_OPPONENT, 13, 9 removeobject LOCALID_OPPONENT @@ -505,8 +481,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_EndSetUpObjects:: end BattleFrontier_BattleDomeBattleRoom_OnResume: - compare VAR_TEMP_9, 1 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_CallAddAudience + call_if_eq VAR_TEMP_9, 1, BattleFrontier_BattleDomeBattleRoom_EventScript_CallAddAudience end BattleFrontier_BattleDomeBattleRoom_EventScript_CallAddAudience:: @@ -515,90 +490,86 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_CallAddAudience:: @ Add audience members to supplement the permanent object event audience BattleFrontier_BattleDomeBattleRoom_EventScript_AddAudience:: - compare VAR_TEMP_F, DOME_ROUND1 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound1Audience - compare VAR_TEMP_F, DOME_ROUND2 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound2Audience - compare VAR_TEMP_F, DOME_SEMIFINAL - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AddSemifinalAudience - compare VAR_TEMP_F, DOME_FINAL - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AddFinalAudience + call_if_eq VAR_TEMP_F, DOME_ROUND1, BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound1Audience + call_if_eq VAR_TEMP_F, DOME_ROUND2, BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound2Audience + call_if_eq VAR_TEMP_F, DOME_SEMIFINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AddSemifinalAudience + call_if_eq VAR_TEMP_F, DOME_FINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AddFinalAudience return BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound1Audience:: return BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound2Audience:: - createvobject OBJ_EVENT_GFX_SCIENTIST_1, 1, 3, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_EXPERT_F, 4, 6, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_NINJA_BOY, 6, 8, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_LITTLE_GIRL, 9, 11, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_SCIENTIST_1, 11, 13, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_MAN_5, 13, 15, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_BEAUTY, 19, 7, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_WOMAN_5, 22, 11, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_LITTLE_BOY, 25, 15, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_YOUNGSTER, 26, 2, 2, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_SCHOOL_KID_M, 29, 5, 1, 3, DIR_SOUTH + createvobject OBJ_EVENT_GFX_SCIENTIST_1, 1, 3, 0 + createvobject OBJ_EVENT_GFX_EXPERT_F, 4, 6, 0 + createvobject OBJ_EVENT_GFX_NINJA_BOY, 6, 8, 0 + createvobject OBJ_EVENT_GFX_LITTLE_GIRL, 9, 11, 0 + createvobject OBJ_EVENT_GFX_SCIENTIST_1, 11, 13, 0 + createvobject OBJ_EVENT_GFX_MAN_5, 13, 15, 0 + createvobject OBJ_EVENT_GFX_BEAUTY, 19, 7, 1 + createvobject OBJ_EVENT_GFX_WOMAN_5, 22, 11, 1 + createvobject OBJ_EVENT_GFX_LITTLE_BOY, 25, 15, 1 + createvobject OBJ_EVENT_GFX_YOUNGSTER, 26, 2, 2 + createvobject OBJ_EVENT_GFX_SCHOOL_KID_M, 29, 5, 1 return BattleFrontier_BattleDomeBattleRoom_EventScript_AddSemifinalAudience:: - createvobject OBJ_EVENT_GFX_SCIENTIST_1, 1, 3, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_EXPERT_F, 4, 6, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_NINJA_BOY, 6, 8, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_WOMAN_2, 7, 9, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_LITTLE_GIRL, 9, 11, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_LASS, 10, 12, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_SCIENTIST_1, 11, 13, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_MAN_5, 13, 15, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_GENTLEMAN, 15, 2, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_NINJA_BOY, 16, 3, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_WOMAN_2, 17, 4, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_BEAUTY, 19, 7, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_EXPERT_F, 20, 9, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_WOMAN_5, 22, 11, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_SCIENTIST_1, 23, 13, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_LITTLE_BOY, 25, 15, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_YOUNGSTER, 26, 2, 2, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_HEX_MANIAC, 28, 5, 2, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_SCHOOL_KID_M, 29, 5, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_MART_EMPLOYEE, 30, 6, 2, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_WOMAN_5, 31, 8, 2, 3, DIR_SOUTH + createvobject OBJ_EVENT_GFX_SCIENTIST_1, 1, 3, 0 + createvobject OBJ_EVENT_GFX_EXPERT_F, 4, 6, 0 + createvobject OBJ_EVENT_GFX_NINJA_BOY, 6, 8, 0 + createvobject OBJ_EVENT_GFX_WOMAN_2, 7, 9, 0 + createvobject OBJ_EVENT_GFX_LITTLE_GIRL, 9, 11, 0 + createvobject OBJ_EVENT_GFX_LASS, 10, 12, 0 + createvobject OBJ_EVENT_GFX_SCIENTIST_1, 11, 13, 0 + createvobject OBJ_EVENT_GFX_MAN_5, 13, 15, 0 + createvobject OBJ_EVENT_GFX_GENTLEMAN, 15, 2, 1 + createvobject OBJ_EVENT_GFX_NINJA_BOY, 16, 3, 1 + createvobject OBJ_EVENT_GFX_WOMAN_2, 17, 4, 1 + createvobject OBJ_EVENT_GFX_BEAUTY, 19, 7, 1 + createvobject OBJ_EVENT_GFX_EXPERT_F, 20, 9, 1 + createvobject OBJ_EVENT_GFX_WOMAN_5, 22, 11, 1 + createvobject OBJ_EVENT_GFX_SCIENTIST_1, 23, 13, 1 + createvobject OBJ_EVENT_GFX_LITTLE_BOY, 25, 15, 1 + createvobject OBJ_EVENT_GFX_YOUNGSTER, 26, 2, 2 + createvobject OBJ_EVENT_GFX_HEX_MANIAC, 28, 5, 2 + createvobject OBJ_EVENT_GFX_SCHOOL_KID_M, 29, 5, 1 + createvobject OBJ_EVENT_GFX_MART_EMPLOYEE, 30, 6, 2 + createvobject OBJ_EVENT_GFX_WOMAN_5, 31, 8, 2 return BattleFrontier_BattleDomeBattleRoom_EventScript_AddFinalAudience:: - createvobject OBJ_EVENT_GFX_NINJA_BOY, 0, 2, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_SCIENTIST_1, 1, 3, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_BEAUTY, 2, 15, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_MAN_5, 3, 5, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_EXPERT_F, 4, 6, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_SCIENTIST_1, 5, 7, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_NINJA_BOY, 6, 8, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_WOMAN_2, 7, 9, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_WOMAN_3, 8, 10, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_LITTLE_GIRL, 9, 11, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_LASS, 10, 12, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_SCIENTIST_1, 11, 13, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_BEAUTY, 12, 14, 0, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_MAN_5, 13, 15, 2, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_HIKER, 14, 12, 2, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_GENTLEMAN, 15, 2, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_NINJA_BOY, 16, 3, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_WOMAN_2, 17, 4, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_WOMAN_3, 18, 6, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_BEAUTY, 19, 7, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_EXPERT_F, 20, 9, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_MAN_2, 21, 10, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_WOMAN_5, 22, 11, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_SCIENTIST_1, 23, 13, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_GENTLEMAN, 24, 14, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_LITTLE_BOY, 25, 15, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_YOUNGSTER, 26, 2, 2, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_FAT_MAN, 27, 3, 2, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_HEX_MANIAC, 28, 5, 2, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_SCHOOL_KID_M, 29, 5, 1, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_MART_EMPLOYEE, 30, 6, 2, 3, DIR_SOUTH - createvobject OBJ_EVENT_GFX_WOMAN_5, 31, 8, 2, 3, DIR_SOUTH + createvobject OBJ_EVENT_GFX_NINJA_BOY, 0, 2, 0 + createvobject OBJ_EVENT_GFX_SCIENTIST_1, 1, 3, 0 + createvobject OBJ_EVENT_GFX_BEAUTY, 2, 15, 0 + createvobject OBJ_EVENT_GFX_MAN_5, 3, 5, 0 + createvobject OBJ_EVENT_GFX_EXPERT_F, 4, 6, 0 + createvobject OBJ_EVENT_GFX_SCIENTIST_1, 5, 7, 0 + createvobject OBJ_EVENT_GFX_NINJA_BOY, 6, 8, 0 + createvobject OBJ_EVENT_GFX_WOMAN_2, 7, 9, 0 + createvobject OBJ_EVENT_GFX_WOMAN_3, 8, 10, 0 + createvobject OBJ_EVENT_GFX_LITTLE_GIRL, 9, 11, 0 + createvobject OBJ_EVENT_GFX_LASS, 10, 12, 0 + createvobject OBJ_EVENT_GFX_SCIENTIST_1, 11, 13, 0 + createvobject OBJ_EVENT_GFX_BEAUTY, 12, 14, 0 + createvobject OBJ_EVENT_GFX_MAN_5, 13, 15, 2 + createvobject OBJ_EVENT_GFX_HIKER, 14, 12, 2 + createvobject OBJ_EVENT_GFX_GENTLEMAN, 15, 2, 1 + createvobject OBJ_EVENT_GFX_NINJA_BOY, 16, 3, 1 + createvobject OBJ_EVENT_GFX_WOMAN_2, 17, 4, 1 + createvobject OBJ_EVENT_GFX_WOMAN_3, 18, 6, 1 + createvobject OBJ_EVENT_GFX_BEAUTY, 19, 7, 1 + createvobject OBJ_EVENT_GFX_EXPERT_F, 20, 9, 1 + createvobject OBJ_EVENT_GFX_MAN_2, 21, 10, 1 + createvobject OBJ_EVENT_GFX_WOMAN_5, 22, 11, 1 + createvobject OBJ_EVENT_GFX_SCIENTIST_1, 23, 13, 1 + createvobject OBJ_EVENT_GFX_GENTLEMAN, 24, 14, 1 + createvobject OBJ_EVENT_GFX_LITTLE_BOY, 25, 15, 1 + createvobject OBJ_EVENT_GFX_YOUNGSTER, 26, 2, 2 + createvobject OBJ_EVENT_GFX_FAT_MAN, 27, 3, 2 + createvobject OBJ_EVENT_GFX_HEX_MANIAC, 28, 5, 2 + createvobject OBJ_EVENT_GFX_SCHOOL_KID_M, 29, 5, 1 + createvobject OBJ_EVENT_GFX_MART_EMPLOYEE, 30, 6, 2 + createvobject OBJ_EVENT_GFX_WOMAN_5, 31, 8, 2 return BattleFrontier_BattleDomeBattleRoom_Movement_SetInvisible: @@ -883,14 +854,13 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround:: BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobby:: copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE - compare VAR_RESULT, FRONTIER_MODE_DOUBLES - goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_WarpToLobbyDoubles - warp MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY, 255, 5, 11 + goto_if_eq VAR_RESULT, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleDomePreBattleRoom_EventScript_WarpToLobbyDoubles + warp MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY, 5, 11 waitstate end BattleFrontier_BattleDomePreBattleRoom_EventScript_WarpToLobbyDoubles:: - warp MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY, 255, 17, 11 + warp MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY, 17, 11 waitstate end @@ -898,15 +868,13 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_WarpToLobbyDoubles:: BattleFrontier_BattleDomeBattleRoom_EventScript_SetWalkingAudienceMemberPos:: random 2 copyvar VAR_TEMP_D, VAR_RESULT - compare VAR_TEMP_D, 0 - goto_if_eq Common_EventScript_NopReturn + goto_if_eq VAR_TEMP_D, 0, Common_EventScript_NopReturn setobjectxyperm LOCALID_AUDIENCE_WALKING, 2, 0 setobjectmovementtype LOCALID_AUDIENCE_WALKING, MOVEMENT_TYPE_FACE_RIGHT return BattleFrontier_BattleDomeBattleRoom_EventScript_TryDoAudienceMemberWalkToSeat:: - compare VAR_TEMP_D, 0 - goto_if_eq Common_EventScript_NopReturn + goto_if_eq VAR_TEMP_D, 0, Common_EventScript_NopReturn applymovement LOCALID_AUDIENCE_WALKING, BattleFrontier_BattleDomeBattleRoom_Movement_AudienceMemberWalkToSeat return diff --git a/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc b/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc index 32f3c82ba3..d286dc8681 100644 --- a/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc @@ -12,8 +12,7 @@ BattleFrontier_BattleDomeCorridor_EventScript_EnterCorridor:: delay 16 setvar VAR_TEMP_0, 1 frontier_get FRONTIER_DATA_LVL_MODE - compare VAR_RESULT, FRONTIER_LVL_OPEN - goto_if_eq BattleFrontier_BattleDomeCorridor_EventScript_WalkToBattleRoomLvOpen + goto_if_eq VAR_RESULT, FRONTIER_LVL_OPEN, BattleFrontier_BattleDomeCorridor_EventScript_WalkToBattleRoomLvOpen applymovement LOCALID_ATTENDANT, BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLv50 applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLv50 waitmovement 0 @@ -40,7 +39,7 @@ BattleFrontier_BattleDomeCorridor_EventScript_WalkToBattleRoomLvOpen:: BattleFrontier_BattleDomeCorridor_EventScript_WarpToPreBattleRoom:: waitmovement 0 setvar VAR_0x8006, 0 - warp MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM, 255, 5, 7 + warp MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM, 5, 7 waitstate end diff --git a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc index 04df6f38c6..b972a0814c 100644 --- a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc @@ -48,8 +48,7 @@ BattleFrontier_BattleDomeLobby_EventScript_WonChallenge:: call BattleFrontier_EventScript_IncrementWinStreak lockall frontier_isbrain - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_DefeatedAce + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleDomeLobby_EventScript_DefeatedAce msgbox BattleFrontier_BattleDomeLobby_Text_CongratsForWinningTourney, MSGBOX_DEFAULT goto BattleFrontier_BattleDomeLobby_EventScript_GiveBattlePoints @@ -88,8 +87,7 @@ BattleFrontier_BattleDomeLobby_EventScript_AskRecordBattle:: playse SE_SAVE waitse call BattleFrontier_EventScript_GetCantRecordBattle - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_EndChallenge + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleDomeLobby_EventScript_EndChallenge message BattleFrontier_BattleDomeLobby_Text_RecordLastMatch waitmessage multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE @@ -137,15 +135,11 @@ BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendant:: BattleFrontier_BattleDomeLobby_EventScript_AttendantWelcome:: special SavePlayerParty - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_WelcomeSingles - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_WelcomeDoubles + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattleDomeLobby_EventScript_WelcomeSingles + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleDomeLobby_EventScript_WelcomeDoubles BattleFrontier_BattleDomeLobby_EventScript_AskTakeChallenge:: - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_TakeSinglesChallenge - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_TakeDoublesChallenge + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattleDomeLobby_EventScript_TakeSinglesChallenge + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleDomeLobby_EventScript_TakeDoublesChallenge waitmessage multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE switch VAR_RESULT @@ -162,8 +156,7 @@ BattleFrontier_BattleDomeLobby_EventScript_TryEnterChallenge:: case FRONTIER_LVL_TENT, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge frontier_checkineligible - compare VAR_0x8004, TRUE - goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMons + goto_if_eq VAR_0x8004, TRUE, BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleDomeLobby_Text_SelectThreeMons, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK @@ -172,8 +165,7 @@ BattleFrontier_BattleDomeLobby_EventScript_TryEnterChallenge:: setvar VAR_0x8005, FRONTIER_PARTY_SIZE special ChoosePartyForBattleFrontier waitstate - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge msgbox BattleFrontier_BattleDomeLobby_Text_OkayToSaveBeforeChallenge, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge @@ -191,8 +183,7 @@ BattleFrontier_BattleDomeLobby_EventScript_SaveBeforeChallenge:: delay 2 call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_CancelChallengeSaveFailed + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleDomeLobby_EventScript_CancelChallengeSaveFailed dome_inittrainers BattleFrontier_BattleDomeLobby_EventScript_EnterChallenge:: special SavePlayerParty @@ -202,16 +193,14 @@ BattleFrontier_BattleDomeLobby_EventScript_EnterChallenge:: closemessage call BattleFrontier_BattleDomeLobby_EventScript_WalkToDoor special HealPlayerParty - warp MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR, 255, 23, 6 + warp MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR, 23, 6 setvar VAR_TEMP_0, 0 waitstate end BattleFrontier_BattleDomeLobby_EventScript_ExplainChallenge:: - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_ExplainSinglesChallenge - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_ExplainDoublesChallenge + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattleDomeLobby_EventScript_ExplainSinglesChallenge + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleDomeLobby_EventScript_ExplainDoublesChallenge goto BattleFrontier_BattleDomeLobby_EventScript_AskTakeChallenge BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMons:: @@ -240,27 +229,19 @@ BattleFrontier_BattleDomeLobby_EventScript_EndCancelChallenge:: end BattleFrontier_BattleDomeLobby_EventScript_WalkToDoor:: - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantWalkToDoor - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantWalkToDoor + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantWalkToDoor + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantWalkToDoor applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_WalkToDoor waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_OpenSinglesDoor - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_OpenDoublesDoor + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattleDomeLobby_EventScript_OpenSinglesDoor + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleDomeLobby_EventScript_OpenDoublesDoor waitdooranim - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantEnterDoor - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantEnterDoor + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantEnterDoor + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantEnterDoor applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_PlayerEnterDoor waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_CloseSinglesDoor - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_CloseDoublesDoor + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattleDomeLobby_EventScript_CloseSinglesDoor + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleDomeLobby_EventScript_CloseDoublesDoor waitdooranim return @@ -357,14 +338,10 @@ BattleFrontier_BattleDomeLobby_EventScript_ShowDoublesResults:: BattleFrontier_BattleDomeLobby_EventScript_ShowPrevTourneyTree:: dome_get DOME_DATA_PREV_TOURNEY_TYPE - compare VAR_RESULT, 0 - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLv50 - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLv50 - compare VAR_RESULT, 2 - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLvOpen - compare VAR_RESULT, 3 - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLvOpen + call_if_eq VAR_RESULT, 0, BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLv50 + call_if_eq VAR_RESULT, 1, BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLv50 + call_if_eq VAR_RESULT, 2, BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLvOpen + call_if_eq VAR_RESULT, 3, BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLvOpen fadescreen FADE_TO_BLACK dome_showprevtourneytree waitstate diff --git a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc index ca441cf1f8..6ca4296cc0 100644 --- a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc @@ -19,8 +19,7 @@ BattleFrontier_BattleDomePreBattleRoom_OnFrame: .2byte 0 BattleFrontier_BattleDomePreBattleRoom_EventScript_EnterRoom:: - compare VAR_0x8006, 1 - goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_ReturnFromBattle + goto_if_eq VAR_0x8006, 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReturnFromBattle frontier_set FRONTIER_DATA_RECORD_DISABLED, TRUE setvar VAR_TEMP_0, 1 applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerEnter @@ -31,8 +30,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound:: waitmessage switch VAR_RESULT @ No case? call BattleFrontier_EventScript_GetCantRecordBattle - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRoundNoRecord + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRoundNoRecord multichoice 16, 0, MULTI_TOURNEY_WITH_RECORD, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowOpponentInfo @@ -146,8 +144,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_ContinueChallenge:: special ChoosePartyForBattleFrontier waitstate frontier_resetsketch - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound dome_set DOME_DATA_SELECTED_MONS dome_reduceparty dome_setopponent @@ -163,7 +160,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_ContinueChallenge:: waitmovement 0 closedoor 5, 1 waitdooranim - warp MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM, 255, 9, 5 + warp MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM, 9, 5 setvar VAR_TEMP_0, 0 waitstate end diff --git a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc index 24f5ebe103..cf44e3118e 100644 --- a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc @@ -19,14 +19,11 @@ BattleFrontier_BattleFactoryBattleRoom_MapScripts:: BattleFrontier_BattleFactoryBattleRoom_OnTransition: frontier_settrainers checkplayergender - compare VAR_RESULT, MALE - call_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_SetPlayerGfxMale - compare VAR_RESULT, FEMALE - call_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_SetPlayerGfxFemale + call_if_eq VAR_RESULT, MALE, BattleFrontier_BattleFactoryBattleRoom_EventScript_SetPlayerGfxMale + call_if_eq VAR_RESULT, FEMALE, BattleFrontier_BattleFactoryBattleRoom_EventScript_SetPlayerGfxFemale frontier_getbrainstatus copyvar VAR_TEMP_F, VAR_RESULT - compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY - goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_SetUpFactoryHeadObj + goto_if_ne VAR_RESULT, FRONTIER_BRAIN_NOT_READY, BattleFrontier_BattleFactoryBattleRoom_EventScript_SetUpFactoryHeadObj end BattleFrontier_BattleFactoryBattleRoom_EventScript_SetUpFactoryHeadObj:: @@ -41,8 +38,7 @@ BattleFrontier_BattleFactoryBattleRoom_OnWarp: BattleFrontier_BattleFactoryBattleRoom_EventScript_HideObjects:: setvar VAR_TEMP_1, 1 hideobjectat OBJ_EVENT_ID_PLAYER, MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM - compare VAR_TEMP_F, FRONTIER_BRAIN_NOT_READY - goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_EndHideObjects + goto_if_ne VAR_TEMP_F, FRONTIER_BRAIN_NOT_READY, BattleFrontier_BattleFactoryBattleRoom_EventScript_EndHideObjects hideobjectat LOCALID_OPPONENT, MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM BattleFrontier_BattleFactoryBattleRoom_EventScript_EndHideObjects:: end @@ -71,8 +67,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_EnterRoomFactoryHeadBattle:: end BattleFrontier_BattleFactoryBattleRoom_EventScript_EnterRoom:: - compare VAR_TEMP_F, FRONTIER_BRAIN_NOT_READY - goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_EnterRoomFactoryHeadBattle + goto_if_ne VAR_TEMP_F, FRONTIER_BRAIN_NOT_READY, BattleFrontier_BattleFactoryBattleRoom_EventScript_EnterRoomFactoryHeadBattle applymovement LOCALID_PLAYER, BattleFrontier_BattleFactoryBattleRoom_Movement_PlayerEnterRoom applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleFactoryBattleRoom_Movement_PlayerEnterRoom waitmovement 0 @@ -84,8 +79,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_EnterRoom:: applymovement LOCALID_OPPONENT, BattleFrontier_BattleFactoryBattleRoom_Movement_OpponentEnter waitmovement 0 BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleOpponent:: - compare VAR_TEMP_F, FRONTIER_BRAIN_NOT_READY - goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNoland + goto_if_ne VAR_TEMP_F, FRONTIER_BRAIN_NOT_READY, BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNoland palace_getopponentintro lockall msgbox gStringVar4, MSGBOX_DEFAULT @@ -105,8 +99,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyLost:: BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedOpponent:: factory_get FACTORY_DATA_WIN_STREAK_SWAPS - compare VAR_RESULT, MAX_STREAK - goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_IncrementWinStreak + goto_if_eq VAR_RESULT, MAX_STREAK, BattleFrontier_BattleFactoryBattleRoom_EventScript_IncrementWinStreak addvar VAR_RESULT, 1 setorcopyvar VAR_0x8006, VAR_RESULT factory_set FACTORY_DATA_WIN_STREAK_SWAPS @ uses VAR_0x8006 above @@ -119,7 +112,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_IncrementBattleNum:: switch VAR_RESULT case 7, BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyWon setvar VAR_0x8006, 1 - warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM, 255, 8, 8 + warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM, 8, 8 waitstate BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyWon:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON @@ -131,21 +124,18 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNoland:: case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNolandSilver case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNolandGold frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH - compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNolandSilver + goto_if_ne VAR_RESULT, FALSE, BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNolandSilver msgbox BattleFrontier_BattleFactoryBattleRoom_Text_NolandImFactoryHead, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNolandSilver:: msgbox BattleFrontier_BattleFactoryBattleRoom_Text_ShakeOutKnowledgeBringItOn, MSGBOX_DEFAULT call BattleFrontier_BattleFactoryBattleRoom_EventScript_DoNolandBattle - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandSilver + goto_if_eq VAR_RESULT, 1, BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandSilver goto BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyLost BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandSilver:: frontier_getsymbols - compare VAR_RESULT, 0 - goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNoland + goto_if_ne VAR_RESULT, 0, BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNoland msgbox BattleFrontier_BattleFactoryBattleRoom_Text_NolandLetsSeeFrontierPass, MSGBOX_DEFAULT closemessage applymovement LOCALID_PLAYER, BattleFrontier_BattleFactoryBattleRoom_Movement_PlayerApproachNoland @@ -160,21 +150,18 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandSilver:: BattleFrontier_BattleFactoryBattleRoom_EventScript_IntroNolandGold:: frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH - compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNolandGold + goto_if_ne VAR_RESULT, FALSE, BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNolandGold msgbox BattleFrontier_BattleFactoryBattleRoom_Text_HarderLookThanLastTime, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleNolandGold:: msgbox BattleFrontier_BattleFactoryBattleRoom_Text_AllRightBringItOn, MSGBOX_DEFAULT call BattleFrontier_BattleFactoryBattleRoom_EventScript_DoNolandBattle - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandGold + goto_if_eq VAR_RESULT, 1, BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandGold goto BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyLost BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandGold:: frontier_getsymbols - compare VAR_RESULT, 2 - goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNoland + goto_if_eq VAR_RESULT, 2, BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNoland msgbox BattleFrontier_BattleFactoryBattleRoom_Text_OutOfMyLeagueLetsSeePass, MSGBOX_DEFAULT waitmessage applymovement LOCALID_PLAYER, BattleFrontier_BattleFactoryBattleRoom_Movement_PlayerApproachNoland @@ -199,14 +186,12 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_DoNolandBattle:: BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNoland:: factory_get FACTORY_DATA_WIN_STREAK_SWAPS - compare VAR_RESULT, MAX_STREAK - goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_IncrementWinStreak + goto_if_eq VAR_RESULT, MAX_STREAK, BattleFrontier_BattleFactoryBattleRoom_EventScript_IncrementWinStreak addvar VAR_RESULT, 1 setorcopyvar VAR_0x8006, VAR_RESULT factory_set FACTORY_DATA_WIN_STREAK_SWAPS @ uses VAR_0x8006 above factory_get FACTORY_DATA_WIN_STREAK - compare VAR_RESULT, MAX_STREAK - goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_IncrementBattleNum + goto_if_eq VAR_RESULT, MAX_STREAK, BattleFrontier_BattleFactoryBattleRoom_EventScript_IncrementBattleNum addvar VAR_RESULT, 1 factory_set FACTORY_DATA_WIN_STREAK, VAR_RESULT frontier_get FRONTIER_DATA_BATTLE_NUM @@ -245,14 +230,13 @@ BattleFrontier_BattleFactoryBattleRoom_Movement_NolandMoveToBattle: BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobby:: copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE - compare VAR_RESULT, FRONTIER_MODE_DOUBLES - goto_if_eq BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyDoubles - warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY, 255, 4, 8 + goto_if_eq VAR_RESULT, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyDoubles + warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY, 4, 8 waitstate end BattleFrontier_BattleFactoryBattleRoom_EventScript_WarpToLobbyDoubles:: - warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY, 255, 14, 8 + warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY, 14, 8 waitstate end diff --git a/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc b/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc index 3b11392947..682b2c91d1 100644 --- a/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc @@ -43,8 +43,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_QuitWithoutSaving:: BattleFrontier_BattleFactoryLobby_EventScript_WonChallenge:: lockall frontier_isbrain - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleFactoryLobby_EventScript_DefeatedFactoryHead + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleFactoryLobby_EventScript_DefeatedFactoryHead msgbox BattleFrontier_BattleFactoryLobby_Text_CongratsSevenWins, MSGBOX_DEFAULT waitmessage goto BattleFrontier_BattleFactoryLobby_EventScript_GiveBattlePoints @@ -79,8 +78,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_LostChallenge:: BattleFrontier_BattleFactoryLobby_EventScript_AskRecordBattle:: call BattleFrontier_EventScript_GetCantRecordBattle - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleFactoryLobby_EventScript_EndRecordBattle + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleFactoryLobby_EventScript_EndRecordBattle message BattleFrontier_BattleFactoryLobby_Text_RecordLastMatch waitmessage multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE @@ -126,15 +124,11 @@ BattleFrontier_BattleFactoryLobby_EventScript_DoublesAttendant:: BattleFrontier_BattleFactoryLobby_EventScript_Attendant:: special SavePlayerParty - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_WelcomeForSingleBattle - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_WelcomeForDoubleBattle + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattleFactoryLobby_EventScript_WelcomeForSingleBattle + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleFactoryLobby_EventScript_WelcomeForDoubleBattle BattleFrontier_BattleFactoryLobby_EventScript_AskTakeChallenge:: - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_TakeSinglesChallenge - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_TakeDoublesChallenge + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattleFactoryLobby_EventScript_TakeSinglesChallenge + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleFactoryLobby_EventScript_TakeDoublesChallenge waitmessage multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE switch VAR_RESULT @@ -167,21 +161,18 @@ BattleFrontier_BattleFactoryLobby_EventScript_SaveBeforeChallenge:: delay 2 call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleFactoryLobby_EventScript_CancelChallengeSaveFailed + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleFactoryLobby_EventScript_CancelChallengeSaveFailed setvar VAR_0x8006, 0 BattleFrontier_BattleFactoryLobby_EventScript_EnterChallenge:: special SavePlayerParty msgbox BattleFrontier_BattleFactoryLobby_Text_StepThisWay, MSGBOX_DEFAULT closemessage - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_TalkedToSinglesAttendant - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_TalkedToDoublesAttendant + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattleFactoryLobby_EventScript_TalkedToSinglesAttendant + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleFactoryLobby_EventScript_TalkedToDoublesAttendant applymovement VAR_LAST_TALKED, BattleFrontier_BattleFactoryLobby_Movement_AttendantEnterDoor applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleFactoryLobby_Movement_PlayerEnterDoor waitmovement 0 - warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM, 255, 8, 13 + warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM, 8, 13 setvar VAR_TEMP_0, 0 waitstate end @@ -195,10 +186,8 @@ BattleFrontier_BattleFactoryLobby_EventScript_TalkedToDoublesAttendant:: return BattleFrontier_BattleFactoryLobby_EventScript_ExplainChallenge:: - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_ExplainSinglesChallenge - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleFactoryLobby_EventScript_ExplainDoublesChallenge + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattleFactoryLobby_EventScript_ExplainSinglesChallenge + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleFactoryLobby_EventScript_ExplainDoublesChallenge goto BattleFrontier_BattleFactoryLobby_EventScript_AskTakeChallenge BattleFrontier_BattleFactoryLobby_EventScript_CancelChallengeSaveFailed:: diff --git a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc index ce3cb357c2..d54cf83570 100644 --- a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc @@ -11,8 +11,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_OnWarp: BattleFrontier_BattleFactoryPreBattleRoom_EventScript_SetUpObjects:: setvar VAR_TEMP_1, 1 - compare VAR_0x8006, 1 - goto_if_ne BattleFrontier_BattleFactoryPreBattleRoom_EventScript_TurnPlayerNorth + goto_if_ne VAR_0x8006, 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_TurnPlayerNorth setobjectxy LOCALID_ATTENDANT, 8, 7 turnobject LOCALID_ATTENDANT, DIR_SOUTH BattleFrontier_BattleFactoryPreBattleRoom_EventScript_TurnPlayerNorth:: @@ -24,14 +23,12 @@ BattleFrontier_BattleFactoryPreBattleRoom_OnFrame: .2byte 0 BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterRoom:: - compare VAR_0x8006, 1 - goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReturnToRoomFromBattle + goto_if_eq VAR_0x8006, 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReturnToRoomFromBattle setvar VAR_TEMP_0, 1 applymovement LOCALID_ATTENDANT, BattleFrontier_BattleFactoryPreBattleRoom_Movement_AttendantEnterRoom applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleFactoryPreBattleRoom_Movement_PlayerEnterRoom waitmovement 0 - compare VAR_0x8006, 2 - goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ResumeChallenge + goto_if_eq VAR_0x8006, 2, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ResumeChallenge factory_generaterentalmons factory_generateopponentmons factory_getopponentmontype @@ -49,12 +46,10 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterBattleRoom:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_RightThisWay, MSGBOX_DEFAULT closemessage call BattleFrontier_EventScript_GetLvlMode - compare VAR_RESULT, FRONTIER_LVL_50 - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_WalkToBattleRoomLv50 - compare VAR_RESULT, FRONTIER_LVL_OPEN - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_WalkToBattleRoomLvOpen + call_if_eq VAR_RESULT, FRONTIER_LVL_50, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_WalkToBattleRoomLv50 + call_if_eq VAR_RESULT, FRONTIER_LVL_OPEN, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_WalkToBattleRoomLvOpen waitmovement 0 - warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM, 255, 6, 11 + warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM, 6, 11 waitstate end @@ -66,8 +61,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReturnToRoomFromBattle:: waitfanfare special HealPlayerParty frontier_getbrainstatus - compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY - goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForRegularOpponent + goto_if_eq VAR_RESULT, FRONTIER_BRAIN_NOT_READY, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForRegularOpponent playse SE_POKENAV_CALL waitse msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_WaitFewMoments, MSGBOX_DEFAULT @@ -86,25 +80,17 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReturnToRoomFromBattle:: BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponent:: frontier_getbrainstatus - compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY - goto_if_ne BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHead + goto_if_ne VAR_RESULT, FRONTIER_BRAIN_NOT_READY, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHead BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForRegularOpponent:: frontier_get FRONTIER_DATA_BATTLE_NUM - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor2ndOpponent - compare VAR_RESULT, 2 - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor3rdOpponent - compare VAR_RESULT, 3 - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor4thOpponent - compare VAR_RESULT, 4 - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor5thOpponent - compare VAR_RESULT, 5 - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor6thOpponent - compare VAR_RESULT, 6 - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor7thOpponent + call_if_eq VAR_RESULT, 1, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor2ndOpponent + call_if_eq VAR_RESULT, 2, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor3rdOpponent + call_if_eq VAR_RESULT, 3, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor4thOpponent + call_if_eq VAR_RESULT, 4, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor5thOpponent + call_if_eq VAR_RESULT, 5, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor6thOpponent + call_if_eq VAR_RESULT, 6, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReadyFor7thOpponent call BattleFrontier_EventScript_GetCantRecordBattle - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponentNoRecord + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForOpponentNoRecord multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapMon @@ -168,8 +154,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_SwapMons:: fadescreen FADE_TO_BLACK factory_swapmons waitstate - compare VAR_RESULT, TRUE @ Did player keep current pokemon - goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterBattleRoom + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterBattleRoom @ Did player keep current pokemon factory_setswapped msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_YourSwapIsComplete, MSGBOX_DEFAULT goto BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterBattleRoom @@ -223,42 +208,24 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ResumeChallenge:: BattleFrontier_BattleFactoryPreBattleRoom_EventScript_CommentOnOpponentType:: msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_InvestigatedUpcomingOpponent, MSGBOX_DEFAULT - compare VAR_0x8005, TYPE_NORMAL - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesNormal - compare VAR_0x8005, TYPE_FIGHTING - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesFighting - compare VAR_0x8005, TYPE_FLYING - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesFlying - compare VAR_0x8005, TYPE_POISON - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesPoison - compare VAR_0x8005, TYPE_GROUND - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesGround - compare VAR_0x8005, TYPE_ROCK - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesRock - compare VAR_0x8005, TYPE_BUG - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesBug - compare VAR_0x8005, TYPE_GHOST - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesGhost - compare VAR_0x8005, TYPE_STEEL - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesSteel - compare VAR_0x8005, TYPE_FIRE - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesFire - compare VAR_0x8005, TYPE_WATER - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesWater - compare VAR_0x8005, TYPE_GRASS - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesGrass - compare VAR_0x8005, TYPE_ELECTRIC - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesElectric - compare VAR_0x8005, TYPE_PSYCHIC - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesPsychic - compare VAR_0x8005, TYPE_ICE - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesIce - compare VAR_0x8005, TYPE_DRAGON - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesDragon - compare VAR_0x8005, TYPE_DARK - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesDark - compare VAR_0x8005, NUMBER_OF_MON_TYPES - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentHasNoMostCommonType + call_if_eq VAR_0x8005, TYPE_NORMAL, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesNormal + call_if_eq VAR_0x8005, TYPE_FIGHTING, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesFighting + call_if_eq VAR_0x8005, TYPE_FLYING, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesFlying + call_if_eq VAR_0x8005, TYPE_POISON, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesPoison + call_if_eq VAR_0x8005, TYPE_GROUND, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesGround + call_if_eq VAR_0x8005, TYPE_ROCK, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesRock + call_if_eq VAR_0x8005, TYPE_BUG, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesBug + call_if_eq VAR_0x8005, TYPE_GHOST, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesGhost + call_if_eq VAR_0x8005, TYPE_STEEL, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesSteel + call_if_eq VAR_0x8005, TYPE_FIRE, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesFire + call_if_eq VAR_0x8005, TYPE_WATER, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesWater + call_if_eq VAR_0x8005, TYPE_GRASS, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesGrass + call_if_eq VAR_0x8005, TYPE_ELECTRIC, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesElectric + call_if_eq VAR_0x8005, TYPE_PSYCHIC, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesPsychic + call_if_eq VAR_0x8005, TYPE_ICE, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesIce + call_if_eq VAR_0x8005, TYPE_DRAGON, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesDragon + call_if_eq VAR_0x8005, TYPE_DARK, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesDark + call_if_eq VAR_0x8005, NUMBER_OF_MON_TYPES, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentHasNoMostCommonType return BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentUsesNormal:: @@ -334,24 +301,15 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_OpponentHasNoMostCommonTyp return BattleFrontier_BattleFactoryPreBattleRoom_EventScript_CommentOnOpponentStyle:: - compare VAR_0x8006, FACTORY_STYLE_NONE - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleUnrestrained - compare VAR_0x8006, FACTORY_STYLE_PREPARATION - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleTotalPreparation - compare VAR_0x8006, FACTORY_STYLE_SLOW_STEADY - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleSlowAndSteady - compare VAR_0x8006, FACTORY_STYLE_ENDURANCE - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleEndurance - compare VAR_0x8006, FACTORY_STYLE_HIGH_RISK - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleHighRisk - compare VAR_0x8006, FACTORY_STYLE_WEAKENING - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleWeakenFoe - compare VAR_0x8006, FACTORY_STYLE_UNPREDICTABLE - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleImpossibleToPredict - compare VAR_0x8006, FACTORY_STYLE_WEATHER - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleDependsOnFlow - compare VAR_0x8006, FACTORY_NUM_STYLES - call_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleFlexible + call_if_eq VAR_0x8006, FACTORY_STYLE_NONE, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleUnrestrained + call_if_eq VAR_0x8006, FACTORY_STYLE_PREPARATION, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleTotalPreparation + call_if_eq VAR_0x8006, FACTORY_STYLE_SLOW_STEADY, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleSlowAndSteady + call_if_eq VAR_0x8006, FACTORY_STYLE_ENDURANCE, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleEndurance + call_if_eq VAR_0x8006, FACTORY_STYLE_HIGH_RISK, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleHighRisk + call_if_eq VAR_0x8006, FACTORY_STYLE_WEAKENING, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleWeakenFoe + call_if_eq VAR_0x8006, FACTORY_STYLE_UNPREDICTABLE, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleImpossibleToPredict + call_if_eq VAR_0x8006, FACTORY_STYLE_WEATHER, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleDependsOnFlow + call_if_eq VAR_0x8006, FACTORY_NUM_STYLES, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleFlexible return BattleFrontier_BattleFactoryPreBattleRoom_EventScript_StyleUnrestrained:: @@ -394,8 +352,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHead:: message BattleFrontier_BattleFactoryPreBattleRoom_Text_PreparedToFaceHead waitmessage call BattleFrontier_EventScript_GetCantRecordBattle - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHeadNoRecord + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForHeadNoRecord multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskSwapBeforeHead diff --git a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc index 13015dd3e1..2e9366d44b 100644 --- a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc @@ -21,10 +21,8 @@ BattleFrontier_BattlePalaceBattleRoom_OnTransition: BattleFrontier_BattlePalaceBattleRoom_EventScript_SetPlayerGfx:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_SetPlayerGfxMale - compare VAR_RESULT, FEMALE - goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_SetPlayerGfxFemale + goto_if_eq VAR_RESULT, MALE, BattleFrontier_BattlePalaceBattleRoom_EventScript_SetPlayerGfxMale + goto_if_eq VAR_RESULT, FEMALE, BattleFrontier_BattlePalaceBattleRoom_EventScript_SetPlayerGfxFemale return @ The opponent's gfx are set to the players by default @@ -45,8 +43,7 @@ BattleFrontier_BattlePalaceBattleRoom_OnFrame: BattleFrontier_BattlePalaceBattleRoom_EventScript_EnterRoom:: showobjectat LOCALID_PLAYER, MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM frontier_get FRONTIER_DATA_BATTLE_NUM - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_BeginChallenge + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_BeginChallenge applymovement LOCALID_PLAYER, BattleFrontier_BattlePalaceBattleRoom_Movement_PlayerReturnToChallenge waitmovement 0 applymovement LOCALID_ATTENDANT, BattleFrontier_BattlePalaceBattleRoom_Movement_FaceDown @@ -95,24 +92,16 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedOpponent:: BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent:: frontier_getbrainstatus copyvar VAR_TEMP_F, VAR_RESULT - compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY - goto_if_ne BattleFrontier_BattlePalaceBattleRoom_EventScript_MavenUpNext + goto_if_ne VAR_RESULT, FRONTIER_BRAIN_NOT_READY, BattleFrontier_BattlePalaceBattleRoom_EventScript_MavenUpNext frontier_get FRONTIER_DATA_BATTLE_NUM - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor2ndOpponent - compare VAR_RESULT, 2 - call_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor3rdOpponent - compare VAR_RESULT, 3 - call_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor4thOpponent - compare VAR_RESULT, 4 - call_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor5thOpponent - compare VAR_RESULT, 5 - call_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor6thOpponent - compare VAR_RESULT, 6 - call_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor7thOpponent + call_if_eq VAR_RESULT, 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor2ndOpponent + call_if_eq VAR_RESULT, 2, BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor3rdOpponent + call_if_eq VAR_RESULT, 3, BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor4thOpponent + call_if_eq VAR_RESULT, 4, BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor5thOpponent + call_if_eq VAR_RESULT, 5, BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor6thOpponent + call_if_eq VAR_RESULT, 6, BattleFrontier_BattlePalaceBattleRoom_EventScript_ReadyFor7thOpponent call BattleFrontier_EventScript_GetCantRecordBattle - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponentNoRecord + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponentNoRecord multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_ContinueChallenge @@ -179,16 +168,14 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_PauseChallenge:: end BattleFrontier_BattlePalaceBattleRoom_EventScript_MavenUpNext:: - compare VAR_TEMP_2, 1 - goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMaven + goto_if_eq VAR_TEMP_2, 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMaven msgbox BattleFrontier_BattlePalaceBattleRoom_Text_ChallengingPalaceMaven, MSGBOX_DEFAULT setvar VAR_TEMP_2, 1 BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMaven:: message BattleFrontier_BattlePalaceBattleRoom_Text_ReadyForPalaceMaven waitmessage call BattleFrontier_EventScript_GetCantRecordBattle - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMavenNoRecord + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForMavenNoRecord multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenser @@ -225,22 +212,19 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenser:: case FRONTIER_BRAIN_STREAK, BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenserSilver case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenserGold frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH - compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenserSilver + goto_if_ne VAR_RESULT, FALSE, BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenserSilver msgbox BattleFrontier_BattlePalaceBattleRoom_Text_SpenserFirstIntro, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenserSilver:: msgbox BattleFrontier_BattlePalaceBattleRoom_Text_ProveYourBondWithMons, MSGBOX_DEFAULT call BattleFrontier_BattlePalaceBattleRoom_EventScript_DoPalaceBattle - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserSilver + goto_if_eq VAR_RESULT, 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserSilver goto BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyLost BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserSilver:: palace_incrementstreak frontier_getsymbols - compare VAR_RESULT, 0 - goto_if_ne BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyWon + goto_if_ne VAR_RESULT, 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyWon msgbox BattleFrontier_BattlePalaceBattleRoom_Text_SpenserPostSilverBattle, MSGBOX_DEFAULT applymovement LOCALID_PLAYER, BattleFrontier_BattlePalaceBattleRoom_Movement_FaceUp applymovement LOCALID_ATTENDANT, BattleFrontier_BattlePalaceBattleRoom_Movement_FaceDown @@ -260,22 +244,19 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserSilver:: BattleFrontier_BattlePalaceBattleRoom_EventScript_IntroSpenserGold:: frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH - compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenserGold + goto_if_ne VAR_RESULT, FALSE, BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenserGold msgbox BattleFrontier_BattlePalaceBattleRoom_Text_SpenserThisTimeWontHoldBack, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattlePalaceBattleRoom_EventScript_BattleSpenserGold:: msgbox BattleFrontier_BattlePalaceBattleRoom_Text_Kaaah, MSGBOX_DEFAULT call BattleFrontier_BattlePalaceBattleRoom_EventScript_DoPalaceBattle - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserGold + goto_if_eq VAR_RESULT, 1, BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserGold goto BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyLost BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserGold:: palace_incrementstreak frontier_getsymbols - compare VAR_RESULT, 2 - goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyWon + goto_if_eq VAR_RESULT, 2, BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyWon msgbox BattleFrontier_BattlePalaceBattleRoom_Text_SpenserYourTeamIsAdmirable, MSGBOX_DEFAULT applymovement LOCALID_PLAYER, BattleFrontier_BattlePalaceBattleRoom_Movement_FaceUp applymovement LOCALID_ATTENDANT, BattleFrontier_BattlePalaceBattleRoom_Movement_FaceDown @@ -417,14 +398,13 @@ BattleFrontier_BattlePalaceBattleRoom_Movement_UnusedOpponentEnter3: BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobby:: copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE - compare VAR_RESULT, FRONTIER_MODE_DOUBLES - goto_if_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyDoubles - warp MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY, 255, 5, 7 + goto_if_eq VAR_RESULT, FRONTIER_MODE_DOUBLES, BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyDoubles + warp MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY, 5, 7 waitstate end BattleFrontier_BattlePalaceBattleRoom_EventScript_WarpToLobbyDoubles:: - warp MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY, 255, 19, 7 + warp MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY, 19, 7 waitstate end diff --git a/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc b/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc index 011170bae8..ad2a2ee9f5 100644 --- a/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc @@ -15,20 +15,14 @@ BattleFrontier_BattlePalaceCorridor_EventScript_WalkThroughCorridor:: waitmovement 0 lockall palace_getcomment - compare VAR_RESULT, 0 - call_if_eq BattleFrontier_BattlePalaceCorridor_EventScript_RandomComment1 - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattlePalaceCorridor_EventScript_RandomComment2 - compare VAR_RESULT, 2 - call_if_eq BattleFrontier_BattlePalaceCorridor_EventScript_RandomComment3 - compare VAR_RESULT, 3 - call_if_eq BattleFrontier_BattlePalaceCorridor_EventScript_StreakComment - compare VAR_RESULT, 4 - call_if_eq BattleFrontier_BattlePalaceCorridor_EventScript_LongStreakComment + call_if_eq VAR_RESULT, 0, BattleFrontier_BattlePalaceCorridor_EventScript_RandomComment1 + call_if_eq VAR_RESULT, 1, BattleFrontier_BattlePalaceCorridor_EventScript_RandomComment2 + call_if_eq VAR_RESULT, 2, BattleFrontier_BattlePalaceCorridor_EventScript_RandomComment3 + call_if_eq VAR_RESULT, 3, BattleFrontier_BattlePalaceCorridor_EventScript_StreakComment + call_if_eq VAR_RESULT, 4, BattleFrontier_BattlePalaceCorridor_EventScript_LongStreakComment closemessage frontier_get FRONTIER_DATA_LVL_MODE - compare VAR_RESULT, FRONTIER_LVL_OPEN - goto_if_eq BattleFrontier_BattlePalaceCorridor_EventScript_WalkToOpenBattleRoom + goto_if_eq VAR_RESULT, FRONTIER_LVL_OPEN, BattleFrontier_BattlePalaceCorridor_EventScript_WalkToOpenBattleRoom applymovement LOCALID_ATTENDANT, BattleFrontier_BattlePalaceCorridor_Movement_AttendantWalkTo50BattleRoom applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePalaceCorridor_Movement_PlayerWalkTo50BattleRoom waitmovement 0 @@ -53,7 +47,7 @@ BattleFrontier_BattlePalaceCorridor_EventScript_WalkToOpenBattleRoom:: closedoor 10, 3 waitdooranim BattleFrontier_BattlePalaceCorridor_EventScript_WarpToBattleRoom:: - warp MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM, 255, 7, 4 + warp MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM, 7, 4 waitstate end diff --git a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc index a51fa48fde..481f7000db 100644 --- a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc @@ -41,8 +41,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_QuitWithoutSaving:: BattleFrontier_BattlePalaceLobby_EventScript_WonChallenge:: lockall frontier_isbrain - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_DefeatedMaven + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattlePalaceLobby_EventScript_DefeatedMaven msgbox BattleFrontier_BattlePalaceLobby_Text_FirmTrueBondsFor7WinStreak, MSGBOX_DEFAULT goto BattleFrontier_BattlePalaceLobby_EventScript_GiveBattlePoints @@ -81,8 +80,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_SaveAfterChallenge:: playse SE_SAVE waitse call BattleFrontier_EventScript_GetCantRecordBattle - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_EndSaveAfterChallenge + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattlePalaceLobby_EventScript_EndSaveAfterChallenge message BattleFrontier_BattlePalaceLobby_Text_LikeToRecordMatch waitmessage multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE @@ -126,18 +124,13 @@ BattleFrontier_BattlePalaceLobby_EventScript_DoublesAttendant:: BattleFrontier_BattlePalaceLobby_EventScript_Attendant:: palace_get PALACE_DATA_PRIZE - compare VAR_RESULT, ITEM_NONE - goto_if_ne BattleFrontier_BattlePalaceLobby_EventScript_WonChallenge + goto_if_ne VAR_RESULT, ITEM_NONE, BattleFrontier_BattlePalaceLobby_EventScript_WonChallenge special SavePlayerParty - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_WelcomeForSingleBattle - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_WelcomeForDoubleBattle + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattlePalaceLobby_EventScript_WelcomeForSingleBattle + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattlePalaceLobby_EventScript_WelcomeForDoubleBattle BattleFrontier_BattlePalaceLobby_EventScript_AskTakeChallenge:: - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_AskTakeSingleBattleChallenge - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_AskTakeDoubleBattleChallenge + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattlePalaceLobby_EventScript_AskTakeSingleBattleChallenge + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattlePalaceLobby_EventScript_AskTakeDoubleBattleChallenge waitmessage multichoice 17, 6, MULTI_CHALLENGEINFO, FALSE switch VAR_RESULT @@ -154,8 +147,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_TryEnterChallenge:: case FRONTIER_LVL_TENT, BattleFrontier_BattlePalaceLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePalaceLobby_EventScript_CancelChallenge frontier_checkineligible - compare VAR_0x8004, TRUE - goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_NotEnoughValidMons + goto_if_eq VAR_0x8004, TRUE, BattleFrontier_BattlePalaceLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattlePalaceLobby_Text_NowSelectThreeMons, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK @@ -164,8 +156,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_TryEnterChallenge:: setvar VAR_0x8005, FRONTIER_PARTY_SIZE special ChoosePartyForBattleFrontier waitstate - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_LoadPartyAndCancelChallenge + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattlePalaceLobby_EventScript_LoadPartyAndCancelChallenge msgbox BattleFrontier_BattlePalaceLobby_Text_MustSaveBeforeChallenge2, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattlePalaceLobby_EventScript_LoadPartyAndCancelChallenge @@ -184,22 +175,20 @@ BattleFrontier_BattlePalaceLobby_EventScript_SaveBeforeChallenge:: delay 2 call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_CancelChallengeSaveFailed + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattlePalaceLobby_EventScript_CancelChallengeSaveFailed BattleFrontier_BattlePalaceLobby_EventScript_EnterChallenge:: special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox BattleFrontier_BattlePalaceLobby_Text_FollowMe, MSGBOX_DEFAULT closemessage call BattleFrontier_BattlePalaceLobby_EventScript_WalkToDoor - warp MAP_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR, 255, 8, 13 + warp MAP_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR, 8, 13 setvar VAR_TEMP_0, 0 waitstate end BattleFrontier_BattlePalaceLobby_EventScript_ExplainChallenge:: - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - goto_if_eq BattleFrontier_BattlePalaceLobby_EventScript_ExplainDoublesChallenge + goto_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattlePalaceLobby_EventScript_ExplainDoublesChallenge msgbox BattleFrontier_BattlePalaceLobby_Text_ExplainSingleBattleChallenge, MSGBOX_DEFAULT goto BattleFrontier_BattlePalaceLobby_EventScript_AskTakeChallenge @@ -249,25 +238,19 @@ BattleFrontier_BattlePalaceLobby_EventScript_AskTakeDoubleBattleChallenge:: return BattleFrontier_BattlePalaceLobby_EventScript_WalkToDoor:: - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_TalkedToSinglesAttendant - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_TalkedToDoublesAttendant + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattlePalaceLobby_EventScript_TalkedToSinglesAttendant + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattlePalaceLobby_EventScript_TalkedToDoublesAttendant applymovement VAR_LAST_TALKED, BattleFrontier_BattlePalaceLobby_Movement_WalkToDoor applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePalaceLobby_Movement_WalkToDoor waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_OpenSinglesHallDoor - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_OpenDoublesHallDoor + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattlePalaceLobby_EventScript_OpenSinglesHallDoor + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattlePalaceLobby_EventScript_OpenDoublesHallDoor waitdooranim applymovement VAR_LAST_TALKED, BattleFrontier_BattlePalaceLobby_Movement_AttendantEnterDoor applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePalaceLobby_Movement_PlayerEnterDoor waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_CloseSinglesHallDoor - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattlePalaceLobby_EventScript_CloseDoublesHallDoor + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattlePalaceLobby_EventScript_CloseSinglesHallDoor + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattlePalaceLobby_EventScript_CloseDoublesHallDoor waitdooranim return diff --git a/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc b/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc index 44539747b8..fe2c6ed00f 100644 --- a/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc @@ -25,7 +25,7 @@ BattleFrontier_BattlePikeCorridor_EventScript_EnterCorridor:: waitmovement 0 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 99 call BattleFrontier_BattlePike_EventScript_CloseCurtain - warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM, 255, 6, 10 + warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM, 6, 10 waitstate end diff --git a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc index ecbbafef24..320e12d996 100644 --- a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc @@ -31,7 +31,7 @@ BattleFrontier_BattlePikeLobby_EventScript_QuitWithoutSaving:: lockall msgbox BattleFrontier_BattlePikeLobby_Text_FailedToSaveBeforeQuitting, MSGBOX_DEFAULT closemessage - pike_set PIKE_DATA_WIN_STREAK 0 + pike_set PIKE_DATA_WIN_STREAK, 0 pike_set PIKE_DATA_WIN_STREAK_ACTIVE, FALSE frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 @@ -41,8 +41,7 @@ BattleFrontier_BattlePikeLobby_EventScript_QuitWithoutSaving:: BattleFrontier_BattlePikeLobby_EventScript_WonChallenge:: lockall frontier_isbrain - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattlePikeLobby_EventScript_DefeatedQueen + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattlePikeLobby_EventScript_DefeatedQueen msgbox BattleFrontier_BattlePikeLobby_Text_PossessLuckInAbundance, MSGBOX_DEFAULT waitmessage goto BattleFrontier_BattlePikeLobby_EventScript_GiveBattlePoints @@ -116,8 +115,7 @@ BattleFrontier_BattlePikeLobby_EventScript_TryEnterChallenge:: case FRONTIER_LVL_TENT, BattleFrontier_BattlePikeLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePikeLobby_EventScript_CancelChallenge frontier_checkineligible - compare VAR_0x8004, TRUE - goto_if_eq BattleFrontier_BattlePikeLobby_EventScript_NotEnoughValidMons + goto_if_eq VAR_0x8004, TRUE, BattleFrontier_BattlePikeLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattlePikeLobby_Text_PleaseChooseThreeMons, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK @@ -126,8 +124,7 @@ BattleFrontier_BattlePikeLobby_EventScript_TryEnterChallenge:: setvar VAR_0x8005, FRONTIER_PARTY_SIZE special ChoosePartyForBattleFrontier waitstate - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattlePikeLobby_EventScript_LoadPartyAndCancelChallenge + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattlePikeLobby_EventScript_LoadPartyAndCancelChallenge msgbox BattleFrontier_BattlePikeLobby_Text_SaveBeforeChallenge, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattlePikeLobby_EventScript_LoadPartyAndCancelChallenge @@ -149,8 +146,7 @@ BattleFrontier_BattlePikeLobby_EventScript_SaveBeforeChallenge:: call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 pike_savehelditems - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattlePikeLobby_EventScript_CancelChallengeSaveFailed + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattlePikeLobby_EventScript_CancelChallengeSaveFailed special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox BattleFrontier_BattlePikeLobby_Text_StepThisWay, MSGBOX_DEFAULT @@ -159,7 +155,7 @@ BattleFrontier_BattlePikeLobby_EventScript_SaveBeforeChallenge:: call BattleFrontier_BattlePikeLobby_EventScript_WalkToCorridor special HealPlayerParty call BattleFrontier_BattlePike_EventScript_CloseCurtain - warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR, 255, 6, 7 + warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR, 6, 7 setvar VAR_TEMP_0, 0 waitstate end diff --git a/data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc index 15ebbeb3fd..e0246ed57d 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeRoomFinal/scripts.inc @@ -18,7 +18,7 @@ BattleFrontier_BattlePikeRoomFinal_EventScript_EnterRoom:: msgbox BattleFrontier_BattlePikeRoomFinal_Text_CongratsThisWayPlease, MSGBOX_DEFAULT closemessage releaseall - warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 + warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 5, 6 waitstate end diff --git a/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc index 5bd04bfb40..45f042e4f8 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc @@ -44,7 +44,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_EnterSingleBattleRoom:: case 1, BattleFrontier_BattlePikeRoomNormal_EventScript_WonSingleBattle BattleFrontier_BattlePikeRoomNormal_EventScript_WarpToLobbyLost:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST - warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 + warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 5, 6 waitstate end @@ -137,21 +137,18 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_LucyEnter:: case FRONTIER_BRAIN_STREAK, BattleFrontier_BattlePikeRoomNormal_EventScript_BattleLucySilver case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattlePikeRoomNormal_EventScript_BattleLucyGold frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH - compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattlePikeRoomNormal_EventScript_BattleLucySilver + goto_if_ne VAR_RESULT, FALSE, BattleFrontier_BattlePikeRoomNormal_EventScript_BattleLucySilver msgbox BattleFrontier_BattlePikeRoomNormal_Text_ImThePikeQueen, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattlePikeRoomNormal_EventScript_BattleLucySilver:: msgbox BattleFrontier_BattlePikeRoomNormal_Text_HopeYouDidntUseUpLuck, MSGBOX_DEFAULT call BattleFrontier_BattlePikeRoomNormal_EventScript_DoPikeQueenBattle - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucySilver + goto_if_eq VAR_RESULT, 1, BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucySilver goto BattleFrontier_BattlePikeRoomNormal_EventScript_WarpToLobbyLost BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucySilver:: frontier_getsymbols - compare VAR_RESULT, 0 - goto_if_ne BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucy + goto_if_ne VAR_RESULT, 0, BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucy msgbox BattleFrontier_BattlePikeRoomNormal_Text_LucyShowMeFrontierPass, MSGBOX_DEFAULT waitmessage playfanfare MUS_OBTAIN_SYMBOL @@ -165,21 +162,18 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucySilver:: BattleFrontier_BattlePikeRoomNormal_EventScript_IntroLucyGold:: frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH - compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattlePikeRoomNormal_EventScript_BattleLucyGold + goto_if_ne VAR_RESULT, FALSE, BattleFrontier_BattlePikeRoomNormal_EventScript_BattleLucyGold msgbox BattleFrontier_BattlePikeRoomNormal_Text_LucyYouAgain, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattlePikeRoomNormal_EventScript_BattleLucyGold:: msgbox BattleFrontier_BattlePikeRoomNormal_Text_NowComeOn, MSGBOX_DEFAULT call BattleFrontier_BattlePikeRoomNormal_EventScript_DoPikeQueenBattle - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucyGold + goto_if_eq VAR_RESULT, 1, BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucyGold goto BattleFrontier_BattlePikeRoomNormal_EventScript_WarpToLobbyLost BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucyGold:: frontier_getsymbols - compare VAR_RESULT, 2 - goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucy + goto_if_eq VAR_RESULT, 2, BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucy msgbox BattleFrontier_BattlePikeRoomNormal_Text_LucyFrontierPass, MSGBOX_DEFAULT waitmessage playfanfare MUS_OBTAIN_SYMBOL @@ -199,7 +193,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucy:: waitmovement 0 pike_get PIKE_DATA_WIN_STREAK addvar VAR_RESULT, 1 - pike_set PIKE_DATA_WIN_STREAK VAR_RESULT + pike_set PIKE_DATA_WIN_STREAK, VAR_RESULT call BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom waitstate end @@ -290,10 +284,8 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_EnterStatusRoom:: waitmovement 0 pike_getstatusmon copyvar VAR_0x8004, VAR_RESULT - compare VAR_0x8004, PIKE_STATUSMON_KIRLIA - call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaAttack - compare VAR_0x8004, PIKE_STATUSMON_DUSCLOPS - call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_DusclopsAttack + call_if_eq VAR_0x8004, PIKE_STATUSMON_KIRLIA, BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaAttack + call_if_eq VAR_0x8004, PIKE_STATUSMON_DUSCLOPS, BattleFrontier_BattlePikeRoomNormal_EventScript_DusclopsAttack msgbox BattleFrontier_BattlePikeRoomNormal_Text_AttacksWhenStartled, MSGBOX_DEFAULT closemessage releaseall @@ -306,14 +298,10 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaAttack:: playmoncry SPECIES_KIRLIA, CRY_MODE_NORMAL waitmoncry pike_getstatus - compare VAR_RESULT, PIKE_STATUS_TOXIC - call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaUsedToxic - compare VAR_RESULT, PIKE_STATUS_BURN - call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaUsedWillOWisp - compare VAR_RESULT, PIKE_STATUS_PARALYSIS - call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaUsedThunderWave - compare VAR_RESULT, PIKE_STATUS_SLEEP - call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaUsedHypnosis + call_if_eq VAR_RESULT, PIKE_STATUS_TOXIC, BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaUsedToxic + call_if_eq VAR_RESULT, PIKE_STATUS_BURN, BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaUsedWillOWisp + call_if_eq VAR_RESULT, PIKE_STATUS_PARALYSIS, BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaUsedThunderWave + call_if_eq VAR_RESULT, PIKE_STATUS_SLEEP, BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaUsedHypnosis pike_flashscreen waitstate applymovement LOCALID_OBJ_0, BattleFrontier_BattlePikeRoomNormal_Movement_NPCApproachMon @@ -341,10 +329,8 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_DusclopsAttack:: playmoncry SPECIES_DUSCLOPS, CRY_MODE_NORMAL waitmoncry pike_getstatus - compare VAR_RESULT, PIKE_STATUS_FREEZE - call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_DusclopsUsedIceBeam - compare VAR_RESULT, PIKE_STATUS_BURN - call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_DusclopsUsedWillOWisp + call_if_eq VAR_RESULT, PIKE_STATUS_FREEZE, BattleFrontier_BattlePikeRoomNormal_EventScript_DusclopsUsedIceBeam + call_if_eq VAR_RESULT, PIKE_STATUS_BURN, BattleFrontier_BattlePikeRoomNormal_EventScript_DusclopsUsedWillOWisp pike_flashscreen waitstate applymovement LOCALID_OBJ_0, BattleFrontier_BattlePikeRoomNormal_Movement_NPCApproachMon @@ -569,10 +555,8 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_StatusNPC:: BattleFrontier_BattlePikeRoomNormal_EventScript_HealNPC:: pike_healonetwomons - compare VAR_RESULT, 2 - call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_WillRestoreTwoMons - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_WillRestoreOneMon + call_if_eq VAR_RESULT, 2, BattleFrontier_BattlePikeRoomNormal_EventScript_WillRestoreTwoMons + call_if_eq VAR_RESULT, 1, BattleFrontier_BattlePikeRoomNormal_EventScript_WillRestoreOneMon playfanfare MUS_HEAL waitfanfare msgbox BattleFrontier_BattlePikeRoomNormal_Text_BestOfLuckFarewell, MSGBOX_DEFAULT @@ -608,46 +592,46 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_StatusMon:: end BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesMostlyClosed:: - setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage1_Tile0, 1 - setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage1_Tile1, 1 - setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage1_Tile2, 1 - setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage1_Tile3, 1 - setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage1_Tile4, 1 - setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage1_Tile5, 0 - setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage1_Tile6, 1 + setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage1_Tile0, TRUE + setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage1_Tile1, TRUE + setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage1_Tile2, TRUE + setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage1_Tile3, TRUE + setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage1_Tile4, TRUE + setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage1_Tile5, FALSE + setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage1_Tile6, TRUE special DrawWholeMapView return BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesLittleClosed:: - setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage2_Tile0, 1 - setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage2_Tile1, 1 - setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage2_Tile2, 1 - setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage2_Tile3, 1 - setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage2_Tile4, 1 - setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage2_Tile5, 0 - setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage2_Tile6, 1 + setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage2_Tile0, TRUE + setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage2_Tile1, TRUE + setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage2_Tile2, TRUE + setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage2_Tile3, TRUE + setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage2_Tile4, TRUE + setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage2_Tile5, FALSE + setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage2_Tile6, TRUE special DrawWholeMapView return BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesOpen:: - setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage3_Tile0, 1 - setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage3_Tile1, 1 - setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage3_Tile2, 1 - setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage3_Tile3, 1 - setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage3_Tile4, 1 - setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage3_Tile5, 0 - setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage3_Tile6, 1 + setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage3_Tile0, TRUE + setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage3_Tile1, TRUE + setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage3_Tile2, TRUE + setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage3_Tile3, TRUE + setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage3_Tile4, TRUE + setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage3_Tile5, FALSE + setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage3_Tile6, TRUE special DrawWholeMapView return BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesClosed:: - setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage0_Tile0, 1 - setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage0_Tile1, 1 - setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage0_Tile2, 1 - setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage0_Tile3, 1 - setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage0_Tile4, 1 - setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage0_Tile5, 0 - setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage0_Tile6, 1 + setmetatile 4, 1, METATILE_BattlePike_Curtain_Stage0_Tile0, TRUE + setmetatile 3, 2, METATILE_BattlePike_Curtain_Stage0_Tile1, TRUE + setmetatile 4, 2, METATILE_BattlePike_Curtain_Stage0_Tile2, TRUE + setmetatile 5, 2, METATILE_BattlePike_Curtain_Stage0_Tile3, TRUE + setmetatile 3, 3, METATILE_BattlePike_Curtain_Stage0_Tile4, TRUE + setmetatile 4, 3, METATILE_BattlePike_Curtain_Stage0_Tile5, FALSE + setmetatile 5, 3, METATILE_BattlePike_Curtain_Stage0_Tile6, TRUE special DrawWholeMapView return diff --git a/data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc index ee9e548f6e..19926b9675 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeRoomWildMons/scripts.inc @@ -16,7 +16,7 @@ BattleFrontier_BattlePikeRoomWildMons_EventScript_SetInWildMonRoom:: BattleFrontier_BattlePikeRoomWildMons_EventScript_WarpToLobbyLost:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST - warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 + warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 5, 6 waitstate end @@ -32,10 +32,8 @@ BattleFrontier_BattlePikeRoomWildMons_EventScript_TurnPlayerNorth:: BattleFrontier_BattlePikeRoomWildMons_OnResume: call BattleFrontier_BattlePikeRoom_EventScript_ResetSketchedMoves frontier_get FRONTIER_DATA_BATTLE_OUTCOME - compare VAR_RESULT, B_OUTCOME_LOST - goto_if_eq BattleFrontier_BattlePikeRoomWildMons_EventScript_SetLost - compare VAR_RESULT, B_OUTCOME_DREW - goto_if_eq BattleFrontier_BattlePikeRoomWildMons_EventScript_SetLost + goto_if_eq VAR_RESULT, B_OUTCOME_LOST, BattleFrontier_BattlePikeRoomWildMons_EventScript_SetLost + goto_if_eq VAR_RESULT, B_OUTCOME_DREW, BattleFrontier_BattlePikeRoomWildMons_EventScript_SetLost end BattleFrontier_BattlePikeRoomWildMons_EventScript_SetLost:: diff --git a/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc b/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc index 37737554f5..e95ca9dcea 100644 --- a/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeThreePathRoom/scripts.inc @@ -28,7 +28,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_GetChallengeStatus:: end BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpToLobby:: - warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 + warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 5, 6 waitstate end @@ -151,8 +151,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_AskRetireChallenge:: BattleFrontier_BattlePikeThreePathRoom_EventScript_SetHintRoom:: pike_sethintroom - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_SetPikeQueenHint + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattlePikeThreePathRoom_EventScript_SetPikeQueenHint setvar VAR_TEMP_5, 255 end @@ -173,8 +172,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_GivePikeQueenHint:: BattleFrontier_BattlePikeThreePathRoom_EventScript_HintGiver:: pike_gethint - compare VAR_RESULT, PIKE_HINT_BRAIN - goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveBrainHint + goto_if_eq VAR_RESULT, PIKE_HINT_BRAIN, BattleFrontier_BattlePikeThreePathRoom_EventScript_GiveBrainHint lock faceplayer msgbox BattleFrontier_BattlePikeThreePathRoom_Text_FindingItDifficultToChoose, MSGBOX_YESNO diff --git a/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc b/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc index 8993418ee8..a6b3f63c8e 100644 --- a/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc @@ -21,8 +21,7 @@ BattleFrontier_BattlePyramidFloor_EventScript_UpdateLight:: BattleFrontier_BattlePyramidFloor_EventScript_UpdateLightLoop:: special CallBattlePyramidFunction delay 2 - compare VAR_RESULT, 2 - goto_if_ne BattleFrontier_BattlePyramidFloor_EventScript_UpdateLightLoop + goto_if_ne VAR_RESULT, 2, BattleFrontier_BattlePyramidFloor_EventScript_UpdateLightLoop setvar VAR_TEMP_D, 0 releaseall end @@ -45,18 +44,12 @@ BattleFrontier_BattlePyramidFloor_OnResume: case CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePyramid_EventScript_WarpToLobby case CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePyramidFloor_EventScript_ReadyChallenge frontier_get FRONTIER_DATA_BATTLE_OUTCOME - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq BattleFrontier_BattlePyramidFloor_EventScript_ResetParty - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq BattleFrontier_BattlePyramidFloor_EventScript_ResetParty - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattlePyramidFloor_EventScript_ResetParty - compare VAR_RESULT, B_OUTCOME_LOST - goto_if_eq BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost - compare VAR_RESULT, B_OUTCOME_DREW - goto_if_eq BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost - compare VAR_RESULT, B_OUTCOME_FORFEITED - goto_if_eq BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, BattleFrontier_BattlePyramidFloor_EventScript_ResetParty + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, BattleFrontier_BattlePyramidFloor_EventScript_ResetParty + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattlePyramidFloor_EventScript_ResetParty + goto_if_eq VAR_RESULT, B_OUTCOME_LOST, BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost + goto_if_eq VAR_RESULT, B_OUTCOME_DREW, BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost + goto_if_eq VAR_RESULT, B_OUTCOME_FORFEITED, BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost frontier_isbattletype BATTLE_TYPE_TRAINER @ VAR_RESULT seems to be ignored here setvar VAR_TEMP_D, 1 BattleFrontier_BattlePyramidFloor_EventScript_ResetParty:: @@ -70,7 +63,7 @@ BattleFrontier_BattlePyramid_EventScript_WarpToLobby:: pyramid_updatelight 0, PYRAMID_LIGHT_SET_RADIUS pyramid_clearhelditems special HealPlayerParty - warpsilent MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY, 255, 7, 13 + warpsilent MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY, 7, 13 waitstate end @@ -97,17 +90,16 @@ BattlePyramid_WarpToNextFloor:: frontier_get FRONTIER_DATA_BATTLE_NUM @ Floor number addvar VAR_RESULT, 1 frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT - compare VAR_RESULT, 7 - goto_if_eq BattlePyramid_WarpToTop + goto_if_eq VAR_RESULT, 7, BattlePyramid_WarpToTop pyramid_seedfloor frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_RESULT, 0 - warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR, 255, 1, 1 + warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR, 1, 1 waitstate end BattlePyramid_WarpToTop:: - warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP, 255, 17, 17 + warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP, 17, 17 waitstate end @@ -124,8 +116,7 @@ BattlePyramid_TrainerBattle:: BattlePyramid_FindItemBall:: pyramid_setitem callstd STD_FIND_ITEM - compare VAR_0x8007, 0 - goto_if_eq BattlePyramid_FindItemBallEnd + goto_if_eq VAR_0x8007, 0, BattlePyramid_FindItemBallEnd pyramid_hideitem BattlePyramid_FindItemBallEnd:: end diff --git a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc index c93deee3ec..550644511b 100644 --- a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc @@ -45,8 +45,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_QuitWithoutSaving:: BattleFrontier_BattlePyramidLobby_EventScript_WonChallenge:: lockall frontier_isbrain - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_DefeatedKing + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattlePyramidLobby_EventScript_DefeatedKing msgbox BattleFrontier_BattlePyramidLobby_Text_YouveConqueredPyramid, MSGBOX_DEFAULT goto BattleFrontier_BattlePyramidLobby_EventScript_GiveBattlePoints @@ -54,8 +53,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_DefeatedKing:: msgbox BattleFrontier_BattlePyramidLobby_Text_YouveDefeatedPyramidKing, MSGBOX_DEFAULT BattleFrontier_BattlePyramidLobby_EventScript_GiveBattlePoints:: special DoBattlePyramidMonsHaveHeldItem - compare VAR_RESULT, TRUE - call_if_eq BattleFrontier_BattlePyramidLobby_EventScript_StoreHeldItemsInPyramidBag + call_if_eq VAR_RESULT, TRUE, BattleFrontier_BattlePyramidLobby_EventScript_StoreHeldItemsInPyramidBag clearflag FLAG_STORING_ITEMS_IN_PYRAMID_BAG frontier_checkairshow special LoadPlayerParty @@ -130,8 +128,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_TryEnterChallenge:: case FRONTIER_LVL_TENT, BattleFrontier_BattlePyramidLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattlePyramidLobby_EventScript_CancelChallenge frontier_checkineligible - compare VAR_0x8004, TRUE - goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_NotEnoughValidMons + goto_if_eq VAR_0x8004, TRUE, BattleFrontier_BattlePyramidLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattlePyramidLobby_Text_SelectThreeMons, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK @@ -140,8 +137,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_TryEnterChallenge:: setvar VAR_0x8005, FRONTIER_PARTY_SIZE special ChoosePartyForBattleFrontier waitstate - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_LoadPartyAndCancelChallenge + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattlePyramidLobby_EventScript_LoadPartyAndCancelChallenge msgbox BattleFrontier_BattlePyramidLobby_Text_OkayToSaveBeforeChallenge, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattlePyramidLobby_EventScript_LoadPartyAndCancelChallenge @@ -162,8 +158,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_SaveBeforeChallenge:: delay 2 call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_CancelChallengeSaveFailed + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattlePyramidLobby_EventScript_CancelChallengeSaveFailed BattleFrontier_BattlePyramidLobby_EventScript_EnterChallenge:: special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE @@ -173,7 +168,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_EnterChallenge:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_RESULT, 0 special HealPlayerParty - warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR, 255, 1, 1 + warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR, 1, 1 setvar VAR_TEMP_0, 0 waitstate end @@ -233,8 +228,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_NoHint:: BattleFrontier_BattlePyramidLobby_EventScript_GiveHintLv50:: msgbox BattleFrontier_BattlePyramidLobby_Text_Aah, MSGBOX_DEFAULT pyramid_get PYRAMID_DATA_WIN_STREAK_ACTIVE_50 - compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattlePyramidLobby_EventScript_GiveHintGetLv50Streak + goto_if_ne VAR_RESULT, FALSE, BattleFrontier_BattlePyramidLobby_EventScript_GiveHintGetLv50Streak setvar VAR_RESULT, 0 goto BattleFrontier_BattlePyramidLobby_EventScript_DoHintComment return @@ -247,8 +241,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_GiveHintGetLv50Streak:: BattleFrontier_BattlePyramidLobby_EventScript_GiveHintLvOpen:: msgbox BattleFrontier_BattlePyramidLobby_Text_Aah, MSGBOX_DEFAULT pyramid_get PYRAMID_DATA_WIN_STREAK_ACTIVE_OPEN - compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattlePyramidLobby_EventScript_GiveHintGetLvOpenStreak + goto_if_ne VAR_RESULT, FALSE, BattleFrontier_BattlePyramidLobby_EventScript_GiveHintGetLvOpenStreak setvar VAR_RESULT, 0 goto BattleFrontier_BattlePyramidLobby_EventScript_DoHintComment return @@ -378,8 +371,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_WalkToPanelAndReceiveBag:: waitmovement 0 msgbox BattleFrontier_BattlePyramidLobby_Text_WeWillHoldBagForSafekeeping, MSGBOX_DEFAULT pyramid_get PYRAMID_DATA_WIN_STREAK - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_ReceiveNewBattleBag + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattlePyramidLobby_EventScript_ReceiveNewBattleBag msgbox BattleFrontier_BattlePyramidLobby_Text_PleaseTakePreviousBattleBag, MSGBOX_DEFAULT goto BattleFrontier_BattlePyramidLobby_EventScript_ReceiveBattleBag @@ -433,8 +425,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_StoreHeldItemsInPyramidBag:: msgbox BattleFrontier_BattlePyramidLobby_Text_MonHoldingItemCannotTake, MSGBOX_DEFAULT setflag FLAG_STORING_ITEMS_IN_PYRAMID_BAG special TryStoreHeldItemsInPyramidBag - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_HeldItemsStoredInPyramidBag + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattlePyramidLobby_EventScript_HeldItemsStoredInPyramidBag message BattleFrontier_BattlePyramidLobby_Text_BagCannotHoldPickItemsToKeep waitmessage goto BattleFrontier_BattlePyramidLobby_EventScript_PickItemsToKeep @@ -472,8 +463,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_PickItemsFromParty:: BattleFrontier_BattlePyramidLobby_EventScript_ExitPickItems:: special DoBattlePyramidMonsHaveHeldItem - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_PartyStillHasHeldItems + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattlePyramidLobby_EventScript_PartyStillHasHeldItems return BattleFrontier_BattlePyramidLobby_EventScript_PartyStillHasHeldItems:: diff --git a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc index 0c1db1eea8..385356c4ba 100644 --- a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc @@ -20,16 +20,14 @@ BattleFrontier_BattlePyramidTop_OnWarp: BattleFrontier_BattlePyramidTop_EventScript_SetUpObjects:: setvar VAR_TEMP_1, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH - compare VAR_TEMP_C, 0 - goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_EndSetUpObjects + goto_if_ne VAR_TEMP_C, 0, BattleFrontier_BattlePyramidTop_EventScript_EndSetUpObjects setobjectxyperm LOCALID_BRANDON, 0, 0 BattleFrontier_BattlePyramidTop_EventScript_EndSetUpObjects:: end BattleFrontier_BattlePyramidTop_OnResume: frontier_getbrainstatus - compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY - goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_CheckChallengeStatus + goto_if_eq VAR_RESULT, FRONTIER_BRAIN_NOT_READY, BattleFrontier_BattlePyramidTop_EventScript_CheckChallengeStatus call BattleFrontier_EventScript_SetBrainObjectGfx BattleFrontier_BattlePyramidTop_EventScript_CheckChallengeStatus:: copyvar VAR_TEMP_C, VAR_RESULT @@ -39,12 +37,9 @@ BattleFrontier_BattlePyramidTop_EventScript_CheckChallengeStatus:: case CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePyramid_EventScript_WarpToLobby case CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePyramidTop_EventScript_ReadyChallenge frontier_get FRONTIER_DATA_BATTLE_OUTCOME - compare VAR_RESULT, B_OUTCOME_LOST - goto_if_eq BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost - compare VAR_RESULT, B_OUTCOME_DREW - goto_if_eq BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost - compare VAR_RESULT, B_OUTCOME_FORFEITED - goto_if_eq BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost + goto_if_eq VAR_RESULT, B_OUTCOME_LOST, BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost + goto_if_eq VAR_RESULT, B_OUTCOME_DREW, BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost + goto_if_eq VAR_RESULT, B_OUTCOME_FORFEITED, BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost end BattleFrontier_BattlePyramidTop_OnFrame: @@ -74,10 +69,8 @@ BattleFrontier_BattlePyramidTop_EventScript_ReadyChallenge:: BattleFrontier_BattlePyramidTop_EventScript_Attendant:: lock faceplayer - compare VAR_TEMP_D, 0 - goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_StepForwardWhenReady - compare VAR_TEMP_C, FRONTIER_BRAIN_NOT_READY - goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_BrandonHereMoveAside + goto_if_ne VAR_TEMP_D, 0, BattleFrontier_BattlePyramidTop_EventScript_StepForwardWhenReady + goto_if_ne VAR_TEMP_C, FRONTIER_BRAIN_NOT_READY, BattleFrontier_BattlePyramidTop_EventScript_BrandonHereMoveAside msgbox BattleFrontier_BattlePyramidTop_Text_ReachedSummitUpYouGo, MSGBOX_DEFAULT closemessage applymovement LOCALID_ATTENDANT, BattleFrontier_BattlePyramidTop_Movement_AttendantMoveAside @@ -93,7 +86,7 @@ BattleFrontier_BattlePyramidTop_EventScript_Attendant:: closemessage BattleFrontier_BattlePyramidTop_EventScript_WarpToLobbyWon:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON - warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY, 255, 7, 13 + warp MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY, 7, 13 waitstate end @@ -116,8 +109,7 @@ BattleFrontier_BattlePyramidTop_EventScript_BattleBrandon:: case FRONTIER_BRAIN_STREAK, BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardSilverSpeech case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardGoldSpeech frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH - compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardSilverSpeech + goto_if_ne VAR_RESULT, FALSE, BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardSilverSpeech special SpawnCameraObject applymovement OBJ_EVENT_ID_CAMERA, BattleFrontier_BattlePyramidTop_Movement_CameraPanUp waitmovement 0 @@ -137,14 +129,12 @@ BattleFrontier_BattlePyramidTop_EventScript_BattleBrandonSilver:: msgbox BattleFrontier_BattlePyramidTop_Text_BringCourageToOurBattle, MSGBOX_DEFAULT call BattleFrontier_BattlePyramidTop_EventScript_DoBrandonBattle playbgm MUS_B_PYRAMID_TOP, FALSE - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonSilver + goto_if_eq VAR_RESULT, 1, BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonSilver goto BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonSilver:: frontier_getsymbols - compare VAR_RESULT, 0 - goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_WarpToLobbyWon + goto_if_ne VAR_RESULT, 0, BattleFrontier_BattlePyramidTop_EventScript_WarpToLobbyWon msgbox BattleFrontier_BattlePyramidTop_Text_BrandonFrontierPassPlease, MSGBOX_DEFAULT playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattlePyramidTop_Text_ReceivedBraveSymbol @@ -156,8 +146,7 @@ BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonSilver:: BattleFrontier_BattlePyramidTop_EventScript_BrandonIntroGold:: frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH - compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardGoldSpeech + goto_if_ne VAR_RESULT, FALSE, BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardGoldSpeech special SpawnCameraObject applymovement OBJ_EVENT_ID_CAMERA, BattleFrontier_BattlePyramidTop_Movement_CameraPanUp waitmovement 0 @@ -177,14 +166,12 @@ BattleFrontier_BattlePyramidTop_EventScript_BattleBrandonGold:: msgbox BattleFrontier_BattlePyramidTop_Text_EverythingYouHave, MSGBOX_DEFAULT call BattleFrontier_BattlePyramidTop_EventScript_DoBrandonBattle playbgm MUS_B_PYRAMID_TOP, FALSE - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonGold + goto_if_eq VAR_RESULT, 1, BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonGold goto BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonGold:: frontier_getsymbols - compare VAR_RESULT, 2 - goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_WarpToLobbyWon + goto_if_eq VAR_RESULT, 2, BattleFrontier_BattlePyramidTop_EventScript_WarpToLobbyWon msgbox BattleFrontier_BattlePyramidTop_Text_BrandonRemarkableHaveThis, MSGBOX_DEFAULT playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattlePyramidTop_Text_BraveSymbolTookGoldenShine diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc index c909239bea..9b466af3bc 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc @@ -25,8 +25,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_EnterRoom:: applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_PlayerEnter waitmovement 0 frontier_get FRONTIER_DATA_BATTLE_NUM - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_OpponentEnter + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerBattleRoom_EventScript_OpponentEnter applymovement LOCALID_ATTENDANT_1, BattleFrontier_BattleTowerBattleRoom_Movement_AttendantApproachPlayer waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_PlayerFaceAttendant @@ -62,8 +61,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedOpponent:: waitmovement 0 removeobject LOCALID_OPPONENT frontier_getbrainstatus - compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY - call_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_SecondAttendantEnter + call_if_ne VAR_RESULT, FRONTIER_BRAIN_NOT_READY, BattleFrontier_BattleTowerBattleRoom_EventScript_SecondAttendantEnter applymovement LOCALID_ATTENDANT_1, BattleFrontier_BattleTowerBattleRoom_Movement_AttendantApproachPlayer waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_PlayerFaceAttendant @@ -75,13 +73,11 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedOpponent:: BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent:: frontier_getbrainstatus copyvar VAR_TEMP_F, VAR_RESULT - compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY - goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_MaidenUpNext + goto_if_ne VAR_RESULT, FRONTIER_BRAIN_NOT_READY, BattleFrontier_BattleTowerBattleRoom_EventScript_MaidenUpNext frontier_get FRONTIER_DATA_BATTLE_NUM call BattleFrontier_BattleTowerBattleRoom_EventScript_ReadyForOpponent call BattleFrontier_EventScript_GetCantRecordBattle - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponentNoRecord + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponentNoRecord multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_ContinueChallenge @@ -214,16 +210,14 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_SecondAttendantEnter:: return BattleFrontier_BattleTowerBattleRoom_EventScript_MaidenUpNext:: - compare VAR_TEMP_2, 1 - goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaiden + goto_if_eq VAR_TEMP_2, 1, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaiden msgbox BattleFrontier_BattleTowerBattleRoom_Text_SalonMaidenOnHerWay, MSGBOX_DEFAULT setvar VAR_TEMP_2, 1 BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaiden:: message BattleFrontier_BattleTowerBattleRoom_Text_ReadyForSalonMaiden waitmessage call BattleFrontier_EventScript_GetCantRecordBattle - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaidenNoRecord + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForMaidenNoRecord multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabel @@ -255,22 +249,19 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabel:: case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabelSilver case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabelGold frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH - compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabelSilver + goto_if_ne VAR_RESULT, FALSE, BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabelSilver msgbox BattleFrontier_BattleTowerBattleRoom_Text_GreetingsImAnabel, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabelSilver:: msgbox BattleFrontier_BattleTowerBattleRoom_Text_LetMeSeeYourTalent, MSGBOX_DEFAULT call BattleFrontier_BattleTowerBattleRoom_EventScript_DoTowerBattle - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelSilver + goto_if_eq VAR_RESULT, B_OUTCOME_WON, BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelSilver goto BattleFrontier_BattleTower_EventScript_WarpToLobbyLost BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelSilver:: call BattleFrontier_EventScript_IncrementWinStreak frontier_getsymbols - compare VAR_RESULT, 0 - goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyWon + goto_if_ne VAR_RESULT, 0, BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyWon msgbox BattleFrontier_BattleTowerBattleRoom_Text_AnabelTalentShallBeRecognized, MSGBOX_DEFAULT playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattleTowerBattleRoom_Text_ReceivedAbilitySymbol @@ -282,22 +273,19 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelSilver:: BattleFrontier_BattleTowerBattleRoom_EventScript_AnabelGoldIntro:: frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH - compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabelGold + goto_if_ne VAR_RESULT, FALSE, BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabelGold msgbox BattleFrontier_BattleTowerBattleRoom_Text_AnabelYouCameBack, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH BattleFrontier_BattleTowerBattleRoom_EventScript_BattleAnabelGold:: msgbox BattleFrontier_BattleTowerBattleRoom_Text_LetsBeginShallWe, MSGBOX_DEFAULT call BattleFrontier_BattleTowerBattleRoom_EventScript_DoTowerBattle - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelGold + goto_if_eq VAR_RESULT, B_OUTCOME_WON, BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelGold goto BattleFrontier_BattleTower_EventScript_WarpToLobbyLost BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelGold:: call BattleFrontier_EventScript_IncrementWinStreak frontier_getsymbols - compare VAR_RESULT, 2 - goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyWon + goto_if_eq VAR_RESULT, 2, BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyWon msgbox BattleFrontier_BattleTowerBattleRoom_Text_AnabelCongratsYourPassPlease, MSGBOX_DEFAULT playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattleTowerBattleRoom_Text_AbilitySymbolTookGoldenShine @@ -317,8 +305,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_DoTowerBattle:: special DoSpecialTrainerBattle waitstate copyvar VAR_0x8004, VAR_FRONTIER_BATTLE_MODE - compare VAR_0x8004, FRONTIER_MODE_LINK_MULTIS - goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_EndTowerBattle + goto_if_eq VAR_0x8004, FRONTIER_MODE_LINK_MULTIS, BattleFrontier_BattleTowerBattleRoom_EventScript_EndTowerBattle frontier_restorehelditems special HealPlayerParty frontier_resetsketch @@ -422,29 +409,26 @@ BattleFrontier_BattleTowerBattleRoom_Movement_AnabelEnter: BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobby:: copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE - compare VAR_RESULT, FRONTIER_MODE_DOUBLES - goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyDoubles - compare VAR_RESULT, FRONTIER_MODE_MULTIS - goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyMultis - compare VAR_RESULT, FRONTIER_MODE_LINK_MULTIS - goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyLinkMultis - warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY, 255, 6, 6 + goto_if_eq VAR_RESULT, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyDoubles + goto_if_eq VAR_RESULT, FRONTIER_MODE_MULTIS, BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyMultis + goto_if_eq VAR_RESULT, FRONTIER_MODE_LINK_MULTIS, BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyLinkMultis + warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY, 6, 6 waitstate end BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyDoubles:: - warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY, 255, 10, 6 + warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY, 10, 6 waitstate end BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyMultis:: - warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY, 255, 14, 6 + warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY, 14, 6 waitstate end BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyLinkMultis:: tower_closelink - warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY, 255, 18, 6 + warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY, 18, 6 waitstate end diff --git a/data/maps/BattleFrontier_BattleTowerCorridor/scripts.inc b/data/maps/BattleFrontier_BattleTowerCorridor/scripts.inc index c09c897e98..d0f3d487a8 100644 --- a/data/maps/BattleFrontier_BattleTowerCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerCorridor/scripts.inc @@ -6,15 +6,14 @@ BattleFrontier_BattleTowerCorridor_MapScripts:: .byte 0 BattleFrontier_BattleTowerCorridor_OnLoad: - compare VAR_0x8006, 1 - goto_if_eq BattleFrontier_BattleTowerCorridor_EventScript_OpenFarDoor - setmetatile 12, 0, METATILE_BattleFrontier_CorridorOpenDoor_Top, 0 - setmetatile 12, 1, METATILE_BattleFrontier_CorridorOpenDoor_Bottom, 0 + goto_if_eq VAR_0x8006, 1, BattleFrontier_BattleTowerCorridor_EventScript_OpenFarDoor + setmetatile 12, 0, METATILE_BattleFrontier_CorridorOpenDoor_Top, FALSE + setmetatile 12, 1, METATILE_BattleFrontier_CorridorOpenDoor_Bottom, FALSE end BattleFrontier_BattleTowerCorridor_EventScript_OpenFarDoor:: - setmetatile 15, 0, METATILE_BattleFrontier_CorridorOpenDoor_Top, 0 - setmetatile 15, 1, METATILE_BattleFrontier_CorridorOpenDoor_Bottom, 0 + setmetatile 15, 0, METATILE_BattleFrontier_CorridorOpenDoor_Top, FALSE + setmetatile 15, 1, METATILE_BattleFrontier_CorridorOpenDoor_Bottom, FALSE end BattleFrontier_BattleTowerCorridor_OnFrame: @@ -23,8 +22,7 @@ BattleFrontier_BattleTowerCorridor_OnFrame: BattleFrontier_BattleTowerCorridor_EventScript_EnterCorridor:: setvar VAR_TEMP_0, 1 - compare VAR_0x8006, 1 - goto_if_eq BattleFrontier_BattleTowerCorridor_EventScript_WalkToFarDoor + goto_if_eq VAR_0x8006, 1, BattleFrontier_BattleTowerCorridor_EventScript_WalkToFarDoor applymovement LOCALID_ATTENDANT, BattleFrontier_BattleTowerCorridor_Movement_AttendantWalkToDoor applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleTowerCorridor_Movement_PlayerWalkToDoor waitmovement 0 @@ -37,7 +35,7 @@ BattleFrontier_BattleTowerCorridor_EventScript_WalkToFarDoor:: BattleFrontier_BattleTowerCorridor_EventScript_WarpToBattleRoom:: setvar VAR_TEMP_0, 0 - warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM, 255, 4, 8 + warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM, 4, 8 waitstate end diff --git a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc index 0021b9e842..06f4ff0a70 100644 --- a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc @@ -26,34 +26,30 @@ BattleFrontier_BattleTowerElevator_EventScript_EnterElevator:: end BattleFrontier_BattleTowerElevator_EventScript_WarpToNextRoom:: - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleTowerElevator_EventScript_WarpToCorridor - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleTowerElevator_EventScript_WarpToCorridor - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS - call_if_eq BattleFrontier_BattleTowerElevator_EventScript_WarpToNextRoomMulti - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - call_if_eq BattleFrontier_BattleTowerElevator_EventScript_WarpToCorridorMulti + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattleTowerElevator_EventScript_WarpToCorridor + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleTowerElevator_EventScript_WarpToCorridor + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS, BattleFrontier_BattleTowerElevator_EventScript_WarpToNextRoomMulti + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS, BattleFrontier_BattleTowerElevator_EventScript_WarpToCorridorMulti return BattleFrontier_BattleTowerElevator_EventScript_WarpToCorridor:: - warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR, 255, 8, 1 + warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR, 8, 1 waitstate return BattleFrontier_BattleTowerElevator_EventScript_WarpToNextRoomMulti:: goto_if_unset FLAG_CHOSEN_MULTI_BATTLE_NPC_PARTNER, BattleFrontier_BattleTowerElevator_EventScript_WarpToPartnerRoom - warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR, 255, 7, 2 + warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR, 7, 2 waitstate return BattleFrontier_BattleTowerElevator_EventScript_WarpToCorridorMulti:: - warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR, 255, 7, 2 + warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR, 7, 2 waitstate return BattleFrontier_BattleTowerElevator_EventScript_WarpToPartnerRoom:: - warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM, 255, 10, 1 + warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM, 10, 1 waitstate return diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index ab2a620436..40936936a7 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -19,8 +19,7 @@ BattleFrontier_BattleTowerLobby_OnResume: BattleFrontier_BattleTowerLobby_OnTransition: call BattleFrontier_BattleTowerLobby_EventScript_ShowOrHideReporter apprentice_shouldcheckgone - compare VAR_0x8004, FALSE @ Always TRUE here - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_ShowApprentice + goto_if_eq VAR_0x8004, FALSE, BattleFrontier_BattleTowerLobby_EventScript_ShowApprentice @ VAR_0x8004 always TRUE here goto_if_set FLAG_DAILY_APPRENTICE_LEAVES, BattleFrontier_BattleTowerLobby_EventScript_HideApprentice BattleFrontier_BattleTowerLobby_EventScript_ShowApprentice:: clearflag FLAG_HIDE_APPRENTICE @@ -69,8 +68,7 @@ BattleFrontier_BattleTowerLobby_EventScript_WonChallenge:: lock faceplayer frontier_isbrain - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_DefeatedMaiden + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleTowerLobby_EventScript_DefeatedMaiden message BattleFrontier_BattleTowerLobby_Text_CongratsBeatenSeven waitmessage goto BattleFrontier_BattleTowerLobby_EventScript_GiveRibbons @@ -79,8 +77,7 @@ BattleFrontier_BattleTowerLobby_EventScript_DefeatedMaiden:: msgbox BattleFrontier_BattleTowerLobby_Text_CongratsDefeatedMaiden, MSGBOX_DEFAULT BattleFrontier_BattleTowerLobby_EventScript_GiveRibbons:: tower_giveribbons - compare VAR_RESULT, FALSE - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_GiveBattlePoints + goto_if_eq VAR_RESULT, FALSE, BattleFrontier_BattleTowerLobby_EventScript_GiveBattlePoints message BattleFrontier_BattleTowerLobby_Text_HereAreSomeRibbons waitmessage playfanfare MUS_OBTAIN_ITEM @@ -92,8 +89,7 @@ BattleFrontier_BattleTowerLobby_EventScript_GiveBattlePoints:: msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS call BattleFrontier_BattleTowerLobby_EventScript_AskSaveBattle tower_get TOWER_DATA_WIN_STREAK - compare VAR_RESULT, 49 - goto_if_ne BattleFrontier_BattleTowerLobby_EventScript_LookForwardToChallenge + goto_if_ne VAR_RESULT, 49, BattleFrontier_BattleTowerLobby_EventScript_LookForwardToChallenge msgbox BattleFrontier_BattleTowerLobby_Text_AboutToFace50thTrainer, MSGBOX_DEFAULT BattleFrontier_BattleTowerLobby_EventScript_LookForwardToChallenge:: msgbox BattleFrontier_BattleTowerLobby_Text_LookForwardToAnotherChallenge, MSGBOX_DEFAULT @@ -103,12 +99,10 @@ BattleFrontier_BattleTowerLobby_EventScript_LookForwardToChallenge:: end BattleFrontier_BattleTowerLobby_EventScript_LostChallenge:: - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS - goto_if_ne BattleFrontier_BattleTowerLobby_EventScript_CancelWinStreak + goto_if_ne VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS, BattleFrontier_BattleTowerLobby_EventScript_CancelWinStreak goto_if_set FLAG_CHOSEN_MULTI_BATTLE_NPC_PARTNER, BattleFrontier_BattleTowerLobby_EventScript_CancelWinStreak tower_get TOWER_DATA_WIN_STREAK - compare VAR_RESULT, 0 - goto_if_ne BattleFrontier_BattleTowerLobby_EventScript_LostThanksForPlaying + goto_if_ne VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_LostThanksForPlaying BattleFrontier_BattleTowerLobby_EventScript_CancelWinStreak:: tower_set TOWER_DATA_WIN_STREAK_ACTIVE, FALSE BattleFrontier_BattleTowerLobby_EventScript_LostThanksForPlaying:: @@ -133,8 +127,7 @@ BattleFrontier_BattleTowerLobby_EventScript_AskSaveBattle:: playse SE_SAVE waitse call BattleFrontier_EventScript_GetCantRecordBattle - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_EndSaveBattle + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleTowerLobby_EventScript_EndSaveBattle message BattleFrontier_BattleTowerLobby_Text_RecordLastMatch waitmessage multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE @@ -145,8 +138,7 @@ BattleFrontier_BattleTowerLobby_EventScript_AskSaveBattle:: BattleFrontier_EventScript_SaveBattle:: frontier_savebattle - compare VAR_RESULT, FALSE - goto_if_eq BattleFrontier_EventScript_BattleSaveFailed + goto_if_eq VAR_RESULT, FALSE, BattleFrontier_EventScript_BattleSaveFailed playse SE_SAVE msgbox BattleFrontier_BattleTowerLobby_Text_BattleRecordedOnPass, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_EndSaveBattle @@ -163,8 +155,7 @@ BattleFrontier_EventScript_GetCantRecordBattle:: BattleFrontier_BattleTowerLobby_EventScript_ResumeChallenge:: lock faceplayer - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_SetBravoTrainerOn + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattleTowerLobby_EventScript_SetBravoTrainerOn message BattleFrontier_BattleTowerLobby_Text_WeveBeenWaitingForYou waitmessage message BattleFrontier_BattleTowerLobby_Text_ProgressWillBeSaved @@ -205,8 +196,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterSinglesChallenge:: case FRONTIER_LVL_TENT, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge frontier_checkineligible - compare VAR_0x8004, TRUE - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMons + goto_if_eq VAR_0x8004, TRUE, BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleTowerLobby_Text_SelectThreeMons, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK @@ -215,8 +205,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterSinglesChallenge:: setvar VAR_0x8005, FRONTIER_PARTY_SIZE special ChoosePartyForBattleFrontier waitstate - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_LoadPartyCancelChallenge + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_LoadPartyCancelChallenge msgbox BattleFrontier_BattleTowerLobby_Text_OkayToSaveBeforeEntering, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattleTowerLobby_EventScript_LoadPartyCancelChallenge @@ -234,8 +223,7 @@ BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeSinglesChallenge:: delay 2 call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_CancelChallengeSaveFailed + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_CancelChallengeSaveFailed incrementgamestat GAME_STAT_ENTERED_BATTLE_TOWER setvar VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, TRUE goto BattleFrontier_BattleTowerLobby_EventScript_EnterElevator @@ -271,8 +259,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterDoublesChallenge:: case FRONTIER_LVL_TENT, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge frontier_checkineligible - compare VAR_0x8004, TRUE - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMons + goto_if_eq VAR_0x8004, TRUE, BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleTowerLobby_Text_PleaseSelectFourMons, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK @@ -281,8 +268,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterDoublesChallenge:: setvar VAR_0x8005, FRONTIER_DOUBLES_PARTY_SIZE special ChoosePartyForBattleFrontier waitstate - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_LoadPartyCancelChallenge + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_LoadPartyCancelChallenge msgbox BattleFrontier_BattleTowerLobby_Text_OkayToSaveBeforeEntering, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattleTowerLobby_EventScript_LoadPartyCancelChallenge @@ -300,8 +286,7 @@ BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeDoublesChallenge:: delay 2 call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_CancelChallengeSaveFailed + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_CancelChallengeSaveFailed incrementgamestat GAME_STAT_ENTERED_BATTLE_TOWER setvar VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, FALSE goto BattleFrontier_BattleTowerLobby_EventScript_EnterElevator @@ -338,8 +323,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterMultisChallenge:: case FRONTIER_LVL_TENT, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge frontier_checkineligible - compare VAR_0x8004, TRUE - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMons + goto_if_eq VAR_0x8004, TRUE, BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleTowerLobby_Text_PleaseSelectTwoMons, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK @@ -348,8 +332,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterMultisChallenge:: setvar VAR_0x8005, FRONTIER_MULTI_PARTY_SIZE special ChoosePartyForBattleFrontier waitstate - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_LoadPartyCancelChallenge + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_LoadPartyCancelChallenge msgbox BattleFrontier_BattleTowerLobby_Text_OkayToSaveBeforeEntering, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattleTowerLobby_EventScript_LoadPartyCancelChallenge @@ -367,8 +350,7 @@ BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeMultisChallenge:: delay 2 call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_CancelChallengeSaveFailed + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_CancelChallengeSaveFailed incrementgamestat GAME_STAT_ENTERED_BATTLE_TOWER setvar VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, FALSE goto BattleFrontier_BattleTowerLobby_EventScript_EnterElevator @@ -404,8 +386,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterLinkMultisChallenge:: case FRONTIER_LVL_TENT, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge case MULTI_B_PRESSED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge frontier_checkineligible - compare VAR_0x8004, TRUE - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMons + goto_if_eq VAR_0x8004, TRUE, BattleFrontier_BattleTowerLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT msgbox BattleFrontier_BattleTowerLobby_Text_PleaseSelectTwoMons2, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK @@ -414,8 +395,7 @@ BattleFrontier_BattleTowerLobby_EventScript_TryEnterLinkMultisChallenge:: setvar VAR_0x8005, FRONTIER_MULTI_PARTY_SIZE special ChoosePartyForBattleFrontier waitstate - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_LoadPartyCancelChallenge + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_LoadPartyCancelChallenge msgbox BattleFrontier_BattleTowerLobby_Text_OkayToSaveBeforeEntering, MSGBOX_YESNO switch VAR_RESULT case NO, BattleFrontier_BattleTowerLobby_EventScript_LoadPartyCancelChallenge @@ -434,12 +414,10 @@ BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeLinkMultisChallenge:: tower_save 0 call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_CancelChallengeSaveFailed + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_CancelChallengeSaveFailed incrementgamestat GAME_STAT_ENTERED_BATTLE_TOWER specialvar VAR_RESULT, IsWirelessAdapterConnected - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_TryWirelessLink + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleTowerLobby_EventScript_TryWirelessLink goto BattleFrontier_BattleTowerLobby_EventScript_TryCableLink end @@ -491,10 +469,8 @@ BattleFrontier_BattleTowerLobby_EventScript_FeelingsWontTell:: end BattleFrontier_BattleTowerLobby_EventScript_CheckFeelings:: - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_CanceledEasyChat - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_SubmittedFeelings + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_CanceledEasyChat + goto_if_eq VAR_RESULT, 1, BattleFrontier_BattleTowerLobby_EventScript_SubmittedFeelings end BattleFrontier_BattleTowerLobby_EventScript_CanceledEasyChat:: @@ -611,19 +587,17 @@ BattleFrontier_BattleTowerLobby_EventScript_EnterElevator:: BattleFrontier_BattleTowerLobby_EventScript_WaitForLinkOpponentLoad:: tower_loadlinkopponents delay 1 - compare VAR_RESULT, 6 - goto_if_ne BattleFrontier_BattleTowerLobby_EventScript_WaitForLinkOpponentLoad + goto_if_ne VAR_RESULT, 6, BattleFrontier_BattleTowerLobby_EventScript_WaitForLinkOpponentLoad call BattleFrontier_BattleTowerLobby_EventScript_ShowYouToBattleRoom clearflag FLAG_CANCEL_BATTLE_ROOM_CHALLENGE - warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR, 255, 1, 6 + warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR, 1, 6 setvar VAR_TEMP_0, 0 waitstate end BattleFrontier_BattleTowerLobby_EventScript_ShowYouToBattleRoom:: call BattleFrontier_BattleTowerLobby_EventScript_BufferModeText - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_ShowYouToLinkMultiBattleRoom + goto_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS, BattleFrontier_BattleTowerLobby_EventScript_ShowYouToLinkMultiBattleRoom msgbox BattleFrontier_BattleTowerLobby_Text_ShowYouToBattleRoom, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerLobby_EventScript_WalkToElevator @@ -675,41 +649,33 @@ BattleFrontier_BattleTowerLobby_Movement_UnusedEnterElevator: step_end BattleFrontier_BattleTowerLobby_EventScript_BufferModeText:: - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_BufferTextSingle - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_BufferTextDouble - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_BufferTextMulti - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_BufferTextLinkMulti + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattleTowerLobby_EventScript_BufferTextSingle + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleTowerLobby_EventScript_BufferTextDouble + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS, BattleFrontier_BattleTowerLobby_EventScript_BufferTextMulti + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS, BattleFrontier_BattleTowerLobby_EventScript_BufferTextLinkMulti return BattleFrontier_BattleTowerLobby_EventScript_BufferTextSingle:: - bufferstdstring 0, STDSTRING_SINGLE + bufferstdstring STR_VAR_1, STDSTRING_SINGLE return BattleFrontier_BattleTowerLobby_EventScript_BufferTextDouble:: - bufferstdstring 0, STDSTRING_DOUBLE + bufferstdstring STR_VAR_1, STDSTRING_DOUBLE return BattleFrontier_BattleTowerLobby_EventScript_BufferTextMulti:: - bufferstdstring 0, STDSTRING_MULTI + bufferstdstring STR_VAR_1, STDSTRING_MULTI return BattleFrontier_BattleTowerLobby_EventScript_BufferTextLinkMulti:: - bufferstdstring 0, STDSTRING_MULTI_LINK + bufferstdstring STR_VAR_1, STDSTRING_MULTI_LINK return BattleFrontier_BattleTowerLobby_EventScript_SetAttendantTalkedTo:: - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_TalkedToSinglesAttendant - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_TalkedToDoublesAttendant - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_TalkedToMultisAttendant - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_TalkedToLinkMultisAttendant + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattleTowerLobby_EventScript_TalkedToSinglesAttendant + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleTowerLobby_EventScript_TalkedToDoublesAttendant + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS, BattleFrontier_BattleTowerLobby_EventScript_TalkedToMultisAttendant + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS, BattleFrontier_BattleTowerLobby_EventScript_TalkedToLinkMultisAttendant return BattleFrontier_BattleTowerLobby_EventScript_TalkedToSinglesAttendant:: @@ -729,14 +695,10 @@ BattleFrontier_BattleTowerLobby_EventScript_TalkedToLinkMultisAttendant:: return BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoord:: - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordSingles - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordDoubles - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordMultis - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordLinkMultis + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordSingles + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordDoubles + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS, BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordMultis + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS, BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordLinkMultis return BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordSingles:: @@ -756,14 +718,10 @@ BattleFrontier_BattleTowerLobby_EventScript_GetDoorXCoordLinkMultis:: return BattleFrontier_BattleTowerLobby_EventScript_GetPartySize:: - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetSinglesPartySize - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetDoublesPartySize - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetMultisPartySize - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_GetLinkMultisPartySize + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattleTowerLobby_EventScript_GetSinglesPartySize + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleTowerLobby_EventScript_GetDoublesPartySize + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS, BattleFrontier_BattleTowerLobby_EventScript_GetMultisPartySize + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS, BattleFrontier_BattleTowerLobby_EventScript_GetLinkMultisPartySize return BattleFrontier_BattleTowerLobby_EventScript_GetSinglesPartySize:: @@ -793,26 +751,18 @@ BattleFrontier_BattleTowerLobby_EventScript_TryCableLink:: setvar VAR_0x8005, 0 special TryBattleLinkup waitstate - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_CableLinkSuccessful - compare VAR_RESULT, LINKUP_SOMEONE_NOT_READY - goto_if_eq CableClub_EventScript_AbortLinkSomeoneNotReady - compare VAR_RESULT, LINKUP_DIFF_SELECTIONS - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_AbortLinkDifferentSelections - compare VAR_RESULT, LINKUP_WRONG_NUM_PLAYERS - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_AbortLinkIncorrectNumberOfPlayers - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge - compare VAR_RESULT, LINKUP_CONNECTION_ERROR - goto_if_eq CableClub_EventScript_AbortLinkConnectionError - compare VAR_RESULT, LINKUP_FAILED_BATTLE_TOWER - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_AbortLink + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, BattleFrontier_BattleTowerLobby_EventScript_CableLinkSuccessful + goto_if_eq VAR_RESULT, LINKUP_SOMEONE_NOT_READY, CableClub_EventScript_AbortLinkSomeoneNotReady + goto_if_eq VAR_RESULT, LINKUP_DIFF_SELECTIONS, BattleFrontier_BattleTowerLobby_EventScript_AbortLinkDifferentSelections + goto_if_eq VAR_RESULT, LINKUP_WRONG_NUM_PLAYERS, BattleFrontier_BattleTowerLobby_EventScript_AbortLinkIncorrectNumberOfPlayers + goto_if_eq VAR_RESULT, LINKUP_FAILED, BattleFrontier_BattleTowerLobby_EventScript_CancelChallenge + goto_if_eq VAR_RESULT, LINKUP_CONNECTION_ERROR, CableClub_EventScript_AbortLinkConnectionError + goto_if_eq VAR_RESULT, LINKUP_FAILED_BATTLE_TOWER, BattleFrontier_BattleTowerLobby_EventScript_AbortLink end BattleFrontier_BattleTowerLobby_EventScript_AbortLinkDifferentSelections:: special CloseLink - compare VAR_0x8005, 3 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_FriendDifferentSelection + goto_if_eq VAR_0x8005, 3, BattleFrontier_BattleTowerLobby_EventScript_FriendDifferentSelection msgbox Text_PlayersMadeDifferentSelections, MSGBOX_DEFAULT release end @@ -832,12 +782,9 @@ BattleFrontier_BattleTowerLobby_EventScript_AbortLinkIncorrectNumberOfPlayers:: BattleFrontier_BattleTowerLobby_EventScript_AbortLink:: special CloseLink - compare VAR_0x8005, 0 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_FriendChoseDifferentLvlMode - compare VAR_0x8005, 1 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_FriendAlsoSelectedMon - compare VAR_0x8005, 2 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_FriendAlsoSelectedMons + call_if_eq VAR_0x8005, 0, BattleFrontier_BattleTowerLobby_EventScript_FriendChoseDifferentLvlMode + call_if_eq VAR_0x8005, 1, BattleFrontier_BattleTowerLobby_EventScript_FriendAlsoSelectedMon + call_if_eq VAR_0x8005, 2, BattleFrontier_BattleTowerLobby_EventScript_FriendAlsoSelectedMons msgbox BattleFrontier_BattleTowerLobby_Text_ChooseDifferentMonsMatchLvlMode, MSGBOX_DEFAULT release end @@ -891,27 +838,19 @@ BattleFrontier_BattleTowerLobby_EventScript_ChooseLeader:: BattleFrontier_BattleTowerLobby_EventScript_TryBecomeLeader:: call CableClub_EventScript_TryBecomeLinkLeader - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_WirelessLinkSuccessful - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_ChooseLeader - compare VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_TryBecomeLeader - compare VAR_RESULT, LINKUP_FAILED_BATTLE_TOWER - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_AbortLink + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, BattleFrontier_BattleTowerLobby_EventScript_WirelessLinkSuccessful + goto_if_eq VAR_RESULT, LINKUP_FAILED, BattleFrontier_BattleTowerLobby_EventScript_ChooseLeader + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, BattleFrontier_BattleTowerLobby_EventScript_TryBecomeLeader + goto_if_eq VAR_RESULT, LINKUP_FAILED_BATTLE_TOWER, BattleFrontier_BattleTowerLobby_EventScript_AbortLink release return BattleFrontier_BattleTowerLobby_EventScript_TryJoinGroup:: call CableClub_EventScript_TryJoinLinkGroup - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_WirelessLinkSuccessful - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_ChooseLeader - compare VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_TryJoinGroup - compare VAR_RESULT, LINKUP_FAILED_BATTLE_TOWER - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_AbortLink + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, BattleFrontier_BattleTowerLobby_EventScript_WirelessLinkSuccessful + goto_if_eq VAR_RESULT, LINKUP_FAILED, BattleFrontier_BattleTowerLobby_EventScript_ChooseLeader + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, BattleFrontier_BattleTowerLobby_EventScript_TryJoinGroup + goto_if_eq VAR_RESULT, LINKUP_FAILED_BATTLE_TOWER, BattleFrontier_BattleTowerLobby_EventScript_AbortLink release return diff --git a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc index 9bfcfddc2f..e1cb64dda0 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc @@ -16,17 +16,14 @@ BattleFrontier_BattleTowerMultiBattleRoom_MapScripts:: @ The multi partner is represented by LOCALID_PARTNER, which has the gfx id VAR_OBJ_GFX_ID_E BattleFrontier_BattleTowerMultiBattleRoom_OnTransition: - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS - call_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_SetObjGfx - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - call_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_SetLinkPlayerGfx + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_SetObjGfx + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_SetLinkPlayerGfx end BattleFrontier_BattleTowerMultiBattleRoom_EventScript_SetObjGfx:: tower_setpartnergfx checkplayergender - compare VAR_RESULT, FEMALE - goto_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_SetPlayerGfxFemale + goto_if_eq VAR_RESULT, FEMALE, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_SetPlayerGfxFemale setvar VAR_OBJ_GFX_ID_F, OBJ_EVENT_GFX_BRENDAN_NORMAL return @@ -56,8 +53,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_EnterRoom:: applymovement LOCALID_PARTNER, BattleFrontier_BattleTowerMultiBattleRoom_Movement_PartnerEnterRoom waitmovement 0 frontier_get FRONTIER_DATA_BATTLE_NUM - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_OpponentsEnter + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_OpponentsEnter applymovement LOCALID_ATTENDANT_1, BattleFrontier_BattleTowerMultiBattleRoom_Movement_AttendantApproachPlayer applymovement LOCALID_ATTENDANT_2, BattleFrontier_BattleTowerMultiBattleRoom_Movement_AttendantApproachPlayer waitmovement 0 @@ -74,8 +70,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_OpponentsEnter:: applymovement LOCALID_OPPONENT_1, BattleFrontier_BattleTowerMultiBattleRoom_Movement_Opponent1Enter applymovement LOCALID_OPPONENT_2, BattleFrontier_BattleTowerMultiBattleRoom_Movement_Opponent2Enter waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - goto_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_DoOpponentIntrosLink + goto_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_DoOpponentIntrosLink tower_getopponentintro 0 delay 15 applymovement LOCALID_OPPONENT_1, BattleFrontier_BattleTowerMultiBattleRoom_Movement_WalkInPlaceLeft @@ -130,8 +125,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_DefeatedOpponents:: applymovement LOCALID_PLAYER, BattleFrontier_BattleTowerMultiBattleRoom_Movement_FaceAttendant applymovement LOCALID_PARTNER, BattleFrontier_BattleTowerMultiBattleRoom_Movement_FaceAttendant waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - goto_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RetorePartyMsgLink + goto_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RetorePartyMsgLink msgbox BattleFrontier_BattleTowerBattleRoom_Text_RestoreMonsToFullHealth, MSGBOX_DEFAULT goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RestoreParty @@ -142,19 +136,16 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RetorePartyMsgLink:: BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RestoreParty:: special LoadPlayerParty frontier_setpartyorder FRONTIER_MULTI_PARTY_SIZE - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - call_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReconnectLink + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReconnectLink playfanfare MUS_HEAL waitfanfare special HealPlayerParty BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents:: frontier_get FRONTIER_DATA_BATTLE_NUM call BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyForNextOpponentSet - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - goto_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallenge + goto_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallenge call BattleFrontier_EventScript_GetCantRecordBattle - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsNoRecord + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponentsNoRecord multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, TRUE switch VAR_RESULT case 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallenge @@ -230,8 +221,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_PauseChallenge:: end BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyForNextOpponentSet:: - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - goto_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyForNextOpponentSetLink + goto_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyForNextOpponentSetLink copyvar VAR_TEMP_F, VAR_RESULT switch VAR_TEMP_F case 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ReadyFor2ndOpponentSet @@ -347,8 +337,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_ContinueChallengeLink:: waitmessage special LinkRetireStatusWithBattleTowerPartner waitstate - compare VAR_RESULT, BATTLE_TOWER_LINKSTAT_CONTINUE - goto_if_ne BattleFrontier_BattleTowerMultiBattleRoom_EventScript_WarpToLobbyLost + goto_if_ne VAR_RESULT, BATTLE_TOWER_LINKSTAT_CONTINUE, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_WarpToLobbyLost goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_LinkDelayForMsg end @@ -368,8 +357,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskRetireChallengeLink:: message BattleFrontier_BattleTowerBattleRoom_Text_CancelYourChallenge waitmessage multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RetireChallengeLink + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RetireChallengeLink goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents end diff --git a/data/maps/BattleFrontier_BattleTowerMultiCorridor/scripts.inc b/data/maps/BattleFrontier_BattleTowerMultiCorridor/scripts.inc index 70922d473c..b36d2e6fd3 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerMultiCorridor/scripts.inc @@ -14,17 +14,14 @@ BattleFrontier_BattleTowerMultiCorridor_MapScripts:: @ The multi partner is represented by LOCALID_PARTNER, and has the gfx id VAR_OBJ_GFX_ID_E BattleFrontier_BattleTowerMultiCorridor_OnTransition: - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS - call_if_eq BattleFrontier_BattleTowerMultiCorridor_EventScript_SetObjGfx - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - call_if_eq BattleFrontier_BattleTowerMultiCorridor_EventScript_SetLinkPlayerGfx + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS, BattleFrontier_BattleTowerMultiCorridor_EventScript_SetObjGfx + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS, BattleFrontier_BattleTowerMultiCorridor_EventScript_SetLinkPlayerGfx end BattleFrontier_BattleTowerMultiCorridor_EventScript_SetObjGfx:: tower_setpartnergfx checkplayergender - compare VAR_RESULT, FEMALE - goto_if_eq BattleFrontier_BattleTowerMultiCorridor_EventScript_SetPlayerGfxFemale + goto_if_eq VAR_RESULT, FEMALE, BattleFrontier_BattleTowerMultiCorridor_EventScript_SetPlayerGfxFemale setvar VAR_OBJ_GFX_ID_F, OBJ_EVENT_GFX_BRENDAN_NORMAL return @@ -95,29 +92,25 @@ BattleFrontier_BattleTowerMultiCorridor_EventScript_EnterCorridor:: end BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToBattleRoom:: - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToNormalBattleRoom - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToNormalBattleRoom - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS - call_if_eq BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToMultiBattleRoom - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - call_if_eq BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToLinkMultiBattleRoom + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES, BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToNormalBattleRoom + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES, BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToNormalBattleRoom + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS, BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToMultiBattleRoom + call_if_eq VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS, BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToLinkMultiBattleRoom return BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToNormalBattleRoom:: - warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM, 255, 4, 8 + warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM, 4, 8 waitstate return BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToMultiBattleRoom:: - warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM, 255, 4, 5 + warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM, 4, 5 waitstate return @ Unnecessary duplicate of the above BattleFrontier_BattleTowerMultiCorridor_EventScript_WarpToLinkMultiBattleRoom:: - warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM, 255, 4, 5 + warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM, 4, 5 waitstate return diff --git a/data/maps/BattleFrontier_BattleTowerMultiPartnerRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerMultiPartnerRoom/scripts.inc index 06038b43cd..b9fc7d5543 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiPartnerRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerMultiPartnerRoom/scripts.inc @@ -87,8 +87,7 @@ BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_Attendant:: message BattleFrontier_BattleTowerMultiPartnerRoom_Text_QuitLookingForPartner waitmessage multichoicedefault 20, 8, MULTI_YESNO, 1, FALSE - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_QuitChallenge + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_QuitChallenge msgbox BattleFrontier_BattleTowerMultiPartnerRoom_Text_PleaseFindPartner2, MSGBOX_DEFAULT release end @@ -108,7 +107,7 @@ BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_EnterElevator:: call BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_MoveToElevator closedoor 10, 1 waitdooranim - warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR, 255, 1, 6 + warp MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR, 1, 6 waitstate releaseall end @@ -183,13 +182,11 @@ BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_TalkToPotentialPartner:: waitmessage waitbuttonpress closemessage - compare VAR_FACING, DIR_SOUTH - call_if_ne BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_PartnerExit - compare VAR_FACING, DIR_SOUTH - call_if_eq BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_PartnerExitSouth + call_if_ne VAR_FACING, DIR_SOUTH, BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_PartnerExit + call_if_eq VAR_FACING, DIR_SOUTH, BattleFrontier_BattleTowerMultiPartnerRoom_EventScript_PartnerExitSouth removeobject VAR_LAST_TALKED setflag FLAG_CHOSEN_MULTI_BATTLE_NPC_PARTNER - warpsilent MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM, 255, 10, 3 + warpsilent MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM, 10, 3 waitstate release end diff --git a/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc b/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc index 360b8162cf..703b1ec900 100644 --- a/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc +++ b/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc @@ -14,38 +14,30 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ClerkGoodbye:: BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize:: specialvar VAR_TEMP_1, GetFrontierBattlePoints - compare VAR_TEMP_1, VAR_0x8008 - goto_if_ge BattleFrontier_ExchangeServiceCorner_EventScript_TryGivePrize + goto_if_ge VAR_TEMP_1, VAR_0x8008, BattleFrontier_ExchangeServiceCorner_EventScript_TryGivePrize msgbox BattleFrontier_ExchangeServiceCorner_Text_DontHaveEnoughPoints, MSGBOX_DEFAULT - compare VAR_TEMP_2, EXCHANGE_CORNER_DECOR1_CLERK - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 - compare VAR_TEMP_2, EXCHANGE_CORNER_DECOR2_CLERK - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 - compare VAR_TEMP_2, EXCHANGE_CORNER_VITAMIN_CLERK - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin + goto_if_eq VAR_TEMP_2, EXCHANGE_CORNER_DECOR1_CLERK, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 + goto_if_eq VAR_TEMP_2, EXCHANGE_CORNER_DECOR2_CLERK, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 + goto_if_eq VAR_TEMP_2, EXCHANGE_CORNER_VITAMIN_CLERK, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin goto BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem end BattleFrontier_ExchangeServiceCorner_EventScript_TryGivePrize:: - compare VAR_TEMP_2, EXCHANGE_CORNER_DECOR1_CLERK - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveDecor - compare VAR_TEMP_2, EXCHANGE_CORNER_DECOR2_CLERK - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveDecor + goto_if_eq VAR_TEMP_2, EXCHANGE_CORNER_DECOR1_CLERK, BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveDecor + goto_if_eq VAR_TEMP_2, EXCHANGE_CORNER_DECOR2_CLERK, BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveDecor goto BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveItem end BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveDecor:: checkdecorspace VAR_0x8009 - compare VAR_RESULT, FALSE - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_NoRoomForDecor + goto_if_eq VAR_RESULT, FALSE, BattleFrontier_ExchangeServiceCorner_EventScript_NoRoomForDecor copyvar VAR_0x8004, VAR_0x8008 special TakeFrontierBattlePoints adddecoration VAR_0x8009 special UpdateBattlePointsWindow playse SE_SHOP msgbox BattleFrontier_ExchangeServiceCorner_Text_WellSendItToPC, MSGBOX_DEFAULT - compare VAR_TEMP_2, EXCHANGE_CORNER_DECOR1_CLERK - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 + goto_if_eq VAR_TEMP_2, EXCHANGE_CORNER_DECOR1_CLERK, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 goto BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 end @@ -56,17 +48,15 @@ BattleFrontier_ExchangeServiceCorner_EventScript_NoRoomForDecor:: end BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveItem:: - checkitemspace VAR_0x8009, 1 - compare VAR_RESULT, FALSE - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_BagFull + checkitemspace VAR_0x8009 + goto_if_eq VAR_RESULT, FALSE, BattleFrontier_ExchangeServiceCorner_EventScript_BagFull copyvar VAR_0x8004, VAR_0x8008 special TakeFrontierBattlePoints additem VAR_0x8009 special UpdateBattlePointsWindow playse SE_SHOP msgbox BattleFrontier_ExchangeServiceCorner_Text_HereIsYourPrize, MSGBOX_DEFAULT - compare VAR_TEMP_2, EXCHANGE_CORNER_VITAMIN_CLERK - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin + goto_if_eq VAR_TEMP_2, EXCHANGE_CORNER_VITAMIN_CLERK, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin goto BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem end @@ -107,8 +97,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1:: BattleFrontier_ExchangeServiceCorner_EventScript_KissPoster:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmKissPoster, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 setvar VAR_0x8008, 16 setvar VAR_0x8009, DECOR_KISS_POSTER goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -116,8 +105,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_KissPoster:: BattleFrontier_ExchangeServiceCorner_EventScript_KissCushion:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmKissCushion, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 setvar VAR_0x8008, 32 setvar VAR_0x8009, DECOR_KISS_CUSHION goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -125,8 +113,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_KissCushion:: BattleFrontier_ExchangeServiceCorner_EventScript_SmoochumDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmSmoochumDoll, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 setvar VAR_0x8008, 32 setvar VAR_0x8009, DECOR_SMOOCHUM_DOLL goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -134,8 +121,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_SmoochumDoll:: BattleFrontier_ExchangeServiceCorner_EventScript_TogepiDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmTogepiDoll, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 setvar VAR_0x8008, 48 setvar VAR_0x8009, DECOR_TOGEPI_DOLL goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -143,8 +129,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_TogepiDoll:: BattleFrontier_ExchangeServiceCorner_EventScript_MeowthDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmMeowthDoll, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 setvar VAR_0x8008, 48 setvar VAR_0x8009, DECOR_MEOWTH_DOLL goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -152,8 +137,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_MeowthDoll:: BattleFrontier_ExchangeServiceCorner_EventScript_ClefairyDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmClefairyDoll, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 setvar VAR_0x8008, 48 setvar VAR_0x8009, DECOR_CLEFAIRY_DOLL goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -161,8 +145,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ClefairyDoll:: BattleFrontier_ExchangeServiceCorner_EventScript_DittoDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmDittoDoll, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 setvar VAR_0x8008, 48 setvar VAR_0x8009, DECOR_DITTO_DOLL goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -170,8 +153,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_DittoDoll:: BattleFrontier_ExchangeServiceCorner_EventScript_CyndaquilDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmCyndaquilDoll, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 setvar VAR_0x8008, 80 setvar VAR_0x8009, DECOR_CYNDAQUIL_DOLL goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -179,8 +161,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_CyndaquilDoll:: BattleFrontier_ExchangeServiceCorner_EventScript_ChikoritaDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmChikoritaDoll, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 setvar VAR_0x8008, 80 setvar VAR_0x8009, DECOR_CHIKORITA_DOLL goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -188,8 +169,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ChikoritaDoll:: BattleFrontier_ExchangeServiceCorner_EventScript_TotodileDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmTotodileDoll, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 setvar VAR_0x8008, 80 setvar VAR_0x8009, DECOR_TOTODILE_DOLL goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -221,8 +201,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2:: BattleFrontier_ExchangeServiceCorner_EventScript_LaprasDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmLaprasDoll, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 setvar VAR_0x8008, 128 setvar VAR_0x8009, DECOR_LAPRAS_DOLL goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -230,8 +209,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_LaprasDoll:: BattleFrontier_ExchangeServiceCorner_EventScript_SnorlaxDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmSnorlaxDoll, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 setvar VAR_0x8008, 128 setvar VAR_0x8009, DECOR_SNORLAX_DOLL goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -239,8 +217,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_SnorlaxDoll:: BattleFrontier_ExchangeServiceCorner_EventScript_VenusaurDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmVenusaurDoll, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 setvar VAR_0x8008, 256 setvar VAR_0x8009, DECOR_VENUSAUR_DOLL goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -248,8 +225,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_VenusaurDoll:: BattleFrontier_ExchangeServiceCorner_EventScript_CharizardDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmCharizardDoll, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 setvar VAR_0x8008, 256 setvar VAR_0x8009, DECOR_CHARIZARD_DOLL goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -257,8 +233,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_CharizardDoll:: BattleFrontier_ExchangeServiceCorner_EventScript_BlastoiseDoll:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmBlastoiseDoll, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2 setvar VAR_0x8008, 256 setvar VAR_0x8009, DECOR_BLASTOISE_DOLL goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -291,8 +266,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin:: BattleFrontier_ExchangeServiceCorner_EventScript_Protein:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmProtein, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin setvar VAR_0x8008, 1 setvar VAR_0x8009, ITEM_PROTEIN goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -300,8 +274,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_Protein:: BattleFrontier_ExchangeServiceCorner_EventScript_Calcium:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmCalcium, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin setvar VAR_0x8008, 1 setvar VAR_0x8009, ITEM_CALCIUM goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -309,8 +282,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_Calcium:: BattleFrontier_ExchangeServiceCorner_EventScript_Iron:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmIron, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin setvar VAR_0x8008, 1 setvar VAR_0x8009, ITEM_IRON goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -318,8 +290,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_Iron:: BattleFrontier_ExchangeServiceCorner_EventScript_Zinc:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmZinc, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin setvar VAR_0x8008, 1 setvar VAR_0x8009, ITEM_ZINC goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -327,8 +298,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_Zinc:: BattleFrontier_ExchangeServiceCorner_EventScript_Carbos:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmCarbos, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin setvar VAR_0x8008, 1 setvar VAR_0x8009, ITEM_CARBOS goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -336,8 +306,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_Carbos:: BattleFrontier_ExchangeServiceCorner_EventScript_HPUp:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmHPUp, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin setvar VAR_0x8008, 1 setvar VAR_0x8009, ITEM_HP_UP goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -373,8 +342,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem:: BattleFrontier_ExchangeServiceCorner_EventScript_Leftovers:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmLeftovers, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem setvar VAR_0x8008, 48 setvar VAR_0x8009, ITEM_LEFTOVERS goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -382,8 +350,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_Leftovers:: BattleFrontier_ExchangeServiceCorner_EventScript_WhiteHerb:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmWhiteHerb, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem setvar VAR_0x8008, 48 setvar VAR_0x8009, ITEM_WHITE_HERB goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -391,8 +358,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_WhiteHerb:: BattleFrontier_ExchangeServiceCorner_EventScript_QuickClaw:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmQuickClaw, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem setvar VAR_0x8008, 48 setvar VAR_0x8009, ITEM_QUICK_CLAW goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -400,8 +366,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_QuickClaw:: BattleFrontier_ExchangeServiceCorner_EventScript_MentalHerb:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmMentalHerb, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem setvar VAR_0x8008, 48 setvar VAR_0x8009, ITEM_MENTAL_HERB goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -409,8 +374,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_MentalHerb:: BattleFrontier_ExchangeServiceCorner_EventScript_Brightpowder:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmBrightpowder, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem setvar VAR_0x8008, 64 setvar VAR_0x8009, ITEM_BRIGHT_POWDER goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -418,8 +382,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_Brightpowder:: BattleFrontier_ExchangeServiceCorner_EventScript_ChoiceBand:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmChoiceBand, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem setvar VAR_0x8008, 64 setvar VAR_0x8009, ITEM_CHOICE_BAND goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -427,8 +390,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ChoiceBand:: BattleFrontier_ExchangeServiceCorner_EventScript_KingsRock:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmKingsRock, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem setvar VAR_0x8008, 64 setvar VAR_0x8009, ITEM_KINGS_ROCK goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -436,8 +398,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_KingsRock:: BattleFrontier_ExchangeServiceCorner_EventScript_FocusBand:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmFocusBand, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem setvar VAR_0x8008, 64 setvar VAR_0x8009, ITEM_FOCUS_BAND goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize @@ -445,8 +406,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_FocusBand:: BattleFrontier_ExchangeServiceCorner_EventScript_ScopeLens:: msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmScopeLens, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem + goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem setvar VAR_0x8008, 64 setvar VAR_0x8009, ITEM_SCOPE_LENS goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize diff --git a/data/maps/BattleFrontier_Lounge1/scripts.inc b/data/maps/BattleFrontier_Lounge1/scripts.inc index 0455d577ce..6aca2b4ced 100644 --- a/data/maps/BattleFrontier_Lounge1/scripts.inc +++ b/data/maps/BattleFrontier_Lounge1/scripts.inc @@ -14,10 +14,8 @@ BattleFrontier_Lounge1_EventScript_Breeder:: BattleFrontier_Lounge1_EventScript_ChooseMonToShowBreeder:: special ChoosePartyMon waitstate - compare VAR_0x8004, 255 - goto_if_ne BattleFrontier_Lounge1_EventScript_ShowMonToBreeder - compare VAR_0x8004, 255 - goto_if_eq BattleFrontier_Lounge1_EventScript_CancelMonSelect + goto_if_ne VAR_0x8004, PARTY_NOTHING_CHOSEN, BattleFrontier_Lounge1_EventScript_ShowMonToBreeder + goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, BattleFrontier_Lounge1_EventScript_CancelMonSelect end BattleFrontier_Lounge1_EventScript_BreederIntro:: @@ -34,17 +32,12 @@ BattleFrontier_Lounge1_EventScript_AlreadyMetBreeder:: @ VAR_0x8007: IV of the highest IV stat BattleFrontier_Lounge1_EventScript_ShowMonToBreeder:: specialvar VAR_RESULT, ScriptGetPartyMonSpecies - compare VAR_RESULT, SPECIES_EGG - goto_if_eq BattleFrontier_Lounge1_EventScript_ShowEggToBreeder + goto_if_eq VAR_RESULT, SPECIES_EGG, BattleFrontier_Lounge1_EventScript_ShowEggToBreeder special BufferVarsForIVRater - compare VAR_0x8005, 90 @ Average of 15 - goto_if_le BattleFrontier_Lounge1_EventScript_AverageTotalIVs - compare VAR_0x8005, 120 @ Average of 20 - goto_if_le BattleFrontier_Lounge1_EventScript_AboveAverageTotalIVs - compare VAR_0x8005, 150 @ Average of 25 - goto_if_le BattleFrontier_Lounge1_EventScript_HighTotalIVs - compare VAR_0x8005, 151 @ Average of > 25 - goto_if_ge BattleFrontier_Lounge1_EventScript_VeryHighTotalIVs + goto_if_le VAR_0x8005, 90, BattleFrontier_Lounge1_EventScript_AverageTotalIVs @ Average of 15 + goto_if_le VAR_0x8005, 120, BattleFrontier_Lounge1_EventScript_AboveAverageTotalIVs @ Average of 20 + goto_if_le VAR_0x8005, 150, BattleFrontier_Lounge1_EventScript_HighTotalIVs @ Average of 25 + goto_if_ge VAR_0x8005, 151, BattleFrontier_Lounge1_EventScript_VeryHighTotalIVs @ Average of > 25 end BattleFrontier_Lounge1_EventScript_ShowEggToBreeder:: @@ -54,30 +47,20 @@ BattleFrontier_Lounge1_EventScript_ShowEggToBreeder:: @ Comment on the highest IV stat BattleFrontier_Lounge1_EventScript_HighestIVStat:: - compare VAR_0x8006, STAT_HP - goto_if_eq BattleFrontier_Lounge1_EventScript_HighestIVHP - compare VAR_0x8006, STAT_ATK - goto_if_eq BattleFrontier_Lounge1_EventScript_HighestIVAtk - compare VAR_0x8006, STAT_DEF - goto_if_eq BattleFrontier_Lounge1_EventScript_HighestIVDef - compare VAR_0x8006, STAT_SPEED - goto_if_eq BattleFrontier_Lounge1_EventScript_HighestIVSpeed - compare VAR_0x8006, STAT_SPATK - goto_if_eq BattleFrontier_Lounge1_EventScript_HighestIVSpAtk - compare VAR_0x8006, STAT_SPDEF - goto_if_eq BattleFrontier_Lounge1_EventScript_HighestIVSpDef + goto_if_eq VAR_0x8006, STAT_HP, BattleFrontier_Lounge1_EventScript_HighestIVHP + goto_if_eq VAR_0x8006, STAT_ATK, BattleFrontier_Lounge1_EventScript_HighestIVAtk + goto_if_eq VAR_0x8006, STAT_DEF, BattleFrontier_Lounge1_EventScript_HighestIVDef + goto_if_eq VAR_0x8006, STAT_SPEED, BattleFrontier_Lounge1_EventScript_HighestIVSpeed + goto_if_eq VAR_0x8006, STAT_SPATK, BattleFrontier_Lounge1_EventScript_HighestIVSpAtk + goto_if_eq VAR_0x8006, STAT_SPDEF, BattleFrontier_Lounge1_EventScript_HighestIVSpDef end @ Comment on the highest IV value BattleFrontier_Lounge1_EventScript_HighestIVValue:: - compare VAR_0x8007, 15 - goto_if_le BattleFrontier_Lounge1_EventScript_HighestIVLow - compare VAR_0x8007, 25 - goto_if_le BattleFrontier_Lounge1_EventScript_HighestIVMid - compare VAR_0x8007, 30 - goto_if_le BattleFrontier_Lounge1_EventScript_HighestIVHigh - compare VAR_0x8007, 31 - goto_if_ge BattleFrontier_Lounge1_EventScript_HighestIVMax + goto_if_le VAR_0x8007, 15, BattleFrontier_Lounge1_EventScript_HighestIVLow + goto_if_le VAR_0x8007, 25, BattleFrontier_Lounge1_EventScript_HighestIVMid + goto_if_le VAR_0x8007, 30, BattleFrontier_Lounge1_EventScript_HighestIVHigh + goto_if_ge VAR_0x8007, 31, BattleFrontier_Lounge1_EventScript_HighestIVMax end BattleFrontier_Lounge1_EventScript_EndBreederComments:: diff --git a/data/maps/BattleFrontier_Lounge2/scripts.inc b/data/maps/BattleFrontier_Lounge2/scripts.inc index d98a9f64e1..8efc172936 100644 --- a/data/maps/BattleFrontier_Lounge2/scripts.inc +++ b/data/maps/BattleFrontier_Lounge2/scripts.inc @@ -22,30 +22,18 @@ BattleFrontier_Lounge2_EventScript_AlreadyMetManiac:: end BattleFrontier_Lounge2_EventScript_GiveAdvice:: - compare VAR_FRONTIER_MANIAC_FACILITY, 0 - call_if_eq BattleFrontier_Lounge2_EventScript_BufferSingle - compare VAR_FRONTIER_MANIAC_FACILITY, 1 - call_if_eq BattleFrontier_Lounge2_EventScript_BufferDouble - compare VAR_FRONTIER_MANIAC_FACILITY, 2 - call_if_eq BattleFrontier_Lounge2_EventScript_BufferMulti - compare VAR_FRONTIER_MANIAC_FACILITY, 3 - call_if_eq BattleFrontier_Lounge2_EventScript_BufferMultiLink - compare VAR_FRONTIER_MANIAC_FACILITY, 4 - call_if_eq BattleFrontier_Lounge2_EventScript_BufferBattleDome - compare VAR_FRONTIER_MANIAC_FACILITY, 5 - call_if_eq BattleFrontier_Lounge2_EventScript_BufferBattleFactory - compare VAR_FRONTIER_MANIAC_FACILITY, 6 - call_if_eq BattleFrontier_Lounge2_EventScript_BufferBattlePalace - compare VAR_FRONTIER_MANIAC_FACILITY, 7 - call_if_eq BattleFrontier_Lounge2_EventScript_BufferBattleArena - compare VAR_FRONTIER_MANIAC_FACILITY, 8 - call_if_eq BattleFrontier_Lounge2_EventScript_BufferBattlePike - compare VAR_FRONTIER_MANIAC_FACILITY, 9 - call_if_eq BattleFrontier_Lounge2_EventScript_BufferBattlePyramid - compare VAR_FRONTIER_MANIAC_FACILITY, 3 - call_if_le BattleFrontier_Lounge2_EventScript_BattleTowerNews - compare VAR_FRONTIER_MANIAC_FACILITY, 4 - call_if_ge BattleFrontier_Lounge2_EventScript_FacilityNews + call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 0, BattleFrontier_Lounge2_EventScript_BufferSingle + call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 1, BattleFrontier_Lounge2_EventScript_BufferDouble + call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 2, BattleFrontier_Lounge2_EventScript_BufferMulti + call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 3, BattleFrontier_Lounge2_EventScript_BufferMultiLink + call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 4, BattleFrontier_Lounge2_EventScript_BufferBattleDome + call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 5, BattleFrontier_Lounge2_EventScript_BufferBattleFactory + call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 6, BattleFrontier_Lounge2_EventScript_BufferBattlePalace + call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 7, BattleFrontier_Lounge2_EventScript_BufferBattleArena + call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 8, BattleFrontier_Lounge2_EventScript_BufferBattlePike + call_if_eq VAR_FRONTIER_MANIAC_FACILITY, 9, BattleFrontier_Lounge2_EventScript_BufferBattlePyramid + call_if_le VAR_FRONTIER_MANIAC_FACILITY, 3, BattleFrontier_Lounge2_EventScript_BattleTowerNews + call_if_ge VAR_FRONTIER_MANIAC_FACILITY, 4, BattleFrontier_Lounge2_EventScript_FacilityNews special ShowFrontierManiacMessage waitmessage waitbuttonpress @@ -61,43 +49,43 @@ BattleFrontier_Lounge2_EventScript_FacilityNews:: return BattleFrontier_Lounge2_EventScript_BufferSingle:: - bufferstdstring 0, STDSTRING_SINGLE + bufferstdstring STR_VAR_1, STDSTRING_SINGLE return BattleFrontier_Lounge2_EventScript_BufferDouble:: - bufferstdstring 0, STDSTRING_DOUBLE + bufferstdstring STR_VAR_1, STDSTRING_DOUBLE return BattleFrontier_Lounge2_EventScript_BufferMulti:: - bufferstdstring 0, STDSTRING_MULTI + bufferstdstring STR_VAR_1, STDSTRING_MULTI return BattleFrontier_Lounge2_EventScript_BufferMultiLink:: - bufferstdstring 0, STDSTRING_MULTI_LINK + bufferstdstring STR_VAR_1, STDSTRING_MULTI_LINK return BattleFrontier_Lounge2_EventScript_BufferBattleDome:: - bufferstdstring 0, STDSTRING_BATTLE_DOME + bufferstdstring STR_VAR_1, STDSTRING_BATTLE_DOME return BattleFrontier_Lounge2_EventScript_BufferBattleFactory:: - bufferstdstring 0, STDSTRING_BATTLE_FACTORY + bufferstdstring STR_VAR_1, STDSTRING_BATTLE_FACTORY return BattleFrontier_Lounge2_EventScript_BufferBattlePalace:: - bufferstdstring 0, STDSTRING_BATTLE_PALACE + bufferstdstring STR_VAR_1, STDSTRING_BATTLE_PALACE return BattleFrontier_Lounge2_EventScript_BufferBattleArena:: - bufferstdstring 0, STDSTRING_BATTLE_ARENA + bufferstdstring STR_VAR_1, STDSTRING_BATTLE_ARENA return BattleFrontier_Lounge2_EventScript_BufferBattlePike:: - bufferstdstring 0, STDSTRING_BATTLE_PIKE + bufferstdstring STR_VAR_1, STDSTRING_BATTLE_PIKE return BattleFrontier_Lounge2_EventScript_BufferBattlePyramid:: - bufferstdstring 0, STDSTRING_BATTLE_PYRAMID + bufferstdstring STR_VAR_1, STDSTRING_BATTLE_PYRAMID return BattleFrontier_Lounge2_EventScript_Maniac1:: diff --git a/data/maps/BattleFrontier_Lounge3/scripts.inc b/data/maps/BattleFrontier_Lounge3/scripts.inc index c0a9417385..7d9befafb1 100644 --- a/data/maps/BattleFrontier_Lounge3/scripts.inc +++ b/data/maps/BattleFrontier_Lounge3/scripts.inc @@ -10,8 +10,7 @@ BattleFrontier_Lounge3_EventScript_Gambler:: faceplayer goto_if_set FLAG_MET_BATTLE_FRONTIER_GAMBLER, BattleFrontier_Lounge3_EventScript_AlreadyMetGambler call BattleFrontier_Lounge3_EventScript_CountSilverSymbols - compare VAR_0x8004, 2 - goto_if_le BattleFrontier_Lounge3_EventScript_NotEnoughSilverSymbols + goto_if_le VAR_0x8004, 2, BattleFrontier_Lounge3_EventScript_NotEnoughSilverSymbols setflag FLAG_MET_BATTLE_FRONTIER_GAMBLER msgbox BattleFrontier_Lounge3_Text_YouLookToughExplainGambling, MSGBOX_DEFAULT goto BattleFrontier_Lounge3_EventScript_AskToEnterChallenge @@ -22,11 +21,9 @@ BattleFrontier_Lounge3_EventScript_AskToEnterChallenge:: waitmessage waitbuttonpress msgbox BattleFrontier_Lounge3_Text_HowAboutEnteringEventForMe, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_Lounge3_EventScript_DeclineChallenge + goto_if_eq VAR_RESULT, NO, BattleFrontier_Lounge3_EventScript_DeclineChallenge msgbox BattleFrontier_Lounge3_Text_SpotMeSomeBattlePoints, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_Lounge3_EventScript_DeclineChallenge + goto_if_eq VAR_RESULT, NO, BattleFrontier_Lounge3_EventScript_DeclineChallenge message BattleFrontier_Lounge3_Text_HowMuchCanYouSpot waitmessage special ShowBattlePointsWindow @@ -61,8 +58,7 @@ BattleFrontier_Lounge3_EventScript_Bet15:: BattleFrontier_Lounge3_EventScript_TryPlaceBet:: specialvar VAR_TEMP_1, GetFrontierBattlePoints - compare VAR_TEMP_1, VAR_0x8008 - goto_if_ge BattleFrontier_Lounge3_EventScript_PlaceBet + goto_if_ge VAR_TEMP_1, VAR_0x8008, BattleFrontier_Lounge3_EventScript_PlaceBet msgbox BattleFrontier_Lounge3_Text_YouDontHaveEnoughPoints, MSGBOX_DEFAULT message BattleFrontier_Lounge3_Text_HowMuchCanYouSpot waitmessage @@ -109,27 +105,21 @@ BattleFrontier_Lounge3_EventScript_NotEnoughSilverSymbols:: BattleFrontier_Lounge3_EventScript_AlreadyMetGambler:: msgbox BattleFrontier_Lounge3_Text_Oh, MSGBOX_DEFAULT - compare VAR_FRONTIER_GAMBLER_STATE, FRONTIER_GAMBLER_PLACED_BET - goto_if_ge BattleFrontier_Lounge3_EventScript_CheckBetResults + goto_if_ge VAR_FRONTIER_GAMBLER_STATE, FRONTIER_GAMBLER_PLACED_BET, BattleFrontier_Lounge3_EventScript_CheckBetResults goto BattleFrontier_Lounge3_EventScript_AskToEnterChallenge end BattleFrontier_Lounge3_EventScript_CheckBetResults:: - compare VAR_FRONTIER_GAMBLER_STATE, FRONTIER_GAMBLER_PLACED_BET - goto_if_eq BattleFrontier_Lounge3_EventScript_ChallengeNotAttempted - compare VAR_FRONTIER_GAMBLER_STATE, FRONTIER_GAMBLER_WON - goto_if_eq BattleFrontier_Lounge3_EventScript_WonChallenge + goto_if_eq VAR_FRONTIER_GAMBLER_STATE, FRONTIER_GAMBLER_PLACED_BET, BattleFrontier_Lounge3_EventScript_ChallengeNotAttempted + goto_if_eq VAR_FRONTIER_GAMBLER_STATE, FRONTIER_GAMBLER_WON, BattleFrontier_Lounge3_EventScript_WonChallenge goto BattleFrontier_Lounge3_EventScript_LostChallenge end BattleFrontier_Lounge3_EventScript_WonChallenge:: msgbox BattleFrontier_Lounge3_Text_HelloChampHeresYourPoints, MSGBOX_DEFAULT - compare VAR_FRONTIER_GAMBLER_AMOUNT_BET, FRONTIER_GAMBLER_BET_5 - call_if_eq BattleFrontier_Lounge3_EventScript_RewardBet5 - compare VAR_FRONTIER_GAMBLER_AMOUNT_BET, FRONTIER_GAMBLER_BET_10 - call_if_eq BattleFrontier_Lounge3_EventScript_RewardBet10 - compare VAR_FRONTIER_GAMBLER_AMOUNT_BET, FRONTIER_GAMBLER_BET_15 - call_if_eq BattleFrontier_Lounge3_EventScript_RewardBet15 + call_if_eq VAR_FRONTIER_GAMBLER_AMOUNT_BET, FRONTIER_GAMBLER_BET_5, BattleFrontier_Lounge3_EventScript_RewardBet5 + call_if_eq VAR_FRONTIER_GAMBLER_AMOUNT_BET, FRONTIER_GAMBLER_BET_10, BattleFrontier_Lounge3_EventScript_RewardBet10 + call_if_eq VAR_FRONTIER_GAMBLER_AMOUNT_BET, FRONTIER_GAMBLER_BET_15, BattleFrontier_Lounge3_EventScript_RewardBet15 msgbox BattleFrontier_Lounge3_Text_ObtainedBattlePoints, MSGBOX_GETPOINTS special GiveFrontierBattlePoints msgbox BattleFrontier_Lounge3_Text_ThinkOfMeForAnotherChallenge, MSGBOX_DEFAULT @@ -144,17 +134,17 @@ BattleFrontier_Lounge3_EventScript_LostChallenge:: end BattleFrontier_Lounge3_EventScript_RewardBet5:: - buffernumberstring 0, (BET_AMOUNT_5 * 2) + buffernumberstring STR_VAR_1, (BET_AMOUNT_5 * 2) setvar VAR_0x8004, (BET_AMOUNT_5 * 2) return BattleFrontier_Lounge3_EventScript_RewardBet10:: - buffernumberstring 0, (BET_AMOUNT_10 * 2) + buffernumberstring STR_VAR_1, (BET_AMOUNT_10 * 2) setvar VAR_0x8004, (BET_AMOUNT_10 * 2) return BattleFrontier_Lounge3_EventScript_RewardBet15:: - buffernumberstring 0, (BET_AMOUNT_15 * 2) + buffernumberstring STR_VAR_1, (BET_AMOUNT_15 * 2) setvar VAR_0x8004, (BET_AMOUNT_15 * 2) return diff --git a/data/maps/BattleFrontier_Lounge5/scripts.inc b/data/maps/BattleFrontier_Lounge5/scripts.inc index 61ac0cb9e2..b81c748e5d 100644 --- a/data/maps/BattleFrontier_Lounge5/scripts.inc +++ b/data/maps/BattleFrontier_Lounge5/scripts.inc @@ -5,17 +5,14 @@ BattleFrontier_Lounge5_EventScript_NatureGirl:: lock faceplayer msgbox BattleFrontier_Lounge5_Text_NatureGirlGreeting, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_Lounge5_EventScript_NatureGirlNoneShown + goto_if_eq VAR_RESULT, NO, BattleFrontier_Lounge5_EventScript_NatureGirlNoneShown special ChoosePartyMon waitstate lock faceplayer - compare VAR_0x8004, 255 - goto_if_eq BattleFrontier_Lounge5_EventScript_NatureGirlNoneShown + goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, BattleFrontier_Lounge5_EventScript_NatureGirlNoneShown specialvar VAR_RESULT, ScriptGetPartyMonSpecies - compare VAR_RESULT, SPECIES_EGG - goto_if_eq BattleFrontier_Lounge5_EventScript_NatureGirlEgg + goto_if_eq VAR_RESULT, SPECIES_EGG, BattleFrontier_Lounge5_EventScript_NatureGirlEgg special ShowNatureGirlMessage waitmessage waitbuttonpress diff --git a/data/maps/BattleFrontier_Lounge6/scripts.inc b/data/maps/BattleFrontier_Lounge6/scripts.inc index f88c69324d..0b01b32e3e 100644 --- a/data/maps/BattleFrontier_Lounge6/scripts.inc +++ b/data/maps/BattleFrontier_Lounge6/scripts.inc @@ -10,18 +10,15 @@ BattleFrontier_Lounge6_EventScript_Trader:: specialvar VAR_RESULT, GetInGameTradeSpeciesInfo copyvar VAR_0x8009, VAR_RESULT msgbox BattleFrontier_Lounge6_Text_WouldYouLikeToTrade, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_Lounge6_EventScript_DeclineTrade + goto_if_eq VAR_RESULT, NO, BattleFrontier_Lounge6_EventScript_DeclineTrade special ChoosePartyMon waitstate copyvar VAR_0x800A, VAR_0x8004 - compare VAR_0x8004, 255 - goto_if_eq BattleFrontier_Lounge6_EventScript_DeclineTrade + goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, BattleFrontier_Lounge6_EventScript_DeclineTrade copyvar VAR_0x8005, VAR_0x800A specialvar VAR_RESULT, GetTradeSpecies copyvar VAR_0x800B, VAR_RESULT - compare VAR_RESULT, VAR_0x8009 - goto_if_ne BattleFrontier_Lounge6_EventScript_NotRequestedMon + goto_if_ne VAR_RESULT, VAR_0x8009, BattleFrontier_Lounge6_EventScript_NotRequestedMon copyvar VAR_0x8004, VAR_0x8008 copyvar VAR_0x8005, VAR_0x800A special CreateInGameTradePokemon @@ -38,7 +35,7 @@ BattleFrontier_Lounge6_EventScript_DeclineTrade:: end BattleFrontier_Lounge6_EventScript_NotRequestedMon:: - bufferspeciesname 0, VAR_0x8009 + bufferspeciesname STR_VAR_1, VAR_0x8009 msgbox BattleFrontier_Lounge6_Text_DontTradeForAnythingButMon, MSGBOX_DEFAULT release end diff --git a/data/maps/BattleFrontier_Lounge7/scripts.inc b/data/maps/BattleFrontier_Lounge7/scripts.inc index 2878444706..c52df3cafb 100644 --- a/data/maps/BattleFrontier_Lounge7/scripts.inc +++ b/data/maps/BattleFrontier_Lounge7/scripts.inc @@ -249,14 +249,12 @@ BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection:: copyvar VAR_0x8004, VAR_TEMP_D copyvar VAR_0x8005, VAR_TEMP_E special BufferBattleFrontierTutorMoveName - buffernumberstring 1, VAR_0x8008 + buffernumberstring STR_VAR_2, VAR_0x8008 copyvar VAR_0x8004, VAR_TEMP_C msgbox BattleFrontier_Lounge7_Text_MoveWillBeXBattlePoints, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_Lounge7_EventScript_ChooseNewMove + goto_if_eq VAR_RESULT, NO, BattleFrontier_Lounge7_EventScript_ChooseNewMove specialvar VAR_TEMP_1, GetFrontierBattlePoints - compare VAR_TEMP_1, VAR_0x8008 - goto_if_ge BattleFrontier_Lounge7_EventScript_TeachTutorMove + goto_if_ge VAR_TEMP_1, VAR_0x8008, BattleFrontier_Lounge7_EventScript_TeachTutorMove msgbox BattleFrontier_Lounge7_Text_HaventGotEnoughPoints, MSGBOX_DEFAULT goto BattleFrontier_Lounge7_EventScript_ChooseNewMove end @@ -269,8 +267,7 @@ BattleFrontier_Lounge7_EventScript_TeachTutorMove:: special CloseBattleFrontierTutorWindow special ChooseMonForMoveTutor waitstate - compare VAR_RESULT, FALSE - goto_if_eq BattleFrontier_Lounge7_EventScript_CancelChooseMon + goto_if_eq VAR_RESULT, FALSE, BattleFrontier_Lounge7_EventScript_CancelChooseMon msgbox BattleFrontier_Lounge7_Text_IllTakeBattlePoints, MSGBOX_DEFAULT copyvar VAR_0x8004, VAR_0x8008 special TakeFrontierBattlePoints @@ -278,8 +275,7 @@ BattleFrontier_Lounge7_EventScript_TeachTutorMove:: end BattleFrontier_Lounge7_EventScript_ChooseNewMove:: - compare VAR_TEMP_E, 0 - goto_if_eq BattleFrontier_Lounge7_EventScript_ChooseNewLeftTutorMove + goto_if_eq VAR_TEMP_E, 0, BattleFrontier_Lounge7_EventScript_ChooseNewLeftTutorMove goto BattleFrontier_Lounge7_EventScript_ChooseNewRightTutorMove end diff --git a/data/maps/BattleFrontier_OutsideEast/scripts.inc b/data/maps/BattleFrontier_OutsideEast/scripts.inc index 9157f0befe..e8eec6f160 100644 --- a/data/maps/BattleFrontier_OutsideEast/scripts.inc +++ b/data/maps/BattleFrontier_OutsideEast/scripts.inc @@ -11,8 +11,7 @@ BattleFrontier_OutsideEast_OnResume: BattleFrontier_OutsideEast_EventScript_TryRemoveSudowoodo:: specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_CAUGHT - goto_if_ne Common_EventScript_NopReturn + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return @@ -130,17 +129,14 @@ BattleFrontier_OutsideEast_EventScript_WaterSudowoodo:: delay 40 waitmoncry setvar VAR_LAST_TALKED, LOCALID_SUDOWOODO - setwildbattle SPECIES_SUDOWOODO, 40, ITEM_NONE + setwildbattle SPECIES_SUDOWOODO, 40 setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq BattleFrontier_OutsideEast_EventScript_DefeatedSudowoodo - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq BattleFrontier_OutsideEast_EventScript_DefeatedSudowoodo - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq BattleFrontier_OutsideEast_EventScript_DefeatedSudowoodo + goto_if_eq VAR_RESULT, B_OUTCOME_WON, BattleFrontier_OutsideEast_EventScript_DefeatedSudowoodo + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, BattleFrontier_OutsideEast_EventScript_DefeatedSudowoodo + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, BattleFrontier_OutsideEast_EventScript_DefeatedSudowoodo setflag FLAG_DEFEATED_SUDOWOODO release end diff --git a/data/maps/BattleFrontier_OutsideWest/scripts.inc b/data/maps/BattleFrontier_OutsideWest/scripts.inc index d359ee89ad..5ca5cb9fbb 100644 --- a/data/maps/BattleFrontier_OutsideWest/scripts.inc +++ b/data/maps/BattleFrontier_OutsideWest/scripts.inc @@ -20,9 +20,8 @@ BattleFrontier_OutsideWest_EventScript_FerryAttendant:: lock faceplayer msgbox BattleFrontier_OutsideWest_Text_MayISeeYourTicket, MSGBOX_DEFAULT - checkitem ITEM_SS_TICKET, 1 - compare VAR_RESULT, FALSE - goto_if_eq BattleFrontier_OutsideWest_EventScript_NoSSTicket + checkitem ITEM_SS_TICKET + goto_if_eq VAR_RESULT, FALSE, BattleFrontier_OutsideWest_EventScript_NoSSTicket message BattleFrontier_OutsideWest_Text_WhereWouldYouLikeToGo waitmessage goto BattleFrontier_OutsideWest_EventScript_ChooseFerryDestination @@ -44,22 +43,20 @@ BattleFrontier_OutsideWest_EventScript_NoSSTicket:: BattleFrontier_OutsideWest_EventScript_FerryToSlateport:: msgbox BattleFrontier_OutsideWest_Text_SlateportItIs, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_OutsideWest_EventScript_ChooseNewFerryDestination + goto_if_eq VAR_RESULT, NO, BattleFrontier_OutsideWest_EventScript_ChooseNewFerryDestination msgbox BattleFrontier_OutsideWest_Text_PleaseBoardFerry, MSGBOX_DEFAULT call BattleFrontier_OutsideWest_EventScript_BoardFerry - warp MAP_SLATEPORT_CITY_HARBOR, 255, 8, 11 + warp MAP_SLATEPORT_CITY_HARBOR, 8, 11 waitstate release end BattleFrontier_OutsideWest_EventScript_FerryToLilycove:: msgbox BattleFrontier_OutsideWest_Text_LilycoveItIs, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_OutsideWest_EventScript_ChooseNewFerryDestination + goto_if_eq VAR_RESULT, NO, BattleFrontier_OutsideWest_EventScript_ChooseNewFerryDestination msgbox BattleFrontier_OutsideWest_Text_PleaseBoardFerry, MSGBOX_DEFAULT call BattleFrontier_OutsideWest_EventScript_BoardFerry - warp MAP_LILYCOVE_CITY_HARBOR, 255, 8, 11 + warp MAP_LILYCOVE_CITY_HARBOR, 8, 11 waitstate release end @@ -155,14 +152,10 @@ BattleFrontier_OutsideWest_EventScript_Camper:: lock faceplayer delay 20 - compare VAR_FACING, DIR_NORTH - call_if_eq BattleFrontier_OutsideWest_EventScript_CamperFaceFactory - compare VAR_FACING, DIR_SOUTH - call_if_eq BattleFrontier_OutsideWest_EventScript_CamperAlreadyFacingFactory - compare VAR_FACING, DIR_WEST - call_if_eq BattleFrontier_OutsideWest_EventScript_CamperFaceFactory - compare VAR_FACING, DIR_EAST - call_if_eq BattleFrontier_OutsideWest_EventScript_CamperFaceFactory + call_if_eq VAR_FACING, DIR_NORTH, BattleFrontier_OutsideWest_EventScript_CamperFaceFactory + call_if_eq VAR_FACING, DIR_SOUTH, BattleFrontier_OutsideWest_EventScript_CamperAlreadyFacingFactory + call_if_eq VAR_FACING, DIR_WEST, BattleFrontier_OutsideWest_EventScript_CamperFaceFactory + call_if_eq VAR_FACING, DIR_EAST, BattleFrontier_OutsideWest_EventScript_CamperFaceFactory msgbox BattleFrontier_OutsideWest_Text_WhosRaisingThoseRentalMons, MSGBOX_DEFAULT release end @@ -180,14 +173,10 @@ BattleFrontier_OutsideWest_EventScript_Girl:: faceplayer message BattleFrontier_OutsideWest_Text_ScaredOfPikeBecauseSeviper waitmessage - compare VAR_FACING, DIR_NORTH - call_if_eq BattleFrontier_OutsideWest_EventScript_GirlShudderNorth - compare VAR_FACING, DIR_SOUTH - call_if_eq BattleFrontier_OutsideWest_EventScript_GirlShudderSouth - compare VAR_FACING, DIR_WEST - call_if_eq BattleFrontier_OutsideWest_EventScript_GirlShudderWest - compare VAR_FACING, DIR_EAST - call_if_eq BattleFrontier_OutsideWest_EventScript_GirlShudderEast + call_if_eq VAR_FACING, DIR_NORTH, BattleFrontier_OutsideWest_EventScript_GirlShudderNorth + call_if_eq VAR_FACING, DIR_SOUTH, BattleFrontier_OutsideWest_EventScript_GirlShudderSouth + call_if_eq VAR_FACING, DIR_WEST, BattleFrontier_OutsideWest_EventScript_GirlShudderWest + call_if_eq VAR_FACING, DIR_EAST, BattleFrontier_OutsideWest_EventScript_GirlShudderEast waitbuttonpress release end @@ -237,8 +226,7 @@ BattleFrontier_OutsideWest_EventScript_Woman2:: faceplayer msgbox BattleFrontier_OutsideWest_Text_LetsPlayRockPaperScissors, MSGBOX_DEFAULT random 2 - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_OutsideWest_EventScript_WomanWonRockPaperScissors + goto_if_eq VAR_RESULT, 1, BattleFrontier_OutsideWest_EventScript_WomanWonRockPaperScissors goto BattleFrontier_OutsideWest_EventScript_WomanLostRockPaperScissors end diff --git a/data/maps/BattleFrontier_RankingHall/scripts.inc b/data/maps/BattleFrontier_RankingHall/scripts.inc index a6c62cf862..915ed98d9f 100644 --- a/data/maps/BattleFrontier_RankingHall/scripts.inc +++ b/data/maps/BattleFrontier_RankingHall/scripts.inc @@ -86,8 +86,7 @@ BattleFrontier_RankingHall_EventScript_NinjaBoy:: lock faceplayer msgbox BattleFrontier_RankingHall_Text_IsYourNameOnThisList, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq BattleFrontier_RankingHall_EventScript_NinjaBoyNameOnList + goto_if_eq VAR_RESULT, YES, BattleFrontier_RankingHall_EventScript_NinjaBoyNameOnList msgbox BattleFrontier_RankingHall_Text_WorkHarderIfYouSawFriendsName, MSGBOX_DEFAULT release end diff --git a/data/maps/BattleFrontier_ScottsHouse/scripts.inc b/data/maps/BattleFrontier_ScottsHouse/scripts.inc index edb4bdf411..affd05d349 100644 --- a/data/maps/BattleFrontier_ScottsHouse/scripts.inc +++ b/data/maps/BattleFrontier_ScottsHouse/scripts.inc @@ -35,8 +35,7 @@ BattleFrontier_ScottsHouse_EventScript_CheckSilverSymbols:: goto_if_unset FLAG_SYS_PYRAMID_SILVER, BattleFrontier_ScottsHouse_EventScript_CheckGiveShield msgbox BattleFrontier_ScottsHouse_Text_YouveCollectedAllSilverSymbols, MSGBOX_DEFAULT giveitem ITEM_LANSAT_BERRY - compare VAR_RESULT, FALSE - goto_if_eq BattleFrontier_ScottsHouse_EventScript_BerryPocketFull + goto_if_eq VAR_RESULT, FALSE, BattleFrontier_ScottsHouse_EventScript_BerryPocketFull setflag FLAG_COLLECTED_ALL_SILVER_SYMBOLS setflag FLAG_TEMP_4 release @@ -52,8 +51,7 @@ BattleFrontier_ScottsHouse_EventScript_CheckGoldSymbols:: goto_if_unset FLAG_SYS_PYRAMID_GOLD, BattleFrontier_ScottsHouse_EventScript_CheckGiveShield msgbox BattleFrontier_ScottsHouse_Text_YouveCollectedAllGoldSymbols, MSGBOX_DEFAULT giveitem ITEM_STARF_BERRY - compare VAR_RESULT, FALSE - goto_if_eq BattleFrontier_ScottsHouse_EventScript_BerryPocketFull + goto_if_eq VAR_RESULT, FALSE, BattleFrontier_ScottsHouse_EventScript_BerryPocketFull setflag FLAG_COLLECTED_ALL_GOLD_SYMBOLS setflag FLAG_TEMP_4 release @@ -71,10 +69,8 @@ BattleFrontier_ScottsHouse_EventScript_GivenBerry:: BattleFrontier_ScottsHouse_EventScript_RandomComment:: random 3 - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_ScottsHouse_EventScript_FrontierBrainComment - compare VAR_RESULT, 2 - goto_if_eq BattleFrontier_ScottsHouse_EventScript_ArtisanCaveComment + goto_if_eq VAR_RESULT, 1, BattleFrontier_ScottsHouse_EventScript_FrontierBrainComment + goto_if_eq VAR_RESULT, 2, BattleFrontier_ScottsHouse_EventScript_ArtisanCaveComment msgbox BattleFrontier_ScottsHouse_Text_WhyIGoSeekingTrainers, MSGBOX_DEFAULT release end @@ -93,20 +89,17 @@ BattleFrontier_ScottsHouse_EventScript_CheckGiveSilverShield:: setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 tower_get TOWER_DATA_WIN_STREAK - compare VAR_RESULT, 50 - goto_if_ge BattleFrontier_ScottsHouse_EventScript_GiveSilverShield + goto_if_ge VAR_RESULT, 50, BattleFrontier_ScottsHouse_EventScript_GiveSilverShield frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_OPEN tower_get TOWER_DATA_WIN_STREAK - compare VAR_RESULT, 50 - goto_if_ge BattleFrontier_ScottsHouse_EventScript_GiveSilverShield + goto_if_ge VAR_RESULT, 50, BattleFrontier_ScottsHouse_EventScript_GiveSilverShield goto BattleFrontier_ScottsHouse_EventScript_RandomComment end BattleFrontier_ScottsHouse_EventScript_GiveSilverShield:: msgbox BattleFrontier_ScottsHouse_Text_Beat50TrainersInARow, MSGBOX_DEFAULT givedecoration DECOR_SILVER_SHIELD - compare VAR_RESULT, FALSE - goto_if_eq BattleFrontier_ScottsHouse_EventScript_NoRoomForShield + goto_if_eq VAR_RESULT, FALSE, BattleFrontier_ScottsHouse_EventScript_NoRoomForShield setflag FLAG_RECEIVED_SILVER_SHIELD setflag FLAG_TEMP_3 goto BattleFrontier_ScottsHouse_EventScript_GivenShield @@ -126,20 +119,17 @@ BattleFrontier_ScottsHouse_EventScript_CheckGiveGoldShield:: setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 tower_get TOWER_DATA_WIN_STREAK - compare VAR_RESULT, 100 - goto_if_ge BattleFrontier_ScottsHouse_EventScript_GiveGoldShield + goto_if_ge VAR_RESULT, 100, BattleFrontier_ScottsHouse_EventScript_GiveGoldShield frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_OPEN tower_get TOWER_DATA_WIN_STREAK - compare VAR_RESULT, 100 - goto_if_ge BattleFrontier_ScottsHouse_EventScript_GiveGoldShield + goto_if_ge VAR_RESULT, 100, BattleFrontier_ScottsHouse_EventScript_GiveGoldShield goto BattleFrontier_ScottsHouse_EventScript_RandomComment end BattleFrontier_ScottsHouse_EventScript_GiveGoldShield:: msgbox BattleFrontier_ScottsHouse_Text_Beat100TrainersInARow, MSGBOX_DEFAULT givedecoration DECOR_GOLD_SHIELD - compare VAR_RESULT, FALSE - goto_if_eq BattleFrontier_ScottsHouse_EventScript_NoRoomForShield + goto_if_eq VAR_RESULT, FALSE, BattleFrontier_ScottsHouse_EventScript_NoRoomForShield setflag FLAG_RECEIVED_GOLD_SHIELD setflag FLAG_TEMP_3 goto BattleFrontier_ScottsHouse_EventScript_GivenShield @@ -154,47 +144,40 @@ BattleFrontier_ScottsHouse_EventScript_WelcomeToFrontier:: msgbox BattleFrontier_ScottsHouse_Text_WelcomeToBattleFrontier, MSGBOX_DEFAULT closemessage delay 30 - compare VAR_FACING, DIR_NORTH - call_if_eq BattleFrontier_ScottsHouse_EventScript_ScottFaceAwayNorth - compare VAR_FACING, DIR_SOUTH - call_if_eq BattleFrontier_ScottsHouse_EventScript_ScottFaceAwaySouth - compare VAR_FACING, DIR_EAST - call_if_eq BattleFrontier_ScottsHouse_EventScript_ScottFaceAwayEast - compare VAR_FACING, DIR_WEST - call_if_eq BattleFrontier_ScottsHouse_EventScript_ScottFaceAwayWest + call_if_eq VAR_FACING, DIR_NORTH, BattleFrontier_ScottsHouse_EventScript_ScottFaceAwayNorth + call_if_eq VAR_FACING, DIR_SOUTH, BattleFrontier_ScottsHouse_EventScript_ScottFaceAwaySouth + call_if_eq VAR_FACING, DIR_EAST, BattleFrontier_ScottsHouse_EventScript_ScottFaceAwayEast + call_if_eq VAR_FACING, DIR_WEST, BattleFrontier_ScottsHouse_EventScript_ScottFaceAwayWest msgbox BattleFrontier_ScottsHouse_Text_HowMuchEffortItTookToMakeReal, MSGBOX_DEFAULT applymovement LOCALID_SCOTT, Common_Movement_FacePlayer waitmovement 0 msgbox BattleFrontier_ScottsHouse_Text_HaveThisAsMementoOfOurPathsCrossing, MSGBOX_DEFAULT - compare VAR_SCOTT_STATE, 13 - goto_if_eq BattleFrontier_ScottsHouse_EventScript_Give4BattlePoints - compare VAR_SCOTT_STATE, 9 - goto_if_ge BattleFrontier_ScottsHouse_EventScript_Give3BattlePoints - compare VAR_SCOTT_STATE, 6 - goto_if_ge BattleFrontier_ScottsHouse_EventScript_Give2BattlePoints + goto_if_eq VAR_SCOTT_STATE, 13, BattleFrontier_ScottsHouse_EventScript_Give4BattlePoints + goto_if_ge VAR_SCOTT_STATE, 9, BattleFrontier_ScottsHouse_EventScript_Give3BattlePoints + goto_if_ge VAR_SCOTT_STATE, 6, BattleFrontier_ScottsHouse_EventScript_Give2BattlePoints goto BattleFrontier_ScottsHouse_EventScript_Give1BattlePoint end BattleFrontier_ScottsHouse_EventScript_Give4BattlePoints:: - buffernumberstring 0, 4 + buffernumberstring STR_VAR_1, 4 setvar VAR_0x8004, 4 goto BattleFrontier_ScottsHouse_EventScript_GiveBattlePoints end BattleFrontier_ScottsHouse_EventScript_Give3BattlePoints:: - buffernumberstring 0, 3 + buffernumberstring STR_VAR_1, 3 setvar VAR_0x8004, 3 goto BattleFrontier_ScottsHouse_EventScript_GiveBattlePoints end BattleFrontier_ScottsHouse_EventScript_Give2BattlePoints:: - buffernumberstring 0, 2 + buffernumberstring STR_VAR_1, 2 setvar VAR_0x8004, 2 goto BattleFrontier_ScottsHouse_EventScript_GiveBattlePoints end BattleFrontier_ScottsHouse_EventScript_Give1BattlePoint:: - buffernumberstring 0, 1 + buffernumberstring STR_VAR_1, 1 setvar VAR_0x8004, 1 goto BattleFrontier_ScottsHouse_EventScript_GiveBattlePoints end diff --git a/data/maps/BirthIsland_Exterior/scripts.inc b/data/maps/BirthIsland_Exterior/scripts.inc index cd1583b420..68d3124d95 100644 --- a/data/maps/BirthIsland_Exterior/scripts.inc +++ b/data/maps/BirthIsland_Exterior/scripts.inc @@ -38,8 +38,7 @@ BirthIsland_Exterior_OnResume: BirthIsland_Exterior_EventScript_TryRemoveDeoxys:: specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_CAUGHT - goto_if_ne Common_EventScript_NopReturn + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn removeobject LOCALID_DEOXYS return @@ -83,21 +82,15 @@ BirthIsland_Exterior_EventScript_Deoxys:: delay 40 waitmoncry setvar VAR_LAST_TALKED, LOCALID_DEOXYS - setvar VAR_0x8004, SPECIES_DEOXYS - setvar VAR_0x8005, 30 @ level - setvar VAR_0x8006, ITEM_NONE - special CreateEventLegalEnemyMon + seteventmon SPECIES_DEOXYS, 30 setflag FLAG_SYS_CTRL_OBJ_DELETE special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq BirthIsland_Exterior_EventScript_DefeatedDeoxys - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq BirthIsland_Exterior_EventScript_RanFromDeoxys - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq BirthIsland_Exterior_EventScript_RanFromDeoxys + goto_if_eq VAR_RESULT, B_OUTCOME_WON, BirthIsland_Exterior_EventScript_DefeatedDeoxys + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, BirthIsland_Exterior_EventScript_RanFromDeoxys + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, BirthIsland_Exterior_EventScript_RanFromDeoxys setflag FLAG_BATTLED_DEOXYS release end diff --git a/data/maps/BirthIsland_Harbor/scripts.inc b/data/maps/BirthIsland_Harbor/scripts.inc index 06c5b08e9d..e91238cbdc 100644 --- a/data/maps/BirthIsland_Harbor/scripts.inc +++ b/data/maps/BirthIsland_Harbor/scripts.inc @@ -8,8 +8,7 @@ BirthIsland_Harbor_EventScript_Sailor:: lock faceplayer msgbox BirthIsland_Harbor_Text_SailorReturn, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq BirthIsland_Harbor_EventScript_AsYouLike + goto_if_eq VAR_RESULT, NO, BirthIsland_Harbor_EventScript_AsYouLike msgbox EventTicket_Text_SailHome, MSGBOX_DEFAULT closemessage applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFasterDown @@ -18,7 +17,7 @@ BirthIsland_Harbor_EventScript_Sailor:: hideobjectat LOCALID_SAILOR, MAP_BIRTH_ISLAND_HARBOR setvar VAR_0x8004, LOCALID_SS_TIDAL call Common_EventScript_FerryDepartIsland - warp MAP_LILYCOVE_CITY_HARBOR, 255, 8, 11 + warp MAP_LILYCOVE_CITY_HARBOR, 8, 11 waitstate release end diff --git a/data/maps/CaveOfOrigin_Entrance/scripts.inc b/data/maps/CaveOfOrigin_Entrance/scripts.inc index 091246ae0d..40ca7a654d 100644 --- a/data/maps/CaveOfOrigin_Entrance/scripts.inc +++ b/data/maps/CaveOfOrigin_Entrance/scripts.inc @@ -3,6 +3,6 @@ CaveOfOrigin_Entrance_MapScripts:: .byte 0 CaveOfOrigin_Entrance_OnResume: - setescapewarp MAP_SOOTOPOLIS_CITY, 255, 31, 17 + setescapewarp MAP_SOOTOPOLIS_CITY, 31, 17 end diff --git a/data/maps/ContestHall/scripts.inc b/data/maps/ContestHall/scripts.inc index 535e28b789..7ca6a57f69 100644 --- a/data/maps/ContestHall/scripts.inc +++ b/data/maps/ContestHall/scripts.inc @@ -19,16 +19,11 @@ ContestHall_OnTransition: ContestHall_EventScript_ReadyContestMusic:: call ContestHall_EventScript_TryWaitForLink special GetContestMultiplayerId - compare VAR_RESULT, 0 - call_if_eq ContestHall_EventScript_SaveContestMusicPlayer1 - compare VAR_RESULT, 1 - call_if_eq ContestHall_EventScript_SaveContestMusicPlayer2 - compare VAR_RESULT, 2 - call_if_eq ContestHall_EventScript_SaveContestMusicPlayer3 - compare VAR_RESULT, 3 - call_if_eq ContestHall_EventScript_SaveContestMusicPlayer4 - compare VAR_RESULT, 4 - call_if_eq ContestHall_EventScript_SaveContestMusic + call_if_eq VAR_RESULT, 0, ContestHall_EventScript_SaveContestMusicPlayer1 + call_if_eq VAR_RESULT, 1, ContestHall_EventScript_SaveContestMusicPlayer2 + call_if_eq VAR_RESULT, 2, ContestHall_EventScript_SaveContestMusicPlayer3 + call_if_eq VAR_RESULT, 3, ContestHall_EventScript_SaveContestMusicPlayer4 + call_if_eq VAR_RESULT, 4, ContestHall_EventScript_SaveContestMusic return ContestHall_EventScript_SaveContestMusicPlayer1:: @@ -52,8 +47,7 @@ ContestHall_EventScript_SaveContestMusic:: return ContestHall_OnResume: - compare VAR_TEMP_9, 1 - call_if_eq ContestHall_EventScript_ReShowAudience + call_if_eq VAR_TEMP_9, 1, ContestHall_EventScript_ReShowAudience end ContestHall_EventScript_ReShowAudience:: @@ -84,8 +78,7 @@ ContestHall_EventScript_SetContestObjects:: ContestHall_EventScript_AddRandomAudienceMembers:: call ContestHall_EventScript_GetRandomAudienceGfxId call ContestHall_EventScript_SetRandomAudienceGfx - compare VAR_TEMP_0, 8 - goto_if_lt ContestHall_EventScript_AddRandomAudienceMembers + goto_if_lt VAR_TEMP_0, 8, ContestHall_EventScript_AddRandomAudienceMembers return ContestHall_EventScript_SetRandomAudienceGfx:: @@ -303,8 +296,7 @@ ContestHall_EventScript_RandomAudienceScientist1:: ContestHall_EventScript_CreateAudience:: specialvar VAR_RESULT, IsWirelessContest - compare VAR_RESULT, TRUE - goto_if_eq ContestHall_EventScript_CreateWirelessContestAudience + goto_if_eq VAR_RESULT, TRUE, ContestHall_EventScript_CreateWirelessContestAudience switch VAR_CONTEST_TYPE case CONTEST_TYPE_NPC_NORMAL, ContestHall_EventScript_CreateNormalContestAudience case CONTEST_TYPE_NPC_SUPER, ContestHall_EventScript_CreateSuperContestAudience @@ -418,36 +410,34 @@ ContestHall_EventScript_SetExitWarp:: return ContestHall_EventScript_SetExitWarpNormalContest:: - warp MAP_LILYCOVE_CITY_CONTEST_LOBBY, 255, 14, 4 + warp MAP_LILYCOVE_CITY_CONTEST_LOBBY, 14, 4 waitstate end ContestHall_EventScript_SetExitWarpSuperContest:: - warp MAP_LILYCOVE_CITY_CONTEST_LOBBY, 255, 14, 4 + warp MAP_LILYCOVE_CITY_CONTEST_LOBBY, 14, 4 waitstate end ContestHall_EventScript_SetExitWarpHyperContest:: - warp MAP_LILYCOVE_CITY_CONTEST_LOBBY, 255, 14, 4 + warp MAP_LILYCOVE_CITY_CONTEST_LOBBY, 14, 4 waitstate end ContestHall_EventScript_SetExitWarpMasterContest:: - warp MAP_LILYCOVE_CITY_CONTEST_LOBBY, 255, 14, 4 + warp MAP_LILYCOVE_CITY_CONTEST_LOBBY, 14, 4 waitstate end ContestHall_EventScript_SetExitWarpLinkContest:: - warp MAP_LILYCOVE_CITY_CONTEST_LOBBY, 255, 15, 4 + warp MAP_LILYCOVE_CITY_CONTEST_LOBBY, 15, 4 waitstate end LilycoveCity_ContestLobby_EventScript_SetPlayerGfx:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq LilycoveCity_ContestLobby_EventScript_SetPlayerGfxBrendan - compare VAR_RESULT, FEMALE - goto_if_eq LilycoveCity_ContestLobby_EventScript_SetPlayerGfxMay + goto_if_eq VAR_RESULT, MALE, LilycoveCity_ContestLobby_EventScript_SetPlayerGfxBrendan + goto_if_eq VAR_RESULT, FEMALE, LilycoveCity_ContestLobby_EventScript_SetPlayerGfxMay return LilycoveCity_ContestLobby_EventScript_SetPlayerGfxBrendan:: diff --git a/data/maps/DesertRuins/scripts.inc b/data/maps/DesertRuins/scripts.inc index 443915d7e2..21473e87a3 100644 --- a/data/maps/DesertRuins/scripts.inc +++ b/data/maps/DesertRuins/scripts.inc @@ -10,8 +10,7 @@ DesertRuins_OnResume: DesertRuins_EventScript_TryRemoveRegirock:: specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_CAUGHT - goto_if_ne Common_EventScript_NopReturn + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return @@ -20,12 +19,12 @@ DesertRuins_OnLoad: end DesertRuins_EventScript_HideRegiEntrance:: - setmetatile 7, 19, METATILE_Cave_EntranceCover, 1 - setmetatile 8, 19, METATILE_Cave_EntranceCover, 1 - setmetatile 9, 19, METATILE_Cave_EntranceCover, 1 - setmetatile 7, 20, METATILE_Cave_SealedChamberBraille_Mid, 1 - setmetatile 8, 20, METATILE_Cave_SealedChamberBraille_Mid, 1 - setmetatile 9, 20, METATILE_Cave_SealedChamberBraille_Mid, 1 + setmetatile 7, 19, METATILE_Cave_EntranceCover, TRUE + setmetatile 8, 19, METATILE_Cave_EntranceCover, TRUE + setmetatile 9, 19, METATILE_Cave_EntranceCover, TRUE + setmetatile 7, 20, METATILE_Cave_SealedChamberBraille_Mid, TRUE + setmetatile 8, 20, METATILE_Cave_SealedChamberBraille_Mid, TRUE + setmetatile 9, 20, METATILE_Cave_SealedChamberBraille_Mid, TRUE return DesertRuins_OnTransition: @@ -62,18 +61,15 @@ DesertRuins_EventScript_Regirock:: playmoncry SPECIES_REGIROCK, CRY_MODE_ENCOUNTER delay 40 waitmoncry - setwildbattle SPECIES_REGIROCK, 40, ITEM_NONE + setwildbattle SPECIES_REGIROCK, 40 setflag FLAG_SYS_CTRL_OBJ_DELETE special StartRegiBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq DesertRuins_EventScript_DefeatedRegirock - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq DesertRuins_EventScript_RanFromRegirock - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq DesertRuins_EventScript_RanFromRegirock + goto_if_eq VAR_RESULT, B_OUTCOME_WON, DesertRuins_EventScript_DefeatedRegirock + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, DesertRuins_EventScript_RanFromRegirock + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, DesertRuins_EventScript_RanFromRegirock setflag FLAG_DEFEATED_REGIROCK release end diff --git a/data/maps/DewfordTown/scripts.inc b/data/maps/DewfordTown/scripts.inc index 281648aeb6..1250c2d767 100644 --- a/data/maps/DewfordTown/scripts.inc +++ b/data/maps/DewfordTown/scripts.inc @@ -54,8 +54,7 @@ DewfordTown_EventScript_CancelSailSelect:: DewfordTown_EventScript_ReturnToPetalburgPrompt:: msgbox DewfordTown_Text_SetSailBackToPetalburg, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq DewfordTown_EventScript_SailBackToPetalburg + goto_if_eq VAR_RESULT, YES, DewfordTown_EventScript_SailBackToPetalburg msgbox DewfordTown_Text_GoDeliverIllBeWaiting, MSGBOX_DEFAULT release end @@ -87,10 +86,8 @@ DewfordTown_EventScript_OldRodFisherman:: faceplayer goto_if_set FLAG_RECEIVED_OLD_ROD, DewfordTown_EventScript_HowsFishing msgbox DewfordTown_Text_GettingItchToFish, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq DewfordTown_EventScript_GiveOldRod - compare VAR_RESULT, NO - goto_if_eq DewfordTown_EventScript_NotGettingItchToFish + goto_if_eq VAR_RESULT, YES, DewfordTown_EventScript_GiveOldRod + goto_if_eq VAR_RESULT, NO, DewfordTown_EventScript_NotGettingItchToFish end DewfordTown_EventScript_GiveOldRod:: @@ -110,10 +107,8 @@ DewfordTown_EventScript_HowsFishing:: message DewfordTown_Text_HowsYourFishing waitmessage multichoice 20, 8, MULTI_HOWS_FISHING, TRUE - compare VAR_RESULT, 0 - goto_if_eq DewfordTown_EventScript_FishingExcellent - compare VAR_RESULT, 1 - goto_if_eq DewfordTown_EventScript_FishingNotSoGood + goto_if_eq VAR_RESULT, 0, DewfordTown_EventScript_FishingExcellent + goto_if_eq VAR_RESULT, 1, DewfordTown_EventScript_FishingNotSoGood end DewfordTown_EventScript_FishingExcellent:: @@ -128,8 +123,8 @@ DewfordTown_EventScript_FishingNotSoGood:: DewfordTown_EventScript_SailToPetalburg:: call EventScript_BackupMrBrineyLocation - setobjectpriority LOCALID_BRINEY_DEWFORD, MAP_DEWFORD_TOWN, 0 - setobjectpriority OBJ_EVENT_ID_PLAYER, MAP_DEWFORD_TOWN, 0 + setobjectsubpriority LOCALID_BRINEY_DEWFORD, MAP_DEWFORD_TOWN, 0 + setobjectsubpriority OBJ_EVENT_ID_PLAYER, MAP_DEWFORD_TOWN, 0 applymovement LOCALID_BRINEY_DEWFORD, DewfordTown_Movement_BrineyBoardBoat waitmovement 0 removeobject LOCALID_BRINEY_DEWFORD @@ -151,8 +146,8 @@ DewfordTown_EventScript_SailToPetalburg:: setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD_TOWN hideobjectat LOCALID_BOAT_DEWFORD, MAP_DEWFORD_TOWN setvar VAR_BOARD_BRINEY_BOAT_STATE, 2 - resetobjectpriority OBJ_EVENT_ID_PLAYER, MAP_DEWFORD_TOWN - warp MAP_ROUTE104_MR_BRINEYS_HOUSE, 255, 5, 4 + resetobjectsubpriority OBJ_EVENT_ID_PLAYER, MAP_DEWFORD_TOWN + warp MAP_ROUTE104_MR_BRINEYS_HOUSE, 5, 4 copyvar VAR_BRINEY_LOCATION, VAR_0x8008 waitstate release @@ -160,8 +155,8 @@ DewfordTown_EventScript_SailToPetalburg:: DewfordTown_EventScript_SailToSlateport:: call EventScript_BackupMrBrineyLocation - setobjectpriority LOCALID_BRINEY_DEWFORD, MAP_DEWFORD_TOWN, 0 - setobjectpriority OBJ_EVENT_ID_PLAYER, MAP_DEWFORD_TOWN, 1 + setobjectsubpriority LOCALID_BRINEY_DEWFORD, MAP_DEWFORD_TOWN, 0 + setobjectsubpriority OBJ_EVENT_ID_PLAYER, MAP_DEWFORD_TOWN, 1 applymovement LOCALID_BRINEY_DEWFORD, DewfordTown_Movement_BrineyBoardBoat waitmovement 0 removeobject LOCALID_BRINEY_DEWFORD @@ -178,7 +173,7 @@ DewfordTown_EventScript_SailToSlateport:: waitmovement 0 setobjectxyperm LOCALID_BRINEY_R109, 21, 26 addobject LOCALID_BRINEY_R109 - setobjectpriority LOCALID_BRINEY_R109, MAP_ROUTE109, 0 + setobjectsubpriority LOCALID_BRINEY_R109, MAP_ROUTE109, 0 applymovement LOCALID_BRINEY_R109, DewfordTown_Movement_BrineyExitBoat waitmovement 0 clearflag FLAG_HIDE_ROUTE_109_MR_BRINEY @@ -190,8 +185,8 @@ DewfordTown_EventScript_SailToSlateport:: call_if_set FLAG_DELIVERED_DEVON_GOODS, DewfordTown_EventScript_LandedSlateport closemessage copyvar VAR_BRINEY_LOCATION, VAR_0x8008 - resetobjectpriority OBJ_EVENT_ID_PLAYER, MAP_DEWFORD_TOWN - resetobjectpriority LOCALID_BRINEY_R109, MAP_ROUTE109 + resetobjectsubpriority OBJ_EVENT_ID_PLAYER, MAP_DEWFORD_TOWN + resetobjectsubpriority LOCALID_BRINEY_R109, MAP_ROUTE109 copyobjectxytoperm LOCALID_BRINEY_R109 release end @@ -607,10 +602,8 @@ DewfordTown_EventScript_TrendyPhraseBoy:: faceplayer call Common_EventScript_BufferTrendyPhrase msgbox DewfordTown_Text_XIsTheBiggestHappeningThingRight, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq DewfordTown_EventScript_ConfirmTrendyPhrase - compare VAR_RESULT, NO - goto_if_eq DewfordTown_EventScript_RejectTrendyPhrase + goto_if_eq VAR_RESULT, YES, DewfordTown_EventScript_ConfirmTrendyPhrase + goto_if_eq VAR_RESULT, NO, DewfordTown_EventScript_RejectTrendyPhrase end DewfordTown_EventScript_ConfirmTrendyPhrase:: @@ -624,16 +617,13 @@ DewfordTown_EventScript_RejectTrendyPhrase:: call Common_ShowEasyChatScreen lock faceplayer - compare VAR_RESULT, TRUE - goto_if_eq DewfordTown_EventScript_GiveNewTrendyPhrase - compare VAR_RESULT, FALSE - goto_if_eq DewfordTown_EventScript_CancelNewTrendyPhrase + goto_if_eq VAR_RESULT, TRUE, DewfordTown_EventScript_GiveNewTrendyPhrase + goto_if_eq VAR_RESULT, FALSE, DewfordTown_EventScript_CancelNewTrendyPhrase end DewfordTown_EventScript_GiveNewTrendyPhrase:: incrementgamestat GAME_STAT_STARTED_TRENDS - compare VAR_0x8004, FALSE - goto_if_eq DewfordTown_EventScript_PhraseNotTrendyEnough + goto_if_eq VAR_0x8004, FALSE, DewfordTown_EventScript_PhraseNotTrendyEnough msgbox DewfordTown_Text_OfCourseIKnowAboutThat, MSGBOX_DEFAULT release end diff --git a/data/maps/DewfordTown_Gym/scripts.inc b/data/maps/DewfordTown_Gym/scripts.inc index d2b51766af..81474af726 100644 --- a/data/maps/DewfordTown_Gym/scripts.inc +++ b/data/maps/DewfordTown_Gym/scripts.inc @@ -3,77 +3,66 @@ DewfordTown_Gym_MapScripts:: .byte 0 DewfordTown_Gym_OnTransition: - call DewfordTown_Gym_EventScript_SetFlashRadius + call DewfordTown_Gym_EventScript_SetFlashLevel end -DewfordTown_Gym_EventScript_SetFlashRadius:: +DewfordTown_Gym_EventScript_SetFlashLevel:: goto_if_defeated TRAINER_BRAWLY_1, DewfordTown_Gym_EventScript_SetLightsOn call DewfordTown_Gym_EventScript_CountTrainersDefeated copyvar VAR_0x8001, VAR_0x8000 - compare VAR_0x8000, 0 - goto_if_eq DewfordTown_Gym_EventScript_SetFlashRadius7 - compare VAR_0x8000, 1 - goto_if_eq DewfordTown_Gym_EventScript_SetFlashRadius6 - compare VAR_0x8000, 2 - goto_if_eq DewfordTown_Gym_EventScript_SetFlashRadius5 - compare VAR_0x8000, 3 - goto_if_eq DewfordTown_Gym_EventScript_SetFlashRadius4 - compare VAR_0x8000, 4 - goto_if_eq DewfordTown_Gym_EventScript_SetFlashRadius3 - compare VAR_0x8000, 5 - goto_if_eq DewfordTown_Gym_EventScript_SetFlashRadius2 - goto DewfordTown_Gym_EventScript_SetFlashRadius1 + goto_if_eq VAR_0x8000, 0, DewfordTown_Gym_EventScript_SetFlashLevel7 + goto_if_eq VAR_0x8000, 1, DewfordTown_Gym_EventScript_SetFlashLevel6 + goto_if_eq VAR_0x8000, 2, DewfordTown_Gym_EventScript_SetFlashLevel5 + goto_if_eq VAR_0x8000, 3, DewfordTown_Gym_EventScript_SetFlashLevel4 + goto_if_eq VAR_0x8000, 4, DewfordTown_Gym_EventScript_SetFlashLevel3 + goto_if_eq VAR_0x8000, 5, DewfordTown_Gym_EventScript_SetFlashLevel2 + goto DewfordTown_Gym_EventScript_SetFlashLevel1 DewfordTown_Gym_EventScript_SetLightsOn:: - setflashradius 0 + setflashlevel 0 return -DewfordTown_Gym_EventScript_SetFlashRadius1:: - setflashradius 1 +@ Brightest +DewfordTown_Gym_EventScript_SetFlashLevel1:: + setflashlevel 1 return -DewfordTown_Gym_EventScript_SetFlashRadius2:: - setflashradius 2 +DewfordTown_Gym_EventScript_SetFlashLevel2:: + setflashlevel 2 return -DewfordTown_Gym_EventScript_SetFlashRadius3:: - setflashradius 3 +DewfordTown_Gym_EventScript_SetFlashLevel3:: + setflashlevel 3 return -DewfordTown_Gym_EventScript_SetFlashRadius4:: - setflashradius 4 +DewfordTown_Gym_EventScript_SetFlashLevel4:: + setflashlevel 4 return -DewfordTown_Gym_EventScript_SetFlashRadius5:: - setflashradius 5 +DewfordTown_Gym_EventScript_SetFlashLevel5:: + setflashlevel 5 return -DewfordTown_Gym_EventScript_SetFlashRadius6:: - setflashradius 6 +DewfordTown_Gym_EventScript_SetFlashLevel6:: + setflashlevel 6 return -DewfordTown_Gym_EventScript_SetFlashRadius7:: - setflashradius 7 +@ Darkest +DewfordTown_Gym_EventScript_SetFlashLevel7:: + setflashlevel 7 return DewfordTown_Gym_EventScript_BrightenRoom:: call DewfordTown_Gym_EventScript_CountTrainersDefeated nop1 - compare VAR_0x8000, VAR_0x8001 - goto_if_eq DewfordTown_Gym_EventScript_NoLightChange + goto_if_eq VAR_0x8000, VAR_0x8001, DewfordTown_Gym_EventScript_NoLightChange copyvar VAR_0x8001, VAR_0x8000 - compare VAR_0x8000, 1 - goto_if_eq DewfordTown_Gym_EventScript_AnimateFlash1Trainer - compare VAR_0x8000, 2 - goto_if_eq DewfordTown_Gym_EventScript_AnimateFlash2Trainers - compare VAR_0x8000, 3 - goto_if_eq DewfordTown_Gym_EventScript_AnimateFlash3Trainers - compare VAR_0x8000, 4 - goto_if_eq DewfordTown_Gym_EventScript_AnimateFlash4Trainers - compare VAR_0x8000, 5 - goto_if_eq DewfordTown_Gym_EventScript_AnimateFlash5Trainers - compare VAR_0x8000, 6 - goto_if_eq DewfordTown_Gym_EventScript_AnimateFlash6Trainers + goto_if_eq VAR_0x8000, 1, DewfordTown_Gym_EventScript_AnimateFlash1Trainer + goto_if_eq VAR_0x8000, 2, DewfordTown_Gym_EventScript_AnimateFlash2Trainers + goto_if_eq VAR_0x8000, 3, DewfordTown_Gym_EventScript_AnimateFlash3Trainers + goto_if_eq VAR_0x8000, 4, DewfordTown_Gym_EventScript_AnimateFlash4Trainers + goto_if_eq VAR_0x8000, 5, DewfordTown_Gym_EventScript_AnimateFlash5Trainers + goto_if_eq VAR_0x8000, 6, DewfordTown_Gym_EventScript_AnimateFlash6Trainers DewfordTown_Gym_EventScript_NoLightChange:: return @@ -82,43 +71,43 @@ DewfordTown_Gym_EventScript_NoLightChange:: DewfordTown_Gym_EventScript_AnimateFlash1Trainer:: playse SE_SWITCH animateflash 6 - call DewfordTown_Gym_EventScript_SetFlashRadius + call DewfordTown_Gym_EventScript_SetFlashLevel return DewfordTown_Gym_EventScript_AnimateFlash2Trainers:: playse SE_SWITCH animateflash 5 - call DewfordTown_Gym_EventScript_SetFlashRadius + call DewfordTown_Gym_EventScript_SetFlashLevel return DewfordTown_Gym_EventScript_AnimateFlash3Trainers:: playse SE_SWITCH animateflash 4 - call DewfordTown_Gym_EventScript_SetFlashRadius + call DewfordTown_Gym_EventScript_SetFlashLevel return DewfordTown_Gym_EventScript_AnimateFlash4Trainers:: playse SE_SWITCH animateflash 3 - call DewfordTown_Gym_EventScript_SetFlashRadius + call DewfordTown_Gym_EventScript_SetFlashLevel return DewfordTown_Gym_EventScript_AnimateFlash5Trainers:: playse SE_SWITCH animateflash 2 - call DewfordTown_Gym_EventScript_SetFlashRadius + call DewfordTown_Gym_EventScript_SetFlashLevel return DewfordTown_Gym_EventScript_AnimateFlash6Trainers:: playse SE_SWITCH animateflash 1 - call DewfordTown_Gym_EventScript_SetFlashRadius + call DewfordTown_Gym_EventScript_SetFlashLevel return DewfordTown_Gym_EventScript_AnimateFlashFullBrightness:: playse SE_SWITCH animateflash 0 - call DewfordTown_Gym_EventScript_SetFlashRadius + call DewfordTown_Gym_EventScript_SetFlashLevel return DewfordTown_Gym_EventScript_CountTrainersDefeated:: @@ -146,8 +135,7 @@ DewfordTown_Gym_EventScript_StopCountingTrainers:: DewfordTown_Gym_EventScript_Brawly:: trainerbattle_single TRAINER_BRAWLY_1, DewfordTown_Gym_Text_BrawlyIntro, DewfordTown_Gym_Text_BrawlyDefeat, DewfordTown_Gym_EventScript_BrawlyDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq DewfordTown_Gym_EventScript_BrawlyRematch + goto_if_eq VAR_RESULT, TRUE, DewfordTown_Gym_EventScript_BrawlyRematch goto_if_unset FLAG_RECEIVED_TM08, DewfordTown_Gym_EventScript_GiveBulkUp2 msgbox DewfordTown_Gym_Text_BrawlyPostBattle, MSGBOX_DEFAULT release @@ -162,8 +150,7 @@ DewfordTown_Gym_EventScript_BrawlyDefeated:: setflag FLAG_DEFEATED_DEWFORD_GYM setflag FLAG_BADGE02_GET addvar VAR_PETALBURG_GYM_STATE, 1 - compare VAR_PETALBURG_GYM_STATE, 6 - call_if_eq Common_EventScript_ReadyPetalburgGymForBattle + call_if_eq VAR_PETALBURG_GYM_STATE, 6, Common_EventScript_ReadyPetalburgGymForBattle setvar VAR_0x8008, 2 call Common_EventScript_SetGymTrainers call DewfordTown_Gym_EventScript_GiveBulkUp @@ -182,16 +169,14 @@ DewfordTown_Gym_EventScript_BrawlyDefeated:: DewfordTown_Gym_EventScript_GiveBulkUp:: giveitem ITEM_TM08 - compare VAR_RESULT, 0 - goto_if_eq Common_EventScript_BagIsFull + goto_if_eq VAR_RESULT, 0, Common_EventScript_BagIsFull msgbox DewfordTown_Gym_Text_ExplainBulkUp, MSGBOX_DEFAULT setflag FLAG_RECEIVED_TM08 return DewfordTown_Gym_EventScript_GiveBulkUp2: giveitem ITEM_TM08 - compare VAR_RESULT, 0 - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, 0, Common_EventScript_ShowBagIsFull msgbox DewfordTown_Gym_Text_ExplainBulkUp, MSGBOX_DEFAULT setflag FLAG_RECEIVED_TM08 release diff --git a/data/maps/DewfordTown_Hall/scripts.inc b/data/maps/DewfordTown_Hall/scripts.inc index 9d8392ff16..6249a7fac5 100644 --- a/data/maps/DewfordTown_Hall/scripts.inc +++ b/data/maps/DewfordTown_Hall/scripts.inc @@ -11,8 +11,7 @@ DewfordTown_Hall_EventScript_Girl:: faceplayer call Common_EventScript_BufferTrendyPhrase special IsTrendyPhraseBoring - compare VAR_RESULT, TRUE - goto_if_eq DewfordTown_Hall_EventScript_GirlBoredOfTrend + goto_if_eq VAR_RESULT, TRUE, DewfordTown_Hall_EventScript_GirlBoredOfTrend msgbox DewfordTown_Hall_Text_CantImagineLifeWithoutTrend, MSGBOX_DEFAULT release end @@ -36,10 +35,8 @@ DewfordTown_Hall_EventScript_Man:: call Common_EventScript_BufferTrendyPhrase special BufferDeepLinkPhrase msgbox DewfordTown_Hall_Text_DeepLinkBetweenXAndY, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq DewfordTown_Hall_EventScript_ConfirmTrendLink - compare VAR_RESULT, NO - goto_if_eq DewfordTown_Hall_EventScript_RejectTrendLink + goto_if_eq VAR_RESULT, YES, DewfordTown_Hall_EventScript_ConfirmTrendLink + goto_if_eq VAR_RESULT, NO, DewfordTown_Hall_EventScript_RejectTrendLink end DewfordTown_Hall_EventScript_ConfirmTrendLink:: @@ -196,15 +193,12 @@ DewfordTown_Hall_EventScript_DontMovePlayer1:: DewfordTown_Hall_EventScript_DebateReact1:: applymovement LOCALID_PSYCHIC_M, DewfordTown_Hall_Movement_PsychicWalkInPlaceLeft waitmovement 0 - compare VAR_0x8008, 0 - goto_if_eq DewfordTown_Hall_EventScript_PlayerReactWest - compare VAR_0x8008, 1 - goto_if_eq DewfordTown_Hall_EventScript_DontMovePlayer2 + goto_if_eq VAR_0x8008, 0, DewfordTown_Hall_EventScript_PlayerReactWest + goto_if_eq VAR_0x8008, 1, DewfordTown_Hall_EventScript_DontMovePlayer2 end DewfordTown_Hall_EventScript_PlayerReactWest:: - compare VAR_FACING, DIR_EAST - goto_if_eq DewfordTown_Hall_EventScript_DontMovePlayer1 + goto_if_eq VAR_FACING, DIR_EAST, DewfordTown_Hall_EventScript_DontMovePlayer1 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 return @@ -215,17 +209,13 @@ DewfordTown_Hall_EventScript_DontMovePlayer2:: DewfordTown_Hall_EventScript_DebateReact2:: applymovement LOCALID_SCHOOL_KID_M, DewfordTown_Hall_Movement_SchoolKidWalkInPlaceRight waitmovement 0 - compare VAR_0x8008, 0 - goto_if_eq DewfordTown_Hall_EventScript_PlayerReactNorthSouth - compare VAR_0x8008, 1 - goto_if_eq DewfordTown_Hall_EventScript_PlayerReactEast + goto_if_eq VAR_0x8008, 0, DewfordTown_Hall_EventScript_PlayerReactNorthSouth + goto_if_eq VAR_0x8008, 1, DewfordTown_Hall_EventScript_PlayerReactEast end DewfordTown_Hall_EventScript_PlayerReactNorthSouth:: - compare VAR_FACING, DIR_NORTH - call_if_eq DewfordTown_Hall_EventScript_PlayerWalkInPlaceUp - compare VAR_FACING, DIR_SOUTH - call_if_eq DewfordTown_Hall_EventScript_PlayerWalkInPlaceDown + call_if_eq VAR_FACING, DIR_NORTH, DewfordTown_Hall_EventScript_PlayerWalkInPlaceUp + call_if_eq VAR_FACING, DIR_SOUTH, DewfordTown_Hall_EventScript_PlayerWalkInPlaceDown return DewfordTown_Hall_EventScript_PlayerWalkInPlaceUp:: @@ -239,8 +229,7 @@ DewfordTown_Hall_EventScript_PlayerWalkInPlaceDown:: return DewfordTown_Hall_EventScript_PlayerReactEast:: - compare VAR_FACING, DIR_WEST - goto_if_eq DewfordTown_Hall_EventScript_DontMovePlayer1 + goto_if_eq VAR_FACING, DIR_WEST, DewfordTown_Hall_EventScript_DontMovePlayer1 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return @@ -260,8 +249,7 @@ DewfordTown_Hall_EventScript_SludgeBombMan:: goto_if_set FLAG_RECEIVED_TM36, DewfordTown_Hall_EventScript_ReceivedSludgeBomb msgbox DewfordTown_Hall_Text_GiveYouSludgeBomb, MSGBOX_DEFAULT giveitem ITEM_TM36 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM36 release end diff --git a/data/maps/DewfordTown_House2/scripts.inc b/data/maps/DewfordTown_House2/scripts.inc index ae173f151c..cb68664aaf 100644 --- a/data/maps/DewfordTown_House2/scripts.inc +++ b/data/maps/DewfordTown_House2/scripts.inc @@ -7,8 +7,7 @@ DewfordTown_House2_EventScript_Man:: goto_if_set FLAG_RECEIVED_SILK_SCARF, DewfordTown_House2_EventScript_ExplainSilkScarf msgbox DewfordTown_House2_Text_WantYouToHaveSilkScarf, MSGBOX_DEFAULT giveitem ITEM_SILK_SCARF - compare VAR_RESULT, FALSE - goto_if_eq DewfordTown_House2_EventScript_NoRoomForScarf + goto_if_eq VAR_RESULT, FALSE, DewfordTown_House2_EventScript_NoRoomForScarf setflag FLAG_RECEIVED_SILK_SCARF release end diff --git a/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc b/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc index 6b9281ae6d..1039422808 100644 --- a/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc +++ b/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc @@ -50,24 +50,20 @@ EverGrandeCity_ChampionsRoom_EventScript_Wallace:: EverGrandeCity_ChampionsRoom_EventScript_Defeated:: playse SE_DOOR - setmetatile 6, 1, METATILE_EliteFour_OpenDoorChampion_Frame, 0 - setmetatile 6, 2, METATILE_EliteFour_OpenDoorChampion_Opening, 0 + setmetatile 6, 1, METATILE_EliteFour_OpenDoorChampion_Frame, FALSE + setmetatile 6, 2, METATILE_EliteFour_OpenDoorChampion_Opening, FALSE special DrawWholeMapView msgbox EverGrandeCity_ChampionsRoom_Text_PostBattleSpeech, MSGBOX_DEFAULT closemessage playse SE_DOOR checkplayergender - compare VAR_RESULT, MALE - call_if_eq EverGrandeCity_ChampionsRoom_EventScript_PlayMayMusic - compare VAR_RESULT, FEMALE - call_if_eq EverGrandeCity_ChampionsRoom_EventScript_PlayBrendanMusic + call_if_eq VAR_RESULT, MALE, EverGrandeCity_ChampionsRoom_EventScript_PlayMayMusic + call_if_eq VAR_RESULT, FEMALE, EverGrandeCity_ChampionsRoom_EventScript_PlayBrendanMusic addobject LOCALID_RIVAL call EverGrandeCity_ChampionsRoom_EventScript_RivalApproachPlayer checkplayergender - compare VAR_RESULT, MALE - goto_if_eq EverGrandeCity_ChampionsRoom_EventScript_MayAdvice - compare VAR_RESULT, FEMALE - goto_if_eq EverGrandeCity_ChampionsRoom_EventScript_BrendanAdvice + goto_if_eq VAR_RESULT, MALE, EverGrandeCity_ChampionsRoom_EventScript_MayAdvice + goto_if_eq VAR_RESULT, FEMALE, EverGrandeCity_ChampionsRoom_EventScript_BrendanAdvice end EverGrandeCity_ChampionsRoom_EventScript_PlayMayMusic:: @@ -132,16 +128,14 @@ EverGrandeCity_ChampionsRoom_EventScript_BirchArrivesExitForHoF:: waitmovement 0 msgbox EverGrandeCity_ChampionsRoom_Text_WallaceWaitOutside, MSGBOX_DEFAULT checkplayergender - compare VAR_RESULT, MALE - call_if_eq EverGrandeCity_ChampionsRoom_EventScript_MayCongratulations - compare VAR_RESULT, FEMALE - call_if_eq EverGrandeCity_ChampionsRoom_EventScript_BrendanCongratulations + call_if_eq VAR_RESULT, MALE, EverGrandeCity_ChampionsRoom_EventScript_MayCongratulations + call_if_eq VAR_RESULT, FEMALE, EverGrandeCity_ChampionsRoom_EventScript_BrendanCongratulations closemessage applymovement LOCALID_WALLACE, EverGrandeCity_ChampionsRoom_Movement_WallaceExit applymovement OBJ_EVENT_ID_PLAYER, EverGrandeCity_ChampionsRoom_Movement_PlayerExit waitmovement 0 setflag FLAG_HIDE_PETALBURG_GYM_GREETER - warp MAP_EVER_GRANDE_CITY_HALL_OF_FAME, 255, 7, 16 + warp MAP_EVER_GRANDE_CITY_HALL_OF_FAME, 7, 16 waitstate releaseall end diff --git a/data/maps/EverGrandeCity_DrakesRoom/scripts.inc b/data/maps/EverGrandeCity_DrakesRoom/scripts.inc index 75b16e7750..80b1f568c8 100644 --- a/data/maps/EverGrandeCity_DrakesRoom/scripts.inc +++ b/data/maps/EverGrandeCity_DrakesRoom/scripts.inc @@ -26,8 +26,7 @@ EverGrandeCity_DrakesRoom_EventScript_WalkInCloseDoor:: EverGrandeCity_DrakesRoom_OnLoad: call_if_set FLAG_DEFEATED_ELITE_4_DRAKE, EverGrandeCity_DrakesRoom_EventScript_ResetAdvanceToNextRoom - compare VAR_ELITE_4_STATE, 4 - call_if_eq EverGrandeCity_DrakesRoom_EventScript_CloseDoor + call_if_eq VAR_ELITE_4_STATE, 4, EverGrandeCity_DrakesRoom_EventScript_CloseDoor end EverGrandeCity_DrakesRoom_EventScript_ResetAdvanceToNextRoom:: diff --git a/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc b/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc index 59f4440c45..b2d556448c 100644 --- a/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc +++ b/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc @@ -25,8 +25,7 @@ EverGrandeCity_GlaciasRoom_EventScript_WalkInCloseDoor:: EverGrandeCity_GlaciasRoom_OnLoad: call_if_set FLAG_DEFEATED_ELITE_4_GLACIA, EverGrandeCity_GlaciasRoom_EventScript_ResetAdvanceToNextRoom - compare VAR_ELITE_4_STATE, 3 - call_if_eq EverGrandeCity_GlaciasRoom_EventScript_CloseDoor + call_if_eq VAR_ELITE_4_STATE, 3, EverGrandeCity_GlaciasRoom_EventScript_CloseDoor end EverGrandeCity_GlaciasRoom_EventScript_ResetAdvanceToNextRoom:: diff --git a/data/maps/EverGrandeCity_HallOfFame/scripts.inc b/data/maps/EverGrandeCity_HallOfFame/scripts.inc index b494408f13..92b01af970 100644 --- a/data/maps/EverGrandeCity_HallOfFame/scripts.inc +++ b/data/maps/EverGrandeCity_HallOfFame/scripts.inc @@ -46,10 +46,8 @@ EverGrandeCity_HallOfFame_EventScript_EnterHallOfFame:: setvar VAR_TEMP_1, 1 call EverGrandeCity_HallOfFame_EventScript_SetGameClearFlags checkplayergender - compare VAR_RESULT, MALE - goto_if_eq EverGrandeCity_HallOfFame_EventScript_GameClearMale - compare VAR_RESULT, FEMALE - goto_if_eq EverGrandeCity_HallOfFame_EventScript_GameClearFemale + goto_if_eq VAR_RESULT, MALE, EverGrandeCity_HallOfFame_EventScript_GameClearMale + goto_if_eq VAR_RESULT, FEMALE, EverGrandeCity_HallOfFame_EventScript_GameClearFemale end EverGrandeCity_HallOfFame_EventScript_GameClearMale:: diff --git a/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc b/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc index b64f5145a0..ed272eb901 100644 --- a/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc +++ b/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc @@ -25,8 +25,7 @@ EverGrandeCity_PhoebesRoom_EventScript_WalkInCloseDoor:: EverGrandeCity_PhoebesRoom_OnLoad: call_if_set FLAG_DEFEATED_ELITE_4_PHOEBE, EverGrandeCity_PhoebesRoom_EventScript_ResetAdvanceToNextRoom - compare VAR_ELITE_4_STATE, 2 - call_if_eq EverGrandeCity_PhoebesRoom_EventScript_CloseDoor + call_if_eq VAR_ELITE_4_STATE, 2, EverGrandeCity_PhoebesRoom_EventScript_CloseDoor end EverGrandeCity_PhoebesRoom_EventScript_ResetAdvanceToNextRoom:: diff --git a/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc b/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc index 1244b82fd2..ec45732e8c 100644 --- a/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc @@ -37,12 +37,9 @@ EverGrandeCity_PokemonCenter_1F_EventScript_Scott:: faceplayer msgbox EverGrandeCity_PokemonCenter_1F_Text_ScottHappyForYou, MSGBOX_DEFAULT closemessage - compare VAR_FACING, DIR_NORTH - call_if_eq EverGrandeCity_PokemonCenter_1F_EventScript_ScottExitNorth - compare VAR_FACING, DIR_EAST - call_if_eq EverGrandeCity_PokemonCenter_1F_EventScript_ScottExit - compare VAR_FACING, DIR_WEST - call_if_eq EverGrandeCity_PokemonCenter_1F_EventScript_ScottExit + call_if_eq VAR_FACING, DIR_NORTH, EverGrandeCity_PokemonCenter_1F_EventScript_ScottExitNorth + call_if_eq VAR_FACING, DIR_EAST, EverGrandeCity_PokemonCenter_1F_EventScript_ScottExit + call_if_eq VAR_FACING, DIR_WEST, EverGrandeCity_PokemonCenter_1F_EventScript_ScottExit addvar VAR_SCOTT_STATE, 1 setflag FLAG_MET_SCOTT_IN_EVERGRANDE playse SE_EXIT diff --git a/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc b/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc index ac7d4f9b45..c13e716975 100644 --- a/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc +++ b/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc @@ -55,10 +55,8 @@ EverGrandeCity_PokemonLeague_1F_EventScript_DoorGuard:: lockall goto_if_set FLAG_ENTERED_ELITE_FOUR, EverGrandeCity_PokemonLeague_1F_EventScript_GoForth getplayerxy VAR_TEMP_0, VAR_TEMP_1 - compare VAR_TEMP_0, 11 - call_if_ge EverGrandeCity_PokemonLeague_1F_EventScript_PlayerMoveToFrontFromRight - compare VAR_TEMP_0, 8 - call_if_le EverGrandeCity_PokemonLeague_1F_EventScript_PlayerMoveToFrontFromLeft + call_if_ge VAR_TEMP_0, 11, EverGrandeCity_PokemonLeague_1F_EventScript_PlayerMoveToFrontFromRight + call_if_le VAR_TEMP_0, 8, EverGrandeCity_PokemonLeague_1F_EventScript_PlayerMoveToFrontFromLeft message EverGrandeCity_PokemonLeague_1F_Text_MustHaveAllGymBadges waitmessage delay 120 diff --git a/data/maps/EverGrandeCity_SidneysRoom/scripts.inc b/data/maps/EverGrandeCity_SidneysRoom/scripts.inc index 3444d078b1..03b4a4e03b 100644 --- a/data/maps/EverGrandeCity_SidneysRoom/scripts.inc +++ b/data/maps/EverGrandeCity_SidneysRoom/scripts.inc @@ -12,8 +12,7 @@ EverGrandeCity_SidneysRoom_OnTransition: EverGrandeCity_SidneysRoom_OnLoad: call_if_set FLAG_DEFEATED_ELITE_4_SIDNEY, EverGrandeCity_SidneysRoom_EventScript_ResetAdvanceToNextRoom - compare VAR_ELITE_4_STATE, 1 - call_if_eq EverGrandeCity_SidneysRoom_EventScript_CloseDoor + call_if_eq VAR_ELITE_4_STATE, 1, EverGrandeCity_SidneysRoom_EventScript_CloseDoor end EverGrandeCity_SidneysRoom_EventScript_ResetAdvanceToNextRoom:: diff --git a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc index 3f51ba3935..707995daeb 100644 --- a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc +++ b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc @@ -18,10 +18,8 @@ FallarborTown_BattleTentBattleRoom_OnTransition: FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfx:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfxMale - compare VAR_RESULT, FEMALE - goto_if_eq FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale + goto_if_eq VAR_RESULT, MALE, FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfxMale + goto_if_eq VAR_RESULT, FEMALE, FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale return FallarborTown_BattleTentBattleRoom_EventScript_SetPlayerGfxMale:: @@ -44,8 +42,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_EnterRoom:: applymovement LOCALID_PLAYER, FallarborTown_BattleTentBattleRoom_Movement_PlayerEnter waitmovement 0 frontier_get FRONTIER_DATA_BATTLE_NUM - compare VAR_RESULT, 0 - goto_if_ne FallarborTown_BattleTentBattleRoom_EventScript_ResumeChallenge + goto_if_ne VAR_RESULT, 0, FallarborTown_BattleTentBattleRoom_EventScript_ResumeChallenge FallarborTown_BattleTentBattleRoom_EventScript_NextOpponentEnter:: tower_setopponent addobject LOCALID_OPPONENT @@ -71,7 +68,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_NextOpponentEnter:: FallarborTown_BattleTentBattleRoom_EventScript_WarpToLobbyLost:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST special LoadPlayerParty - warp MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 + warp MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY, 6, 6 waitstate FallarborTown_BattleTentBattleRoom_EventScript_DefeatedOpponent:: @@ -103,10 +100,8 @@ FallarborTown_BattleTentBattleRoom_EventScript_IncrementBattleNum:: special HealPlayerParty FallarborTown_BattleTentBattleRoom_EventScript_AskContinueChallenge:: frontier_get FRONTIER_DATA_BATTLE_NUM - compare VAR_RESULT, 1 - call_if_eq FallarborTown_BattleTentBattleRoom_EventScript_ReadyFor2ndOpponent - compare VAR_RESULT, 2 - call_if_eq FallarborTown_BattleTentBattleRoom_EventScript_ReadyFor3rdOpponent + call_if_eq VAR_RESULT, 1, FallarborTown_BattleTentBattleRoom_EventScript_ReadyFor2ndOpponent + call_if_eq VAR_RESULT, 2, FallarborTown_BattleTentBattleRoom_EventScript_ReadyFor3rdOpponent multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE switch VAR_RESULT case 0, FallarborTown_BattleTentBattleRoom_EventScript_ContinueChallenge @@ -142,13 +137,12 @@ FallarborTown_BattleTentBattleRoom_EventScript_WarpToLobbyWon:: delay 60 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON special LoadPlayerParty - warp MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 + warp MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY, 6, 6 waitstate @ Unreachable code block? The flow into the next block also doesnt make sense arena_get ARENA_DATA_WIN_STREAK - compare VAR_RESULT, MAX_STREAK - goto_if_eq FallarborTown_BattleTentBattleRoom_EventScript_IncrementBattleNum + goto_if_eq VAR_RESULT, MAX_STREAK, FallarborTown_BattleTentBattleRoom_EventScript_IncrementBattleNum addvar VAR_RESULT, 1 arena_set ARENA_DATA_WIN_STREAK, VAR_RESULT @ See above diff --git a/data/maps/FallarborTown_BattleTentCorridor/scripts.inc b/data/maps/FallarborTown_BattleTentCorridor/scripts.inc index 077cdfe798..023dc919f8 100644 --- a/data/maps/FallarborTown_BattleTentCorridor/scripts.inc +++ b/data/maps/FallarborTown_BattleTentCorridor/scripts.inc @@ -22,7 +22,7 @@ FallarborTown_BattleTentCorridor_EventScript_EnterCorridor:: closedoor 2, 1 waitdooranim setvar VAR_0x8006, 0 - warp MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM, 255, 4, 4 + warp MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM, 4, 4 waitstate releaseall end diff --git a/data/maps/FallarborTown_BattleTentLobby/scripts.inc b/data/maps/FallarborTown_BattleTentLobby/scripts.inc index 6a2c8713fa..1bcd04559c 100644 --- a/data/maps/FallarborTown_BattleTentLobby/scripts.inc +++ b/data/maps/FallarborTown_BattleTentLobby/scripts.inc @@ -106,8 +106,7 @@ FallarborTown_BattleTentLobby_EventScript_Attendant:: lock faceplayer fallarbortent_getprize - compare VAR_RESULT, ITEM_NONE - goto_if_ne FallarborTown_BattleTentLobby_EventScript_PrizeWaiting + goto_if_ne VAR_RESULT, ITEM_NONE, FallarborTown_BattleTentLobby_EventScript_PrizeWaiting special SavePlayerParty msgbox FallarborTown_BattleTentLobby_Text_WelcomeToBattleTent, MSGBOX_DEFAULT FallarborTown_BattleTentLobby_EventScript_AskEnterChallenge:: @@ -125,8 +124,7 @@ FallarborTown_BattleTentLobby_EventScript_TryEnterChallenge:: setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES setvar VAR_RESULT, 2 frontier_checkineligible - compare VAR_0x8004, TRUE - goto_if_eq FallarborTown_BattleTentLobby_EventScript_NotEnoughValidMons + goto_if_eq VAR_0x8004, TRUE, FallarborTown_BattleTentLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_TENT msgbox FallarborTown_BattleTentLobby_Text_SelectThreeMons, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK @@ -134,8 +132,7 @@ FallarborTown_BattleTentLobby_EventScript_TryEnterChallenge:: setvar VAR_0x8005, FRONTIER_PARTY_SIZE special ChoosePartyForBattleFrontier waitstate - compare VAR_RESULT, 0 - goto_if_eq FallarborTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge + goto_if_eq VAR_RESULT, 0, FallarborTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge msgbox FallarborTown_BattleTentLobby_Text_SaveBeforeChallenge, MSGBOX_YESNO switch VAR_RESULT case NO, FallarborTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge @@ -153,15 +150,14 @@ FallarborTown_BattleTentLobby_EventScript_SaveBeforeChallenge:: delay 2 call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 - compare VAR_RESULT, 0 - goto_if_eq FallarborTown_BattleTentLobby_EventScript_CancelChallengeSaveFailed + goto_if_eq VAR_RESULT, 0, FallarborTown_BattleTentLobby_EventScript_CancelChallengeSaveFailed FallarborTown_BattleTentLobby_EventScript_EnterChallenge:: special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox FallarborTown_BattleTentLobby_Text_GuideYouToBattleTent, MSGBOX_DEFAULT closemessage call FallarborTown_BattleTentLobby_EventScript_WalkToDoor - warp MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR, 255, 2, 7 + warp MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR, 2, 7 setvar VAR_TEMP_0, 0 waitstate end diff --git a/data/maps/FallarborTown_CozmosHouse/scripts.inc b/data/maps/FallarborTown_CozmosHouse/scripts.inc index 43a9dca7f3..61f297e69d 100644 --- a/data/maps/FallarborTown_CozmosHouse/scripts.inc +++ b/data/maps/FallarborTown_CozmosHouse/scripts.inc @@ -5,9 +5,8 @@ FallarborTown_CozmosHouse_EventScript_ProfCozmo:: lock faceplayer goto_if_set FLAG_RECEIVED_TM27, FallarborTown_CozmosHouse_EventScript_GaveMeteorite - checkitem ITEM_METEORITE, 1 - compare VAR_RESULT, TRUE - goto_if_eq FallarborTown_CozmosHouse_EventScript_PlayerHasMeteorite + checkitem ITEM_METEORITE + goto_if_eq VAR_RESULT, TRUE, FallarborTown_CozmosHouse_EventScript_PlayerHasMeteorite msgbox FallarborTown_CozmosHouse_Text_MeteoriteWillNeverBeMineNow, MSGBOX_DEFAULT release end @@ -15,12 +14,10 @@ FallarborTown_CozmosHouse_EventScript_ProfCozmo:: FallarborTown_CozmosHouse_EventScript_PlayerHasMeteorite:: call_if_unset FLAG_TEMP_2, FallarborTown_CozmosHouse_EventScript_NoticeMeteorite call_if_set FLAG_TEMP_2, FallarborTown_CozmosHouse_EventScript_AskForMeteorite - compare VAR_RESULT, NO - goto_if_eq FallarborTown_CozmosHouse_EventScript_DeclineGiveMeteorite + goto_if_eq VAR_RESULT, NO, FallarborTown_CozmosHouse_EventScript_DeclineGiveMeteorite msgbox FallarborTown_CozmosHouse_Text_PleaseUseThisTM, MSGBOX_DEFAULT giveitem ITEM_TM27 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setvar VAR_0x8004, ITEM_METEORITE call Common_EventScript_PlayerHandedOverTheItem setflag FLAG_RECEIVED_TM27 diff --git a/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc b/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc index 1bd54b4b8d..f17754328d 100644 --- a/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc +++ b/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc @@ -14,9 +14,8 @@ FallarborTown_MoveRelearnersHouse_EventScript_MoveRelearner:: end FallarborTown_MoveRelearnersHouse_EventScript_AskTeachMove:: - checkitem ITEM_HEART_SCALE, 1 - compare VAR_RESULT, FALSE - goto_if_eq FallarborTown_MoveRelearnersHouse_EventScript_ComeBackWithHeartScale + checkitem ITEM_HEART_SCALE + goto_if_eq VAR_RESULT, FALSE, FallarborTown_MoveRelearnersHouse_EventScript_ComeBackWithHeartScale msgbox FallarborTown_MoveRelearnersHouse_Text_ThatsAHeartScaleWantMeToTeachMove, MSGBOX_YESNO switch VAR_RESULT case NO, FallarborTown_MoveRelearnersHouse_EventScript_ComeBackWithHeartScale @@ -27,13 +26,10 @@ FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon:: msgbox FallarborTown_MoveRelearnersHouse_Text_TutorWhichMon, MSGBOX_DEFAULT special ChooseMonForMoveRelearner waitstate - compare VAR_0x8004, 255 - goto_if_eq FallarborTown_MoveRelearnersHouse_EventScript_ComeBackWithHeartScale + goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, FallarborTown_MoveRelearnersHouse_EventScript_ComeBackWithHeartScale special IsSelectedMonEgg - compare VAR_RESULT, TRUE - goto_if_eq FallarborTown_MoveRelearnersHouse_EventScript_CantTeachEgg - compare VAR_0x8005, 0 - goto_if_eq FallarborTown_MoveRelearnersHouse_EventScript_NoMoveToTeachMon + goto_if_eq VAR_RESULT, TRUE, FallarborTown_MoveRelearnersHouse_EventScript_CantTeachEgg + goto_if_eq VAR_0x8005, 0, FallarborTown_MoveRelearnersHouse_EventScript_NoMoveToTeachMon goto FallarborTown_MoveRelearnersHouse_EventScript_ChooseMove end @@ -41,8 +37,7 @@ FallarborTown_MoveRelearnersHouse_EventScript_ChooseMove:: msgbox FallarborTown_MoveRelearnersHouse_Text_TeachWhichMove, MSGBOX_DEFAULT special TeachMoveRelearnerMove waitstate - compare VAR_0x8004, 0 - goto_if_eq FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon + goto_if_eq VAR_0x8004, 0, FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon msgbox FallarborTown_MoveRelearnersHouse_Text_HandedOverHeartScale, MSGBOX_DEFAULT removeitem ITEM_HEART_SCALE goto FallarborTown_MoveRelearnersHouse_EventScript_ComeBackWithHeartScale diff --git a/data/maps/FarawayIsland_Entrance/scripts.inc b/data/maps/FarawayIsland_Entrance/scripts.inc index 15deb95e6f..504b0dc6a6 100644 --- a/data/maps/FarawayIsland_Entrance/scripts.inc +++ b/data/maps/FarawayIsland_Entrance/scripts.inc @@ -23,8 +23,7 @@ FarawayIsland_Entrance_EventScript_Sailor:: lock faceplayer msgbox FarawayIsland_Entrance_Text_SailorReturn, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq FarawayIsland_Entrance_EventScript_AsYouLike + goto_if_eq VAR_RESULT, NO, FarawayIsland_Entrance_EventScript_AsYouLike msgbox EventTicket_Text_SailHome, MSGBOX_DEFAULT closemessage applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFasterDown @@ -33,7 +32,7 @@ FarawayIsland_Entrance_EventScript_Sailor:: hideobjectat LOCALID_SAILOR, MAP_FARAWAY_ISLAND_ENTRANCE setvar VAR_0x8004, LOCALID_SS_TIDAL call Common_EventScript_FerryDepartIsland - warp MAP_LILYCOVE_CITY_HARBOR, 255, 8, 11 + warp MAP_LILYCOVE_CITY_HARBOR, 8, 11 waitstate release end diff --git a/data/maps/FarawayIsland_Interior/scripts.inc b/data/maps/FarawayIsland_Interior/scripts.inc index e35825be73..d3d519ed15 100644 --- a/data/maps/FarawayIsland_Interior/scripts.inc +++ b/data/maps/FarawayIsland_Interior/scripts.inc @@ -13,14 +13,10 @@ FarawayIsland_Interior_OnReturnToField: FarawayIsland_Interior_EventScript_TrySetMewAboveGrass:: specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq FarawayIsland_Interior_EventScript_SetMewAboveGrass - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq FarawayIsland_Interior_EventScript_SetMewAboveGrass - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq FarawayIsland_Interior_EventScript_SetMewAboveGrass - compare VAR_RESULT, B_OUTCOME_MON_TELEPORTED - goto_if_eq FarawayIsland_Interior_EventScript_SetMewAboveGrass + goto_if_eq VAR_RESULT, B_OUTCOME_WON, FarawayIsland_Interior_EventScript_SetMewAboveGrass + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, FarawayIsland_Interior_EventScript_SetMewAboveGrass + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, FarawayIsland_Interior_EventScript_SetMewAboveGrass + goto_if_eq VAR_RESULT, B_OUTCOME_MON_TELEPORTED, FarawayIsland_Interior_EventScript_SetMewAboveGrass return FarawayIsland_Interior_EventScript_SetMewAboveGrass:: @@ -34,8 +30,7 @@ FarawayIsland_Interior_OnResume: FarawayIsland_Interior_EventScript_TryRemoveMew:: specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_CAUGHT - goto_if_ne Common_EventScript_NopReturn + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return @@ -127,34 +122,23 @@ FarawayIsland_Interior_EventScript_Mew:: message FarawayIsland_Interior_Text_Mew waitse playmoncry SPECIES_MEW, CRY_MODE_ENCOUNTER - compare VAR_FACING, DIR_NORTH - call_if_eq FarawayIsland_Interior_EventScript_FoundMewNorth - compare VAR_FACING, DIR_SOUTH - call_if_eq FarawayIsland_Interior_EventScript_FoundMewSouth - compare VAR_FACING, DIR_WEST - call_if_eq FarawayIsland_Interior_EventScript_FoundMewWest - compare VAR_FACING, DIR_EAST - call_if_eq FarawayIsland_Interior_EventScript_FoundMewEast + call_if_eq VAR_FACING, DIR_NORTH, FarawayIsland_Interior_EventScript_FoundMewNorth + call_if_eq VAR_FACING, DIR_SOUTH, FarawayIsland_Interior_EventScript_FoundMewSouth + call_if_eq VAR_FACING, DIR_WEST, FarawayIsland_Interior_EventScript_FoundMewWest + call_if_eq VAR_FACING, DIR_EAST, FarawayIsland_Interior_EventScript_FoundMewEast special DestroyMewEmergingGrassSprite delay 40 waitmoncry - setvar VAR_0x8004, SPECIES_MEW - setvar VAR_0x8005, 30 @ level - setvar VAR_0x8006, ITEM_NONE - special CreateEventLegalEnemyMon + seteventmon SPECIES_MEW, 30 setflag FLAG_SYS_CTRL_OBJ_DELETE special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq FarawayIsland_Interior_EventScript_MewDefeated - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq FarawayIsland_Interior_EventScript_PlayerOrMewRan - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq FarawayIsland_Interior_EventScript_PlayerOrMewRan - compare VAR_RESULT, B_OUTCOME_MON_TELEPORTED - goto_if_eq FarawayIsland_Interior_EventScript_PlayerOrMewRan + goto_if_eq VAR_RESULT, B_OUTCOME_WON, FarawayIsland_Interior_EventScript_MewDefeated + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, FarawayIsland_Interior_EventScript_PlayerOrMewRan + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, FarawayIsland_Interior_EventScript_PlayerOrMewRan + goto_if_eq VAR_RESULT, B_OUTCOME_MON_TELEPORTED, FarawayIsland_Interior_EventScript_PlayerOrMewRan setflag FLAG_CAUGHT_MEW release end diff --git a/data/maps/FortreeCity/scripts.inc b/data/maps/FortreeCity/scripts.inc index 6371d5b0cd..f1694aaa84 100644 --- a/data/maps/FortreeCity/scripts.inc +++ b/data/maps/FortreeCity/scripts.inc @@ -55,17 +55,15 @@ FortreeCity_EventScript_GymSign:: FortreeCity_EventScript_Kecleon:: lock faceplayer - checkitem ITEM_DEVON_SCOPE, 1 - compare VAR_RESULT, TRUE - goto_if_eq FortreeCity_EventScript_AskUseDevonScope + checkitem ITEM_DEVON_SCOPE + goto_if_eq VAR_RESULT, TRUE, FortreeCity_EventScript_AskUseDevonScope msgbox FortreeCity_Text_SomethingUnseeable, MSGBOX_DEFAULT release end FortreeCity_EventScript_AskUseDevonScope:: msgbox FortreeCity_Text_UnseeableUseDevonScope, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq FortreeCity_EventScript_UseDevonScope + goto_if_eq VAR_RESULT, YES, FortreeCity_EventScript_UseDevonScope release end diff --git a/data/maps/FortreeCity_Gym/scripts.inc b/data/maps/FortreeCity_Gym/scripts.inc index caac724738..1c729bc44e 100644 --- a/data/maps/FortreeCity_Gym/scripts.inc +++ b/data/maps/FortreeCity_Gym/scripts.inc @@ -18,8 +18,7 @@ FortreeCity_Gym_EventScript_InitRotatingGates:: FortreeCity_Gym_EventScript_Winona:: trainerbattle_single TRAINER_WINONA_1, FortreeCity_Gym_Text_WinonaIntro, FortreeCity_Gym_Text_WinonaDefeat, FortreeCity_Gym_EventScript_WinonaDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq FortreeCity_Gym_EventScript_WinonaRematch + goto_if_eq VAR_RESULT, TRUE, FortreeCity_Gym_EventScript_WinonaRematch goto_if_unset FLAG_RECEIVED_TM40, FortreeCity_Gym_EventScript_GiveAerialAce2 msgbox FortreeCity_Gym_Text_WinonaPostBattle, MSGBOX_DEFAULT release @@ -50,8 +49,7 @@ FortreeCity_Gym_EventScript_WinonaDefeated:: FortreeCity_Gym_EventScript_GiveAerialAce2:: giveitem ITEM_TM40 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull msgbox FortreeCity_Gym_Text_ExplainAerialAce, MSGBOX_DEFAULT setflag FLAG_RECEIVED_TM40 release @@ -59,8 +57,7 @@ FortreeCity_Gym_EventScript_GiveAerialAce2:: FortreeCity_Gym_EventScript_GiveAerialAce:: giveitem ITEM_TM40 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_BagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_BagIsFull msgbox FortreeCity_Gym_Text_ExplainAerialAce, MSGBOX_DEFAULT setflag FLAG_RECEIVED_TM40 return diff --git a/data/maps/FortreeCity_House1/scripts.inc b/data/maps/FortreeCity_House1/scripts.inc index e25334ee9a..a072f56106 100644 --- a/data/maps/FortreeCity_House1/scripts.inc +++ b/data/maps/FortreeCity_House1/scripts.inc @@ -10,24 +10,21 @@ FortreeCity_House1_EventScript_Trader:: specialvar VAR_RESULT, GetInGameTradeSpeciesInfo copyvar VAR_0x8009, VAR_RESULT msgbox FortreeCity_House1_Text_YouWillTradeWontYou, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq FortreeCity_House1_EventScript_DeclineTrade + goto_if_eq VAR_RESULT, NO, FortreeCity_House1_EventScript_DeclineTrade special ChoosePartyMon waitstate copyvar VAR_0x800A, VAR_0x8004 - compare VAR_0x8004, 255 - goto_if_eq FortreeCity_House1_EventScript_DeclineTrade + goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, FortreeCity_House1_EventScript_DeclineTrade copyvar VAR_0x8005, VAR_0x800A specialvar VAR_RESULT, GetTradeSpecies copyvar VAR_0x800B, VAR_RESULT - compare VAR_RESULT, VAR_0x8009 - goto_if_ne FortreeCity_House1_EventScript_NotRequestedMon + goto_if_ne VAR_RESULT, VAR_0x8009, FortreeCity_House1_EventScript_NotRequestedMon copyvar VAR_0x8004, VAR_0x8008 copyvar VAR_0x8005, VAR_0x800A special CreateInGameTradePokemon special DoInGameTradeScene waitstate - bufferspeciesname 0, VAR_0x8009 + bufferspeciesname STR_VAR_1, VAR_0x8009 msgbox FortreeCity_House1_Text_MonYouTakeCare, MSGBOX_DEFAULT setflag FLAG_FORTREE_NPC_TRADE_COMPLETED release @@ -39,7 +36,7 @@ FortreeCity_House1_EventScript_DeclineTrade:: end FortreeCity_House1_EventScript_NotRequestedMon:: - bufferspeciesname 0, VAR_0x8009 + bufferspeciesname STR_VAR_1, VAR_0x8009 msgbox FortreeCity_House1_Text_ThisIsntAMon, MSGBOX_DEFAULT release end diff --git a/data/maps/FortreeCity_House2/scripts.inc b/data/maps/FortreeCity_House2/scripts.inc index 29e9ea93cf..cdd0fc99f7 100644 --- a/data/maps/FortreeCity_House2/scripts.inc +++ b/data/maps/FortreeCity_House2/scripts.inc @@ -20,8 +20,7 @@ FortreeCity_House2_EventScript_HiddenPowerGiver:: case 0, FortreeCity_House2_EventScript_WrongGuess msgbox FortreeCity_House2_Text_YourHiddenPowerHasAwoken, MSGBOX_DEFAULT giveitem ITEM_TM10 - compare VAR_RESULT, 0 - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, 0, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM10 msgbox FortreeCity_House2_Text_ExplainHiddenPower, MSGBOX_DEFAULT release diff --git a/data/maps/FortreeCity_House4/scripts.inc b/data/maps/FortreeCity_House4/scripts.inc index c416cf1475..ed91674173 100644 --- a/data/maps/FortreeCity_House4/scripts.inc +++ b/data/maps/FortreeCity_House4/scripts.inc @@ -34,8 +34,7 @@ FortreeCity_House4_EventScript_WingullReturned:: waitmovement 0 msgbox FortreeCity_House4_Text_WelcomeWingullTakeMentalHerb, MSGBOX_DEFAULT giveitem ITEM_MENTAL_HERB - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_MENTAL_HERB releaseall end diff --git a/data/maps/GraniteCave_B1F/scripts.inc b/data/maps/GraniteCave_B1F/scripts.inc index f1b52ce662..24519aef65 100644 --- a/data/maps/GraniteCave_B1F/scripts.inc +++ b/data/maps/GraniteCave_B1F/scripts.inc @@ -6,6 +6,6 @@ GraniteCave_B1F_MapScripts:: GraniteCave_B1F_SetHoleWarp: setstepcallback STEP_CB_CRACKED_FLOOR - setholewarp MAP_GRANITE_CAVE_B2F, 255, 0, 0 + setholewarp MAP_GRANITE_CAVE_B2F end diff --git a/data/maps/GraniteCave_StevensRoom/scripts.inc b/data/maps/GraniteCave_StevensRoom/scripts.inc index b57eb0de6d..384e648ee2 100644 --- a/data/maps/GraniteCave_StevensRoom/scripts.inc +++ b/data/maps/GraniteCave_StevensRoom/scripts.inc @@ -12,8 +12,7 @@ GraniteCave_StevensRoom_EventScript_Steven:: setflag FLAG_DELIVERED_STEVEN_LETTER msgbox GraniteCave_StevensRoom_Text_ThankYouTakeThis, MSGBOX_DEFAULT giveitem ITEM_TM47 - compare VAR_RESULT, FALSE - call_if_eq GraniteCave_StevensRoom_EventScript_BagFull + call_if_eq VAR_RESULT, FALSE, GraniteCave_StevensRoom_EventScript_BagFull msgbox GraniteCave_StevensRoom_Text_CouldBecomeChampionLetsRegister, MSGBOX_DEFAULT closemessage delay 30 @@ -25,14 +24,10 @@ GraniteCave_StevensRoom_EventScript_Steven:: setflag FLAG_REGISTERED_STEVEN_POKENAV msgbox GraniteCave_StevensRoom_Text_IveGotToHurryAlong, MSGBOX_DEFAULT closemessage - compare VAR_FACING, DIR_NORTH - call_if_eq GraniteCave_StevensRoom_EventScript_StevenExitNorth - compare VAR_FACING, DIR_SOUTH - call_if_eq GraniteCave_StevensRoom_EventScript_StevenExitSouth - compare VAR_FACING, DIR_WEST - call_if_eq GraniteCave_StevensRoom_EventScript_StevenExitWestEast - compare VAR_FACING, DIR_EAST - call_if_eq GraniteCave_StevensRoom_EventScript_StevenExitWestEast + call_if_eq VAR_FACING, DIR_NORTH, GraniteCave_StevensRoom_EventScript_StevenExitNorth + call_if_eq VAR_FACING, DIR_SOUTH, GraniteCave_StevensRoom_EventScript_StevenExitSouth + call_if_eq VAR_FACING, DIR_WEST, GraniteCave_StevensRoom_EventScript_StevenExitWestEast + call_if_eq VAR_FACING, DIR_EAST, GraniteCave_StevensRoom_EventScript_StevenExitWestEast playse SE_EXIT removeobject LOCALID_STEVEN release diff --git a/data/maps/InsideOfTruck/scripts.inc b/data/maps/InsideOfTruck/scripts.inc index 3068b11841..c59d5a97be 100644 --- a/data/maps/InsideOfTruck/scripts.inc +++ b/data/maps/InsideOfTruck/scripts.inc @@ -4,9 +4,9 @@ InsideOfTruck_MapScripts:: .byte 0 InsideOfTruck_OnLoad: - setmetatile 4, 1, METATILE_InsideOfTruck_ExitLight_Top, 0 - setmetatile 4, 2, METATILE_InsideOfTruck_ExitLight_Mid, 0 - setmetatile 4, 3, METATILE_InsideOfTruck_ExitLight_Bottom, 0 + setmetatile 4, 1, METATILE_InsideOfTruck_ExitLight_Top, FALSE + setmetatile 4, 2, METATILE_InsideOfTruck_ExitLight_Mid, FALSE + setmetatile 4, 3, METATILE_InsideOfTruck_ExitLight_Bottom, FALSE end InsideOfTruck_OnResume: @@ -17,10 +17,8 @@ InsideOfTruck_EventScript_SetIntroFlags:: lockall setflag FLAG_HIDE_MAP_NAME_POPUP checkplayergender - compare VAR_RESULT, MALE - goto_if_eq InsideOfTruck_EventScript_SetIntroFlagsMale - compare VAR_RESULT, FEMALE - goto_if_eq InsideOfTruck_EventScript_SetIntroFlagsFemale + goto_if_eq VAR_RESULT, MALE, InsideOfTruck_EventScript_SetIntroFlagsMale + goto_if_eq VAR_RESULT, FEMALE, InsideOfTruck_EventScript_SetIntroFlagsFemale end InsideOfTruck_EventScript_SetIntroFlagsMale:: @@ -32,7 +30,7 @@ InsideOfTruck_EventScript_SetIntroFlagsMale:: setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_SIBLING setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F_POKE_BALL setvar VAR_LITTLEROOT_HOUSES_STATE_BRENDAN, 1 - setdynamicwarp MAP_LITTLEROOT_TOWN, 255, 3, 10 + setdynamicwarp MAP_LITTLEROOT_TOWN, 3, 10 releaseall end @@ -45,7 +43,7 @@ InsideOfTruck_EventScript_SetIntroFlagsFemale:: setflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_SIBLING setflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_2F_POKE_BALL setvar VAR_LITTLEROOT_HOUSES_STATE_MAY, 1 - setdynamicwarp MAP_LITTLEROOT_TOWN, 255, 12, 10 + setdynamicwarp MAP_LITTLEROOT_TOWN, 12, 10 releaseall end diff --git a/data/maps/IslandCave/scripts.inc b/data/maps/IslandCave/scripts.inc index d660aadf06..d15802aaa8 100644 --- a/data/maps/IslandCave/scripts.inc +++ b/data/maps/IslandCave/scripts.inc @@ -10,8 +10,7 @@ IslandCave_OnResume: IslandCave_EventScript_TryRemoveRegice:: specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_CAUGHT - goto_if_ne Common_EventScript_NopReturn + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return @@ -20,12 +19,12 @@ IslandCave_OnLoad: end IslandCave_EventScript_HideRegiEntrance:: - setmetatile 7, 19, METATILE_Cave_EntranceCover, 1 - setmetatile 8, 19, METATILE_Cave_EntranceCover, 1 - setmetatile 9, 19, METATILE_Cave_EntranceCover, 1 - setmetatile 7, 20, METATILE_Cave_SealedChamberBraille_Mid, 1 - setmetatile 8, 20, METATILE_Cave_SealedChamberBraille_Mid, 1 - setmetatile 9, 20, METATILE_Cave_SealedChamberBraille_Mid, 1 + setmetatile 7, 19, METATILE_Cave_EntranceCover, TRUE + setmetatile 8, 19, METATILE_Cave_EntranceCover, TRUE + setmetatile 9, 19, METATILE_Cave_EntranceCover, TRUE + setmetatile 7, 20, METATILE_Cave_SealedChamberBraille_Mid, TRUE + setmetatile 8, 20, METATILE_Cave_SealedChamberBraille_Mid, TRUE + setmetatile 9, 20, METATILE_Cave_SealedChamberBraille_Mid, TRUE return IslandCave_OnTransition: @@ -39,12 +38,12 @@ IslandCave_EventScript_ShowRegice:: return IslandCave_EventScript_OpenRegiEntrance:: - setmetatile 7, 19, METATILE_Cave_SealedChamberEntrance_TopLeft, 1 - setmetatile 8, 19, METATILE_Cave_SealedChamberEntrance_TopMid, 1 - setmetatile 9, 19, METATILE_Cave_SealedChamberEntrance_TopRight, 1 - setmetatile 7, 20, METATILE_Cave_SealedChamberEntrance_BottomLeft, 1 - setmetatile 8, 20, METATILE_Cave_SealedChamberEntrance_BottomMid, 0 - setmetatile 9, 20, METATILE_Cave_SealedChamberEntrance_BottomRight, 1 + setmetatile 7, 19, METATILE_Cave_SealedChamberEntrance_TopLeft, TRUE + setmetatile 8, 19, METATILE_Cave_SealedChamberEntrance_TopMid, TRUE + setmetatile 9, 19, METATILE_Cave_SealedChamberEntrance_TopRight, TRUE + setmetatile 7, 20, METATILE_Cave_SealedChamberEntrance_BottomLeft, TRUE + setmetatile 8, 20, METATILE_Cave_SealedChamberEntrance_BottomMid, FALSE + setmetatile 9, 20, METATILE_Cave_SealedChamberEntrance_BottomRight, TRUE special DrawWholeMapView playse SE_BANG setflag FLAG_SYS_BRAILLE_REGICE_COMPLETED @@ -95,18 +94,15 @@ IslandCave_EventScript_Regice:: playmoncry SPECIES_REGICE, CRY_MODE_ENCOUNTER delay 40 waitmoncry - setwildbattle SPECIES_REGICE, 40, ITEM_NONE + setwildbattle SPECIES_REGICE, 40 setflag FLAG_SYS_CTRL_OBJ_DELETE special StartRegiBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq IslandCave_EventScript_DefeatedRegice - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq IslandCave_EventScript_RanFromRegice - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq IslandCave_EventScript_RanFromRegice + goto_if_eq VAR_RESULT, B_OUTCOME_WON, IslandCave_EventScript_DefeatedRegice + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, IslandCave_EventScript_RanFromRegice + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, IslandCave_EventScript_RanFromRegice setflag FLAG_DEFEATED_REGICE release end diff --git a/data/maps/JaggedPass/scripts.inc b/data/maps/JaggedPass/scripts.inc index 754ee00cf5..f969a4dec6 100644 --- a/data/maps/JaggedPass/scripts.inc +++ b/data/maps/JaggedPass/scripts.inc @@ -8,14 +8,12 @@ JaggedPass_MapScripts:: JaggedPass_OnResume: setstepcallback STEP_CB_ASH - compare VAR_JAGGED_PASS_STATE, 0 - call_if_eq JaggedPass_EventScript_CheckHasMagmaEmblem + call_if_eq VAR_JAGGED_PASS_STATE, 0, JaggedPass_EventScript_CheckHasMagmaEmblem end JaggedPass_EventScript_CheckHasMagmaEmblem:: - checkitem ITEM_MAGMA_EMBLEM, 1 - compare VAR_RESULT, TRUE - goto_if_eq JaggedPass_EventScript_SetReadyToOpenHideout + checkitem ITEM_MAGMA_EMBLEM + goto_if_eq VAR_RESULT, TRUE, JaggedPass_EventScript_SetReadyToOpenHideout return JaggedPass_EventScript_SetReadyToOpenHideout:: @@ -23,8 +21,7 @@ JaggedPass_EventScript_SetReadyToOpenHideout:: return JaggedPass_OnTransition: - compare VAR_JAGGED_PASS_ASH_WEATHER, 1 - call_if_eq JaggedPass_EventScript_SetWeatherAsh + call_if_eq VAR_JAGGED_PASS_ASH_WEATHER, 1, JaggedPass_EventScript_SetWeatherAsh end JaggedPass_EventScript_SetWeatherAsh:: @@ -33,13 +30,12 @@ JaggedPass_EventScript_SetWeatherAsh:: return JaggedPass_OnLoad: - compare VAR_JAGGED_PASS_STATE, 1 - goto_if_le JaggedPass_EventScript_ConcealHideoutEntrance + goto_if_le VAR_JAGGED_PASS_STATE, 1, JaggedPass_EventScript_ConcealHideoutEntrance end JaggedPass_EventScript_ConcealHideoutEntrance:: - setmetatile 16, 17, METATILE_Lavaridge_RockWall, 1 - setmetatile 16, 18, METATILE_Lavaridge_RockWall, 1 + setmetatile 16, 17, METATILE_Lavaridge_RockWall, TRUE + setmetatile 16, 18, METATILE_Lavaridge_RockWall, TRUE end JaggedPass_EventScript_OpenMagmaHideout:: @@ -59,8 +55,8 @@ JaggedPass_EventScript_OpenMagmaHideout:: special ShakeCamera waitstate playse SE_EFFECTIVE - setmetatile 16, 17, METATILE_Lavaridge_CaveEntrance_Top, 1 - setmetatile 16, 18, METATILE_Lavaridge_CaveEntrance_Bottom, 0 + setmetatile 16, 17, METATILE_Lavaridge_CaveEntrance_Top, TRUE + setmetatile 16, 18, METATILE_Lavaridge_CaveEntrance_Bottom, FALSE special DrawWholeMapView delay 30 setvar VAR_JAGGED_PASS_STATE, 2 @@ -106,8 +102,7 @@ JaggedPass_EventScript_Eric:: JaggedPass_EventScript_Diana:: trainerbattle_single TRAINER_DIANA_1, JaggedPass_Text_DianaIntro, JaggedPass_Text_DianaDefeat, JaggedPass_EventScript_RegisterDiana specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq JaggedPass_EventScript_DianaRematch + goto_if_eq VAR_RESULT, TRUE, JaggedPass_EventScript_DianaRematch msgbox JaggedPass_Text_DianaPostBattle, MSGBOX_DEFAULT release end @@ -127,8 +122,7 @@ JaggedPass_EventScript_DianaRematch:: JaggedPass_EventScript_Ethan:: trainerbattle_single TRAINER_ETHAN_1, JaggedPass_Text_EthanIntro, JaggedPass_Text_EthanDefeat, JaggedPass_EventScript_RegisterEthan specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq JaggedPass_EventScript_EthanRematch + goto_if_eq VAR_RESULT, TRUE, JaggedPass_EventScript_EthanRematch msgbox JaggedPass_Text_EthanPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/LavaridgeTown/scripts.inc b/data/maps/LavaridgeTown/scripts.inc index 2b7f8f331f..3ce226c4c1 100644 --- a/data/maps/LavaridgeTown/scripts.inc +++ b/data/maps/LavaridgeTown/scripts.inc @@ -12,10 +12,8 @@ LavaridgeTown_OnTransition: call_if_set FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, LavaridgeTown_EventScript_ShowMtChimneyTrainers call Common_EventScript_SetupRivalGfxId call Common_EventScript_SetupRivalOnBikeGfxId - compare VAR_LAVARIDGE_TOWN_STATE, 1 - call_if_eq LavaridgeTown_EventScript_CheckSetRivalPos - compare VAR_LAVARIDGE_TOWN_STATE, 1 - call_if_eq LavaridgeTown_EventScript_HideMapNamePopup + call_if_eq VAR_LAVARIDGE_TOWN_STATE, 1, LavaridgeTown_EventScript_CheckSetRivalPos + call_if_eq VAR_LAVARIDGE_TOWN_STATE, 1, LavaridgeTown_EventScript_HideMapNamePopup end LavaridgeTown_EventScript_ClearLavaridgeWhiteOut:: @@ -24,8 +22,7 @@ LavaridgeTown_EventScript_ClearLavaridgeWhiteOut:: LavaridgeTown_EventScript_CheckSetRivalPos:: getplayerxy VAR_0x8004, VAR_0x8005 - compare VAR_0x8004, 9 - goto_if_eq LavaridgeTown_EventScript_SetRivalPos + goto_if_eq VAR_0x8004, 9, LavaridgeTown_EventScript_SetRivalPos return LavaridgeTown_EventScript_SetRivalPos:: @@ -50,25 +47,17 @@ LavaridgeTown_OnFrame: LavaridgeTown_EventScript_RivalGiveGoGoggles:: lockall getplayerxy VAR_0x8008, VAR_0x8009 - compare VAR_0x8008, 9 - call_if_eq LavaridgeTown_EventScript_RivalNoticePlayer - compare VAR_0x8008, 9 - call_if_ne LavaridgeTown_EventScript_RivalExitHerbShop + call_if_eq VAR_0x8008, 9, LavaridgeTown_EventScript_RivalNoticePlayer + call_if_ne VAR_0x8008, 9, LavaridgeTown_EventScript_RivalExitHerbShop delay 20 checkplayergender - compare VAR_RESULT, MALE - call_if_eq LavaridgeTown_EventScript_PlayMayMusic - compare VAR_RESULT, FEMALE - call_if_eq LavaridgeTown_EventScript_PlayBrendanMusic - compare VAR_0x8008, 9 - call_if_eq LavaridgeTown_EventScript_RivalApproachPlayer1 - compare VAR_0x8008, 9 - call_if_ne LavaridgeTown_EventScript_RivalApproachPlayer2 + call_if_eq VAR_RESULT, MALE, LavaridgeTown_EventScript_PlayMayMusic + call_if_eq VAR_RESULT, FEMALE, LavaridgeTown_EventScript_PlayBrendanMusic + call_if_eq VAR_0x8008, 9, LavaridgeTown_EventScript_RivalApproachPlayer1 + call_if_ne VAR_0x8008, 9, LavaridgeTown_EventScript_RivalApproachPlayer2 checkplayergender - compare VAR_RESULT, MALE - goto_if_eq LavaridgeTown_EventScript_MayGiveGoGoggles - compare VAR_RESULT, FEMALE - goto_if_eq LavaridgeTown_EventScript_BrendanGiveGoGoggles + goto_if_eq VAR_RESULT, MALE, LavaridgeTown_EventScript_MayGiveGoGoggles + goto_if_eq VAR_RESULT, FEMALE, LavaridgeTown_EventScript_BrendanGiveGoGoggles end LavaridgeTown_EventScript_MayGiveGoGoggles:: @@ -92,10 +81,8 @@ LavaridgeTown_EventScript_RivalExit:: removeobject LOCALID_RIVAL addobject LOCALID_RIVAL_ON_BIKE delay 30 - compare VAR_0x8008, 9 - call_if_eq LavaridgeTown_EventScript_RivalExit1 - compare VAR_0x8008, 9 - call_if_ne LavaridgeTown_EventScript_RivalExit2 + call_if_eq VAR_0x8008, 9, LavaridgeTown_EventScript_RivalExit1 + call_if_ne VAR_0x8008, 9, LavaridgeTown_EventScript_RivalExit2 removeobject LOCALID_RIVAL_ON_BIKE setvar VAR_LAVARIDGE_TOWN_STATE, 2 clearflag FLAG_HIDE_MAP_NAME_POPUP @@ -214,8 +201,7 @@ LavaridgeTown_Movement_RivalExitHerbShop: LavaridgeTown_EventScript_HotSpringsTrigger:: specialvar VAR_RESULT, GetPlayerFacingDirection - compare VAR_RESULT, DIR_SOUTH - goto_if_eq LavaridgeTown_EventScript_EnteredHotSprings + goto_if_eq VAR_RESULT, DIR_SOUTH, LavaridgeTown_EventScript_EnteredHotSprings end LavaridgeTown_EventScript_EnteredHotSprings:: @@ -251,11 +237,9 @@ LavaridgeTown_EventScript_EggWoman:: faceplayer goto_if_set FLAG_RECEIVED_LAVARIDGE_EGG, LavaridgeTown_EventScript_ReceivedEgg msgbox LavaridgeTown_Text_HaveEggWillYouTakeIt, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LavaridgeTown_EventScript_DeclineEgg + goto_if_eq VAR_RESULT, NO, LavaridgeTown_EventScript_DeclineEgg getpartysize - compare VAR_RESULT, PARTY_SIZE - goto_if_eq LavaridgeTown_EventScript_NoRoomForEgg + goto_if_eq VAR_RESULT, PARTY_SIZE, LavaridgeTown_EventScript_NoRoomForEgg msgbox LavaridgeTown_Text_HopeYoullWalkPlentyWithEgg, MSGBOX_DEFAULT setflag FLAG_RECEIVED_LAVARIDGE_EGG playfanfare MUS_OBTAIN_ITEM diff --git a/data/maps/LavaridgeTown_Gym_1F/scripts.inc b/data/maps/LavaridgeTown_Gym_1F/scripts.inc index 608f32e24c..530d6e9598 100644 --- a/data/maps/LavaridgeTown_Gym_1F/scripts.inc +++ b/data/maps/LavaridgeTown_Gym_1F/scripts.inc @@ -19,7 +19,7 @@ LavaridgeTown_Gym_1F_EventScript_SetTrainerTempVars:: setvar VAR_TEMP_D, 0 setvar VAR_TEMP_E, 0 setvar VAR_TEMP_F, 0 - goto_if_defeated TRAINER_COLE LavaridgeTown_Gym_1F_EventScript_SetGeraldTempVar + goto_if_defeated TRAINER_COLE, LavaridgeTown_Gym_1F_EventScript_SetGeraldTempVar setvar VAR_TEMP_B, 1 LavaridgeTown_Gym_1F_EventScript_SetGeraldTempVar:: goto_if_defeated TRAINER_GERALD, LavaridgeTown_Gym_1F_EventScript_SetAxleTempVar @@ -51,8 +51,7 @@ LavaridgeTown_Gym_1F_EventScript_EndCheckBuryTrainers:: LavaridgeTown_Gym_1F_EventScript_Flannery:: trainerbattle_single TRAINER_FLANNERY_1, LavaridgeTown_Gym_1F_Text_FlanneryIntro, LavaridgeTown_Gym_1F_Text_FlanneryDefeat, LavaridgeTown_Gym_1F_EventScript_FlanneryDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq LavaridgeTown_Gym_1F_EventScript_FlanneryRematch + goto_if_eq VAR_RESULT, TRUE, LavaridgeTown_Gym_1F_EventScript_FlanneryRematch goto_if_unset FLAG_RECEIVED_TM50, LavaridgeTown_Gym_1F_EventScript_GiveOverheat2 msgbox LavaridgeTown_Gym_1F_Text_FlanneryPostBattle, MSGBOX_DEFAULT release @@ -67,8 +66,7 @@ LavaridgeTown_Gym_1F_EventScript_FlanneryDefeated:: setflag FLAG_DEFEATED_LAVARIDGE_GYM setflag FLAG_BADGE04_GET addvar VAR_PETALBURG_GYM_STATE, 1 - compare VAR_PETALBURG_GYM_STATE, 6 - call_if_eq Common_EventScript_ReadyPetalburgGymForBattle + call_if_eq VAR_PETALBURG_GYM_STATE, 6, Common_EventScript_ReadyPetalburgGymForBattle setvar VAR_0x8008, 4 call Common_EventScript_SetGymTrainers setflag FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WALLY @@ -87,8 +85,7 @@ LavaridgeTown_Gym_1F_EventScript_FlanneryDefeated:: LavaridgeTown_Gym_1F_EventScript_GiveOverheat2:: giveitem ITEM_TM50 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull msgbox LavaridgeTown_Gym_1F_Text_ExplainOverheat, MSGBOX_DEFAULT setflag FLAG_RECEIVED_TM50 release @@ -96,8 +93,7 @@ LavaridgeTown_Gym_1F_EventScript_GiveOverheat2:: LavaridgeTown_Gym_1F_EventScript_GiveOverheat:: giveitem ITEM_TM50 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_BagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_BagIsFull msgbox LavaridgeTown_Gym_1F_Text_ExplainOverheat, MSGBOX_DEFAULT setflag FLAG_RECEIVED_TM50 return @@ -109,15 +105,14 @@ LavaridgeTown_Gym_1F_EventScript_FlanneryRematch:: LavaridgeTown_Gym_1F_EventScript_Cole:: trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_COLE, LOCALID_COLE, LavaridgeTown_Gym_1F_Text_ColeIntro, LavaridgeTown_Gym_1F_Text_ColeDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript - msgbox LavaridgeTown_Gym_1F_Text_ColePostBattle MSGBOX_AUTOCLOSE + msgbox LavaridgeTown_Gym_1F_Text_ColePostBattle, MSGBOX_AUTOCLOSE end LavaridgeTown_Gym_EventScript_CheckTrainerScript:: call LavaridgeTown_Gym_1F_EventScript_SetTrainerTempVars release special ShouldTryGetTrainerScript - compare VAR_RESULT, 1 - goto_if_eq EventScript_GotoTrainerScript + goto_if_eq VAR_RESULT, 1, EventScript_GotoTrainerScript end LavaridgeTown_Gym_1F_EventScript_Axle:: diff --git a/data/maps/LavaridgeTown_HerbShop/scripts.inc b/data/maps/LavaridgeTown_HerbShop/scripts.inc index 2637f5c09d..dbe1b564ac 100644 --- a/data/maps/LavaridgeTown_HerbShop/scripts.inc +++ b/data/maps/LavaridgeTown_HerbShop/scripts.inc @@ -31,8 +31,7 @@ LavaridgeTown_HerbShop_EventScript_OldMan:: goto_if_set FLAG_RECEIVED_CHARCOAL, LavaridgeTown_HerbShop_EventScript_ExplainCharcoal msgbox LavaridgeTown_HerbShop_Text_YouveComeToLookAtHerbalMedicine, MSGBOX_DEFAULT giveitem ITEM_CHARCOAL - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_CHARCOAL release end diff --git a/data/maps/LilycoveCity/scripts.inc b/data/maps/LilycoveCity/scripts.inc index eb3f140a86..094592d646 100644 --- a/data/maps/LilycoveCity/scripts.inc +++ b/data/maps/LilycoveCity/scripts.inc @@ -19,18 +19,18 @@ LilycoveCity_OnLoad: end LilycoveCity_EventScript_SetWailmerMetatiles:: - setmetatile 76, 12, METATILE_Lilycove_Wailmer0, 1 - setmetatile 77, 12, METATILE_Lilycove_Wailmer1, 1 - setmetatile 76, 13, METATILE_Lilycove_Wailmer2, 1 - setmetatile 77, 13, METATILE_Lilycove_Wailmer3, 1 - setmetatile 76, 14, METATILE_Lilycove_Wailmer0_Alt, 1 - setmetatile 77, 14, METATILE_Lilycove_Wailmer1_Alt, 1 - setmetatile 76, 15, METATILE_Lilycove_Wailmer2, 1 - setmetatile 77, 15, METATILE_Lilycove_Wailmer3, 1 - setmetatile 77, 16, METATILE_Lilycove_Wailmer0_Alt, 1 - setmetatile 78, 16, METATILE_Lilycove_Wailmer1_Alt, 1 - setmetatile 77, 17, METATILE_Lilycove_Wailmer2, 1 - setmetatile 78, 17, METATILE_Lilycove_Wailmer3, 1 + setmetatile 76, 12, METATILE_Lilycove_Wailmer0, TRUE + setmetatile 77, 12, METATILE_Lilycove_Wailmer1, TRUE + setmetatile 76, 13, METATILE_Lilycove_Wailmer2, TRUE + setmetatile 77, 13, METATILE_Lilycove_Wailmer3, TRUE + setmetatile 76, 14, METATILE_Lilycove_Wailmer0_Alt, TRUE + setmetatile 77, 14, METATILE_Lilycove_Wailmer1_Alt, TRUE + setmetatile 76, 15, METATILE_Lilycove_Wailmer2, TRUE + setmetatile 77, 15, METATILE_Lilycove_Wailmer3, TRUE + setmetatile 77, 16, METATILE_Lilycove_Wailmer0_Alt, TRUE + setmetatile 78, 16, METATILE_Lilycove_Wailmer1_Alt, TRUE + setmetatile 77, 17, METATILE_Lilycove_Wailmer2, TRUE + setmetatile 78, 17, METATILE_Lilycove_Wailmer3, TRUE return LilycoveCity_EventScript_BerryGentleman:: @@ -42,8 +42,7 @@ LilycoveCity_EventScript_BerryGentleman:: random 10 addvar VAR_RESULT, FIRST_BERRY_INDEX giveitem VAR_RESULT - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_DAILY_LILYCOVE_RECEIVED_BERRY msgbox LilycoveCity_Text_BecauseYoureTrainer, MSGBOX_DEFAULT release @@ -234,18 +233,15 @@ LilycoveCity_EventScript_Rival:: lock faceplayer checkplayergender - compare VAR_RESULT, MALE - goto_if_eq LilycoveCity_EventScript_May - compare VAR_RESULT, FEMALE - goto_if_eq LilycoveCity_EventScript_Brendan + goto_if_eq VAR_RESULT, MALE, LilycoveCity_EventScript_May + goto_if_eq VAR_RESULT, FEMALE, LilycoveCity_EventScript_Brendan end LilycoveCity_EventScript_May:: playbgm MUS_ENCOUNTER_MAY, TRUE call_if_set FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_MayAskToBattleAgain call_if_unset FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_MayAskToBattle - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_EventScript_DeclineMayBattle + goto_if_eq VAR_RESULT, NO, LilycoveCity_EventScript_DeclineMayBattle msgbox LilycoveCity_Text_MayWontBeBeaten, MSGBOX_DEFAULT switch VAR_STARTER_MON case 0, LilycoveCity_EventScript_BattleMayTreecko @@ -273,8 +269,7 @@ LilycoveCity_EventScript_Brendan:: playbgm MUS_ENCOUNTER_BRENDAN, TRUE call_if_set FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_BrendanAskToBattleAgain call_if_unset FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_BrendanAskToBattle - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_EventScript_DeclineBrendanBattle + goto_if_eq VAR_RESULT, NO, LilycoveCity_EventScript_DeclineBrendanBattle msgbox LilycoveCity_Text_BrendanWontBeBeaten, MSGBOX_DEFAULT switch VAR_STARTER_MON case 0, LilycoveCity_EventScript_BattleBrendanTreecko @@ -332,10 +327,8 @@ LilycoveCity_EventScript_DefeatedMay:: msgbox LilycoveCity_Text_MayGoingBackToLittleroot, MSGBOX_DEFAULT setvar VAR_RESULT, FALSE call_if_set FLAG_BADGE06_GET, LilycoveCity_EventScript_CheckFinalBadge - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_EventScript_MayCollectBadges - compare VAR_RESULT, TRUE - call_if_eq LilycoveCity_EventScript_MayPokemonLeague + call_if_eq VAR_RESULT, FALSE, LilycoveCity_EventScript_MayCollectBadges + call_if_eq VAR_RESULT, TRUE, LilycoveCity_EventScript_MayPokemonLeague clearflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_BEDROOM clearflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_2F_PICHU_DOLL goto LilycoveCity_EventScript_RivalFlyAway @@ -366,10 +359,8 @@ LilycoveCity_EventScript_DefeatedBrendan:: msgbox LilycoveCity_Text_BrendanGoingBackToLittleroot, MSGBOX_DEFAULT setvar VAR_RESULT, FALSE call_if_set FLAG_BADGE06_GET, LilycoveCity_EventScript_CheckFinalBadge - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_EventScript_BrendanCollectBadges - compare VAR_RESULT, TRUE - call_if_eq LilycoveCity_EventScript_BrendanPokemonLeague + call_if_eq VAR_RESULT, FALSE, LilycoveCity_EventScript_BrendanCollectBadges + call_if_eq VAR_RESULT, TRUE, LilycoveCity_EventScript_BrendanPokemonLeague clearflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_BEDROOM clearflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F_SWABLU_DOLL goto LilycoveCity_EventScript_RivalFlyAway @@ -408,10 +399,8 @@ LilycoveCity_EventScript_SchoolKidM:: lock faceplayer msgbox LilycoveCity_Text_DoYouKnowAboutBerryBlender, MSGBOX_YESNO - compare VAR_RESULT, YES - call_if_eq LilycoveCity_EventScript_KnowAboutBerryBlender - compare VAR_RESULT, NO - call_if_eq LilycoveCity_EventScript_DontKnowAboutBerryBlender + call_if_eq VAR_RESULT, YES, LilycoveCity_EventScript_KnowAboutBerryBlender + call_if_eq VAR_RESULT, NO, LilycoveCity_EventScript_DontKnowAboutBerryBlender release end diff --git a/data/maps/LilycoveCity_ContestLobby/scripts.inc b/data/maps/LilycoveCity_ContestLobby/scripts.inc index 7bfa1419ad..fa884a0966 100644 --- a/data/maps/LilycoveCity_ContestLobby/scripts.inc +++ b/data/maps/LilycoveCity_ContestLobby/scripts.inc @@ -17,9 +17,8 @@ LilycoveCity_ContestLobby_OnTransition: end LilycoveCity_ContestLobby_EventScript_TryShowBlendMaster:: - getpricereduction POKENEWS_BLENDMASTER - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_ContestLobby_EventScript_ShowBlendMaster + getpokenewsactive POKENEWS_BLENDMASTER + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_ContestLobby_EventScript_ShowBlendMaster clearflag FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER_REPLACEMENT setflag FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER return @@ -52,10 +51,8 @@ LilycoveCity_ContestLobby_EventScript_ContestArtist:: showcontestpainting CONTEST_WINNER_ARTIST lockall msgbox LilycoveCity_ContestLobby_Text_ShouldITakePaintingToMuseum, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseum - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_ContestLobby_EventScript_ConfirmDontTakePainting + goto_if_eq VAR_RESULT, YES, LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseum + goto_if_eq VAR_RESULT, NO, LilycoveCity_ContestLobby_EventScript_ConfirmDontTakePainting releaseall end @@ -65,8 +62,7 @@ LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseum:: special SaveMuseumContestPainting setvar VAR_LILYCOVE_CONTEST_LOBBY_STATE, 0 specialvar VAR_RESULT, GiveMonArtistRibbon - compare VAR_RESULT, TRUE - call_if_eq LilycoveCity_ContestLobby_EventScript_ReceivedArtistRibbon + call_if_eq VAR_RESULT, TRUE, LilycoveCity_ContestLobby_EventScript_ReceivedArtistRibbon applymovement LOCALID_ARTIST, LilycoveCity_ContestLobby_Movement_ArtistExit waitmovement 0 removeobject LOCALID_ARTIST @@ -77,8 +73,7 @@ LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseum:: LilycoveCity_ContestLobby_EventScript_ConfirmDontTakePainting:: msgbox LilycoveCity_ContestLobby_Text_TakeHomeButIdLikeToTakeToMuseum, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseum + goto_if_eq VAR_RESULT, YES, LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseum msgbox LilycoveCity_ContestLobby_Text_FineThatsTheWayItIs, MSGBOX_DEFAULT closemessage applymovement LOCALID_ARTIST, LilycoveCity_ContestLobby_Movement_ArtistExit @@ -225,10 +220,8 @@ LilycoveCity_ContestLobby_EventScript_LinkContestArtist:: fadescreen FADE_TO_BLACK showcontestpainting CONTEST_WINNER_ARTIST msgbox LilycoveCity_ContestLobby_Text_ShouldITakePaintingToMuseum, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseumLink - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_ContestLobby_EventScript_ConfirmDontTakePaintingLink + goto_if_eq VAR_RESULT, YES, LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseumLink + goto_if_eq VAR_RESULT, NO, LilycoveCity_ContestLobby_EventScript_ConfirmDontTakePaintingLink end LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseumLink:: @@ -237,8 +230,7 @@ LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseumLink:: special SaveMuseumContestPainting setvar VAR_LILYCOVE_CONTEST_LOBBY_STATE, 0 specialvar VAR_RESULT, GiveMonArtistRibbon - compare VAR_RESULT, TRUE - call_if_eq LilycoveCity_ContestLobby_EventScript_ReceivedLinkArtistRibbon + call_if_eq VAR_RESULT, TRUE, LilycoveCity_ContestLobby_EventScript_ReceivedLinkArtistRibbon applymovement LOCALID_ARTIST_LINK, LilycoveCity_ContestLobby_Movement_LinkArtistExit waitmovement 0 removeobject LOCALID_ARTIST_LINK @@ -249,8 +241,7 @@ LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseumLink:: LilycoveCity_ContestLobby_EventScript_ConfirmDontTakePaintingLink:: msgbox LilycoveCity_ContestLobby_Text_TakeHomeButIdLikeToTakeToMuseum, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseumLink + goto_if_eq VAR_RESULT, YES, LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseumLink msgbox LilycoveCity_ContestLobby_Text_FineThatsTheWayItIs, MSGBOX_DEFAULT closemessage applymovement LOCALID_ARTIST_LINK, LilycoveCity_ContestLobby_Movement_LinkArtistExit @@ -327,8 +318,7 @@ LilycoveCity_ContestLobby_Movement_LinkArtistReturnToPlayer: LilycoveCity_ContestLobby_EventScript_ContestReceptionist:: special ClearLinkContestFlags specialvar VAR_RESULT, IsContestDebugActive @ Always FALSE - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_ContestLobby_EventScript_SetDebug + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_ContestLobby_EventScript_SetDebug call LilycoveCity_ContestLobby_EventScript_SpeakToContestReceptionist call LilycoveCity_ContestLobby_EventScript_LeadToContestHall special SetContestTrainerGfxIds @@ -384,31 +374,31 @@ LilycoveCity_ContestLobby_EventScript_WarpToContestHall:: return LilycoveCity_ContestLobby_EventScript_WarpToCoolContestHall:: - setwarp MAP_CONTEST_HALL_COOL, 255, 7, 5 + setwarp MAP_CONTEST_HALL_COOL, 7, 5 special DoContestHallWarp waitstate return LilycoveCity_ContestLobby_EventScript_WarpToBeautyContestHall:: - setwarp MAP_CONTEST_HALL_BEAUTY, 255, 7, 5 + setwarp MAP_CONTEST_HALL_BEAUTY, 7, 5 special DoContestHallWarp waitstate return LilycoveCity_ContestLobby_EventScript_WarpToCuteContestHall:: - setwarp MAP_CONTEST_HALL_CUTE, 255, 7, 5 + setwarp MAP_CONTEST_HALL_CUTE, 7, 5 special DoContestHallWarp waitstate return LilycoveCity_ContestLobby_EventScript_WarpToSmartContestHall:: - setwarp MAP_CONTEST_HALL_SMART, 255, 7, 5 + setwarp MAP_CONTEST_HALL_SMART, 7, 5 special DoContestHallWarp waitstate return LilycoveCity_ContestLobby_EventScript_WarpToToughContestHall:: - setwarp MAP_CONTEST_HALL_TOUGH, 255, 7, 5 + setwarp MAP_CONTEST_HALL_TOUGH, 7, 5 special DoContestHallWarp waitstate return @@ -418,14 +408,14 @@ LilycoveCity_ContestLobby_EventScript_LeadToContestHall:: applymovement LOCALID_RECEPTIONIST, LilycoveCity_ContestLobby_Movement_ReceptionistApproachCounter waitmovement 0 playse SE_BRIDGE_WALK - setmetatile 12, 2, METATILE_Contest_WallShadow, 1 - setmetatile 12, 3, METATILE_Contest_FloorShadow, 1 + setmetatile 12, 2, METATILE_Contest_WallShadow, TRUE + setmetatile 12, 3, METATILE_Contest_FloorShadow, TRUE special DrawWholeMapView applymovement LOCALID_RECEPTIONIST, LilycoveCity_ContestLobby_Movement_ReceptionistExitCounter waitmovement 0 playse SE_BRIDGE_WALK - setmetatile 12, 2, METATILE_Contest_CounterFlap_Top, 1 - setmetatile 12, 3, METATILE_Contest_CounterFlap_Bottom, 1 + setmetatile 12, 2, METATILE_Contest_CounterFlap_Top, TRUE + setmetatile 12, 3, METATILE_Contest_CounterFlap_Bottom, TRUE special DrawWholeMapView delay 20 applymovement LOCALID_RECEPTIONIST, LilycoveCity_ContestLobby_Movement_ReceptionistFacePlayer @@ -648,11 +638,9 @@ LilycoveCity_ContestLobby_EventScript_AskEnterLinkContest:: LilycoveCity_ContestLobby_EventScript_TryEnterLinkContest:: msgbox LilycoveCity_ContestLobby_Text_ProgressWillBeSaved, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_ContestLobby_EventScript_CancelLinkContest + goto_if_eq VAR_RESULT, NO, LilycoveCity_ContestLobby_EventScript_CancelLinkContest call Common_EventScript_SaveGame - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_ContestLobby_EventScript_CancelLinkContest + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_ContestLobby_EventScript_CancelLinkContest message LilycoveCity_ContestLobby_Text_WhichContestMode waitmessage specialvar VAR_TEMP_D, IsWirelessAdapterConnected @@ -671,8 +659,7 @@ LilycoveCity_ContestLobby_EventScript_EmeraldMode:: LilycoveCity_ContestLobby_EventScript_GlobalMode:: setvar VAR_TEMP_C, 1 - compare VAR_TEMP_D, 1 - goto_if_eq LilycoveCity_ContestLobby_EventScript_CancelLinkNoWirelessGMode + goto_if_eq VAR_TEMP_D, 1, LilycoveCity_ContestLobby_EventScript_CancelLinkNoWirelessGMode goto LilycoveCity_ContestLobby_EventScript_ChooseLinkContestType end @@ -724,19 +711,13 @@ LilycoveCity_ContestLobby_EventScript_ChooseLinkContestMon:: msgbox LilycoveCity_ContestLobby_Text_EnterWhichPokemon3, MSGBOX_DEFAULT setvar VAR_CONTEST_RANK, 0 choosecontestmon - compare VAR_0x8004, 255 - goto_if_eq LilycoveCity_ContestLobby_EventScript_CancelLinkContest + goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, LilycoveCity_ContestLobby_EventScript_CancelLinkContest special TryEnterContestMon - compare VAR_RESULT, CANT_ENTER_CONTEST - goto_if_eq LilycoveCity_ContestLobby_EventScript_LinkCantEnterLowRank - compare VAR_RESULT, CAN_ENTER_CONTEST_EQUAL_RANK - goto_if_eq LilycoveCity_ContestLobby_EventScript_EnterMonForLinkContest - compare VAR_RESULT, CAN_ENTER_CONTEST_HIGH_RANK - goto_if_eq LilycoveCity_ContestLobby_EventScript_EnterMonForLinkContest - compare VAR_RESULT, CANT_ENTER_CONTEST_EGG - goto_if_eq LilycoveCity_ContestLobby_EventScript_LinkCantEnterEgg - compare VAR_RESULT, CANT_ENTER_CONTEST_FAINTED - goto_if_eq LilycoveCity_ContestLobby_EventScript_LinkCantEnterFainted + goto_if_eq VAR_RESULT, CANT_ENTER_CONTEST, LilycoveCity_ContestLobby_EventScript_LinkCantEnterLowRank + goto_if_eq VAR_RESULT, CAN_ENTER_CONTEST_EQUAL_RANK, LilycoveCity_ContestLobby_EventScript_EnterMonForLinkContest + goto_if_eq VAR_RESULT, CAN_ENTER_CONTEST_HIGH_RANK, LilycoveCity_ContestLobby_EventScript_EnterMonForLinkContest + goto_if_eq VAR_RESULT, CANT_ENTER_CONTEST_EGG, LilycoveCity_ContestLobby_EventScript_LinkCantEnterEgg + goto_if_eq VAR_RESULT, CANT_ENTER_CONTEST_FAINTED, LilycoveCity_ContestLobby_EventScript_LinkCantEnterFainted end LilycoveCity_ContestLobby_EventScript_LinkCantEnterLowRank:: @@ -760,29 +741,19 @@ LilycoveCity_ContestLobby_EventScript_EnterMonForLinkContest:: end LilycoveCity_ContestLobby_EventScript_TrySetUpLinkContest:: - compare VAR_TEMP_D, 1 - goto_if_eq LilycoveCity_ContestLobby_EventScript_SetLinkGroupType - compare VAR_TEMP_D, 2 - goto_if_ge LilycoveCity_ContestLobby_EventScript_CancelLinkContest + goto_if_eq VAR_TEMP_D, 1, LilycoveCity_ContestLobby_EventScript_SetLinkGroupType + goto_if_ge VAR_TEMP_D, 2, LilycoveCity_ContestLobby_EventScript_CancelLinkContest message LilycoveCity_ContestLobby_Text_PleaseWaitBButtonCancel waitmessage copyvar VAR_0x8004, VAR_RESULT - compare VAR_TEMP_C, 0 - call_if_eq LilycoveCity_ContestLobby_EventScript_TryLinkEMode - compare VAR_TEMP_C, 1 - call_if_eq LilycoveCity_ContestLobby_EventScript_TryLinkGMode - compare VAR_TEMP_C, 2 - goto_if_ge LilycoveCity_ContestLobby_EventScript_CancelLinkContest - compare VAR_RESULT, LINKUP_WRONG_NUM_PLAYERS - goto_if_eq LilycoveCity_ContestLobby_EventScript_CancelLinkDifferentChoices - compare VAR_RESULT, LINKUP_DIFF_SELECTIONS - goto_if_eq LilycoveCity_ContestLobby_EventScript_CancelLinkDifferentChoices - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq LilycoveCity_ContestLobby_EventScript_CancelLinkContest - compare VAR_RESULT, LINKUP_CONNECTION_ERROR - goto_if_eq LilycoveCity_ContestLobby_EventScript_CancelLinkError - compare VAR_RESULT, LINKUP_FAILED_CONTEST_GMODE - goto_if_eq LilycoveCity_ContestLobby_EventScript_CancelLinkModeDifference + call_if_eq VAR_TEMP_C, 0, LilycoveCity_ContestLobby_EventScript_TryLinkEMode + call_if_eq VAR_TEMP_C, 1, LilycoveCity_ContestLobby_EventScript_TryLinkGMode + goto_if_ge VAR_TEMP_C, 2, LilycoveCity_ContestLobby_EventScript_CancelLinkContest + goto_if_eq VAR_RESULT, LINKUP_WRONG_NUM_PLAYERS, LilycoveCity_ContestLobby_EventScript_CancelLinkDifferentChoices + goto_if_eq VAR_RESULT, LINKUP_DIFF_SELECTIONS, LilycoveCity_ContestLobby_EventScript_CancelLinkDifferentChoices + goto_if_eq VAR_RESULT, LINKUP_FAILED, LilycoveCity_ContestLobby_EventScript_CancelLinkContest + goto_if_eq VAR_RESULT, LINKUP_CONNECTION_ERROR, LilycoveCity_ContestLobby_EventScript_CancelLinkError + goto_if_eq VAR_RESULT, LINKUP_FAILED_CONTEST_GMODE, LilycoveCity_ContestLobby_EventScript_CancelLinkModeDifference messageinstant LilycoveCity_ContestLobby_Text_Transmitting contestlinktransfer switch VAR_0x8004 @@ -836,7 +807,7 @@ LilycoveCity_ContestLobby_EventScript_CancelLinkTransmissionError:: LilycoveCity_ContestLobby_EventScript_StartLinkContest:: special GetContestPlayerId addvar VAR_0x8004, 1 - buffernumberstring 1, VAR_0x8004 + buffernumberstring STR_VAR_2, VAR_0x8004 messageautoscroll LilycoveCity_ContestLobby_Text_YourMonIsEntryNumX waitmessage subvar VAR_0x8004, 1 @@ -849,16 +820,11 @@ LilycoveCity_ContestLobby_EventScript_StartLinkContest:: end LilycoveCity_ContestLobby_EventScript_SetLinkGroupType:: - compare VAR_CONTEST_CATEGORY, CONTEST_CATEGORY_COOL - call_if_eq LilycoveCity_ContestLobby_EventScript_SetLinkGroupCoolContest - compare VAR_CONTEST_CATEGORY, CONTEST_CATEGORY_BEAUTY - call_if_eq LilycoveCity_ContestLobby_EventScript_SetLinkGroupBeautyContest - compare VAR_CONTEST_CATEGORY, CONTEST_CATEGORY_CUTE - call_if_eq LilycoveCity_ContestLobby_EventScript_SetLinkGroupCuteContest - compare VAR_CONTEST_CATEGORY, CONTEST_CATEGORY_SMART - call_if_eq LilycoveCity_ContestLobby_EventScript_SetLinkGroupSmartContest - compare VAR_CONTEST_CATEGORY, CONTEST_CATEGORY_TOUGH - call_if_eq LilycoveCity_ContestLobby_EventScript_SetLinkGroupToughContest + call_if_eq VAR_CONTEST_CATEGORY, CONTEST_CATEGORY_COOL, LilycoveCity_ContestLobby_EventScript_SetLinkGroupCoolContest + call_if_eq VAR_CONTEST_CATEGORY, CONTEST_CATEGORY_BEAUTY, LilycoveCity_ContestLobby_EventScript_SetLinkGroupBeautyContest + call_if_eq VAR_CONTEST_CATEGORY, CONTEST_CATEGORY_CUTE, LilycoveCity_ContestLobby_EventScript_SetLinkGroupCuteContest + call_if_eq VAR_CONTEST_CATEGORY, CONTEST_CATEGORY_SMART, LilycoveCity_ContestLobby_EventScript_SetLinkGroupSmartContest + call_if_eq VAR_CONTEST_CATEGORY, CONTEST_CATEGORY_TOUGH, LilycoveCity_ContestLobby_EventScript_SetLinkGroupToughContest goto LilycoveCity_ContestLobby_EventScript_DecideLinkLeader end @@ -895,23 +861,17 @@ LilycoveCity_ContestLobby_EventScript_DecideLinkLeader:: LilycoveCity_ContestLobby_EventScript_TryLeadGroup:: call LilycoveCity_ContestLobby_EventScript_TryBecomeLinkLeader - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq LilycoveCity_ContestLobby_EventScript_LinkLeaderDecided - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq LilycoveCity_ContestLobby_EventScript_DecideLinkLeader - compare VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN - goto_if_eq LilycoveCity_ContestLobby_EventScript_TryLeadGroup + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, LilycoveCity_ContestLobby_EventScript_LinkLeaderDecided + goto_if_eq VAR_RESULT, LINKUP_FAILED, LilycoveCity_ContestLobby_EventScript_DecideLinkLeader + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, LilycoveCity_ContestLobby_EventScript_TryLeadGroup release end LilycoveCity_ContestLobby_EventScript_TryJoinGroup:: call LilycoveCity_ContestLobby_EventScript_TryJoinLinkGroup - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq LilycoveCity_ContestLobby_EventScript_LinkLeaderDecided - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq LilycoveCity_ContestLobby_EventScript_DecideLinkLeader - compare VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN - goto_if_eq LilycoveCity_ContestLobby_EventScript_TryJoinGroup + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, LilycoveCity_ContestLobby_EventScript_LinkLeaderDecided + goto_if_eq VAR_RESULT, LINKUP_FAILED, LilycoveCity_ContestLobby_EventScript_DecideLinkLeader + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, LilycoveCity_ContestLobby_EventScript_TryJoinGroup release end @@ -939,14 +899,14 @@ LilycoveCity_ContestLobby_EventScript_LeadToLinkContestHall:: applymovement LOCALID_LINK_RECEPTIONIST, LilycoveCity_ContestLobby_Movement_LinkReceptionistApproachCounter waitmovement 0 playse SE_BRIDGE_WALK - setmetatile 17, 2, METATILE_Contest_WallShadow, 1 - setmetatile 17, 3, METATILE_Contest_FloorShadow, 1 + setmetatile 17, 2, METATILE_Contest_WallShadow, TRUE + setmetatile 17, 3, METATILE_Contest_FloorShadow, TRUE special DrawWholeMapView applymovement LOCALID_LINK_RECEPTIONIST, LilycoveCity_ContestLobby_Movement_LinkReceptionistExitCounter waitmovement 0 playse SE_BRIDGE_WALK - setmetatile 17, 2, METATILE_Contest_CounterFlap_Top, 1 - setmetatile 17, 3, METATILE_Contest_CounterFlap_Bottom, 1 + setmetatile 17, 2, METATILE_Contest_CounterFlap_Top, TRUE + setmetatile 17, 3, METATILE_Contest_CounterFlap_Bottom, TRUE special DrawWholeMapView delay 20 applymovement LOCALID_LINK_RECEPTIONIST, LilycoveCity_ContestLobby_Movement_LinkReceptionistFacePlayer diff --git a/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc b/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc index a5e8b40cf6..ca7481b533 100644 --- a/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc +++ b/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc @@ -7,8 +7,7 @@ LilycoveCity_CoveLilyMotel_2F_EventScript_GameDesigner:: call_if_unset FLAG_TEMP_2, LilycoveCity_CoveLilyMotel_2F_EventScript_ShowMeCompletedDex call_if_set FLAG_TEMP_2, LilycoveCity_CoveLilyMotel_2F_EventScript_ShowDiploma specialvar VAR_RESULT, HasAllHoennMons - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_CoveLilyMotel_2F_EventScript_AllHoennMonsFanfare + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_CoveLilyMotel_2F_EventScript_AllHoennMonsFanfare release end diff --git a/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc b/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc index b6ad2e4e6f..d7d152408d 100644 --- a/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc @@ -59,9 +59,8 @@ LilycoveCity_DepartmentStoreElevator_EventScript_ChooseFloor:: LilycoveCity_DepartmentStoreElevator_EventScript_1stFloor:: setvar VAR_0x8006, DEPT_STORE_FLOORNUM_1F - setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F, 255, 2, 1 - compare VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_1F - goto_if_eq LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect + setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F, 2, 1 + goto_if_eq VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_1F, LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect call LilycoveCity_DepartmentStoreElevator_EventScript_MoveElevator setvar VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_1F goto LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect @@ -69,9 +68,8 @@ LilycoveCity_DepartmentStoreElevator_EventScript_1stFloor:: LilycoveCity_DepartmentStoreElevator_EventScript_2ndFloor:: setvar VAR_0x8006, DEPT_STORE_FLOORNUM_2F - setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F, 255, 2, 1 - compare VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_2F - goto_if_eq LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect + setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F, 2, 1 + goto_if_eq VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_2F, LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect call LilycoveCity_DepartmentStoreElevator_EventScript_MoveElevator setvar VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_2F goto LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect @@ -79,9 +77,8 @@ LilycoveCity_DepartmentStoreElevator_EventScript_2ndFloor:: LilycoveCity_DepartmentStoreElevator_EventScript_3rdFloor:: setvar VAR_0x8006, DEPT_STORE_FLOORNUM_3F - setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F, 255, 2, 1 - compare VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_3F - goto_if_eq LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect + setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F, 2, 1 + goto_if_eq VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_3F, LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect call LilycoveCity_DepartmentStoreElevator_EventScript_MoveElevator setvar VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_3F goto LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect @@ -89,9 +86,8 @@ LilycoveCity_DepartmentStoreElevator_EventScript_3rdFloor:: LilycoveCity_DepartmentStoreElevator_EventScript_4thFloor:: setvar VAR_0x8006, DEPT_STORE_FLOORNUM_4F - setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F, 255, 2, 1 - compare VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_4F - goto_if_eq LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect + setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F, 2, 1 + goto_if_eq VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_4F, LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect call LilycoveCity_DepartmentStoreElevator_EventScript_MoveElevator setvar VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_4F goto LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect @@ -99,9 +95,8 @@ LilycoveCity_DepartmentStoreElevator_EventScript_4thFloor:: LilycoveCity_DepartmentStoreElevator_EventScript_5thFloor:: setvar VAR_0x8006, DEPT_STORE_FLOORNUM_5F - setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F, 255, 2, 1 - compare VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_5F - goto_if_eq LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect + setdynamicwarp MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F, 2, 1 + goto_if_eq VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_5F, LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect call LilycoveCity_DepartmentStoreElevator_EventScript_MoveElevator setvar VAR_DEPT_STORE_FLOOR, DEPT_STORE_FLOORNUM_5F goto LilycoveCity_DepartmentStoreElevator_EventScript_ExitFloorSelect diff --git a/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc b/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc index e91ca7745c..8c67ee1496 100644 --- a/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc @@ -3,11 +3,9 @@ LilycoveCity_DepartmentStoreRooftop_MapScripts:: .byte 0 LilycoveCity_DepartmentStoreRooftop_OnTransition: - getpricereduction POKENEWS_LILYCOVE - compare VAR_RESULT, TRUE - call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_ShowSaleWoman - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_HideSaleWoman + getpokenewsactive POKENEWS_LILYCOVE + call_if_eq VAR_RESULT, TRUE, LilycoveCity_DepartmentStoreRooftop_EventScript_ShowSaleWoman + call_if_eq VAR_RESULT, FALSE, LilycoveCity_DepartmentStoreRooftop_EventScript_HideSaleWoman end LilycoveCity_DepartmentStoreRooftop_EventScript_ShowSaleWoman:: @@ -51,9 +49,8 @@ LilycoveCity_DepartmentStoreRooftop_PokemartDecor_ClearOutSale: LilycoveCity_DepartmentStoreRooftop_EventScript_Man:: lock faceplayer - getpricereduction POKENEWS_LILYCOVE - compare VAR_RESULT, TRUE - call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_ManClearOutSale + getpokenewsactive POKENEWS_LILYCOVE + call_if_eq VAR_RESULT, TRUE, LilycoveCity_DepartmentStoreRooftop_EventScript_ManClearOutSale msgbox LilycoveCity_DepartmentStoreRooftop_Text_SetDatesForClearOutSales, MSGBOX_DEFAULT release end @@ -71,7 +68,7 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_VendingMachine:: lockall message LilycoveCity_DepartmentStoreRooftop_Text_WhichDrinkWouldYouLike waitmessage - showmoneybox 0, 0, 0 + showmoneybox 0, 0 goto LilycoveCity_DepartmentStoreRooftop_EventScript_ChooseDrink end @@ -102,78 +99,66 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_Lemonade:: end LilycoveCity_DepartmentStoreRooftop_EventScript_CheckMoneyFreshWater:: - checkmoney 200, 0 + checkmoney 200 return LilycoveCity_DepartmentStoreRooftop_EventScript_CheckMoneySodaPop:: - checkmoney 300, 0 + checkmoney 300 return LilycoveCity_DepartmentStoreRooftop_EventScript_CheckMoneyLemonade:: - checkmoney 350, 0 + checkmoney 350 return LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneyFreshWater:: - removemoney 200, 0 + removemoney 200 return LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneySodaPop:: - removemoney 300, 0 + removemoney 300 return LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneyLemonade:: - removemoney 350, 0 + removemoney 350 return LilycoveCity_DepartmentStoreRooftop_EventScript_TryBuyDrink:: - compare VAR_TEMP_1, 0 - call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_CheckMoneyFreshWater - compare VAR_TEMP_1, 1 - call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_CheckMoneySodaPop - compare VAR_TEMP_1, 2 - call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_CheckMoneyLemonade - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_NotEnoughMoneyForDrink - checkitemspace VAR_TEMP_0, 1 - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_NoRoomForDrink - compare VAR_TEMP_1, 0 - call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneyFreshWater - compare VAR_TEMP_1, 1 - call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneySodaPop - compare VAR_TEMP_1, 2 - call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneyLemonade - updatemoneybox 0, 0 - bufferitemname 0, VAR_TEMP_0 + call_if_eq VAR_TEMP_1, 0, LilycoveCity_DepartmentStoreRooftop_EventScript_CheckMoneyFreshWater + call_if_eq VAR_TEMP_1, 1, LilycoveCity_DepartmentStoreRooftop_EventScript_CheckMoneySodaPop + call_if_eq VAR_TEMP_1, 2, LilycoveCity_DepartmentStoreRooftop_EventScript_CheckMoneyLemonade + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_DepartmentStoreRooftop_EventScript_NotEnoughMoneyForDrink + checkitemspace VAR_TEMP_0 + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_DepartmentStoreRooftop_EventScript_NoRoomForDrink + call_if_eq VAR_TEMP_1, 0, LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneyFreshWater + call_if_eq VAR_TEMP_1, 1, LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneySodaPop + call_if_eq VAR_TEMP_1, 2, LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneyLemonade + updatemoneybox + bufferitemname STR_VAR_1, VAR_TEMP_0 playse SE_VEND msgbox LilycoveCity_DepartmentStoreRooftop_Text_CanOfDrinkDroppedDown, MSGBOX_DEFAULT additem VAR_TEMP_0 - bufferitemname 1, VAR_TEMP_0 - bufferstdstring 2, STDSTRING_ITEMS + bufferitemname STR_VAR_2, VAR_TEMP_0 + bufferstdstring STR_VAR_3, STDSTRING_ITEMS msgbox gText_PutItemInPocket, MSGBOX_DEFAULT random 64 @ 1/64 chance of an additional drink dropping - compare VAR_RESULT, 0 - goto_if_ne LilycoveCity_DepartmentStoreRooftop_EventScript_ChooseNewDrink - checkitemspace VAR_TEMP_0, 1 - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_NoRoomForDrink + goto_if_ne VAR_RESULT, 0, LilycoveCity_DepartmentStoreRooftop_EventScript_ChooseNewDrink + checkitemspace VAR_TEMP_0 + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_DepartmentStoreRooftop_EventScript_NoRoomForDrink playse SE_VEND msgbox LilycoveCity_DepartmentStoreRooftop_Text_ExtraCanOfDrinkDroppedDown, MSGBOX_DEFAULT additem VAR_TEMP_0 - bufferitemname 1, VAR_TEMP_0 - bufferstdstring 2, STDSTRING_ITEMS + bufferitemname STR_VAR_2, VAR_TEMP_0 + bufferstdstring STR_VAR_3, STDSTRING_ITEMS msgbox gText_PutItemInPocket, MSGBOX_DEFAULT random 64 @ 1/64 * the prev 1/64 chance of a third additional drink dropping, ~ 0.02% chance - compare VAR_RESULT, 0 - goto_if_ne LilycoveCity_DepartmentStoreRooftop_EventScript_ChooseNewDrink - checkitemspace VAR_TEMP_0, 1 - compare VAR_RESULT, 0 - goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_NoRoomForDrink + goto_if_ne VAR_RESULT, 0, LilycoveCity_DepartmentStoreRooftop_EventScript_ChooseNewDrink + checkitemspace VAR_TEMP_0 + goto_if_eq VAR_RESULT, 0, LilycoveCity_DepartmentStoreRooftop_EventScript_NoRoomForDrink playse SE_VEND msgbox LilycoveCity_DepartmentStoreRooftop_Text_ExtraCanOfDrinkDroppedDown, MSGBOX_DEFAULT additem VAR_TEMP_0 - bufferitemname 1, VAR_TEMP_0 - bufferstdstring 2, STDSTRING_ITEMS + bufferitemname STR_VAR_2, VAR_TEMP_0 + bufferstdstring STR_VAR_3, STDSTRING_ITEMS msgbox gText_PutItemInPocket, MSGBOX_DEFAULT goto LilycoveCity_DepartmentStoreRooftop_EventScript_ChooseNewDrink end diff --git a/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc b/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc index fb82ba47a6..b0656cfd4a 100644 --- a/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc @@ -11,12 +11,10 @@ LilycoveCity_DepartmentStore_1F_EventScript_LotteryClerk:: lock faceplayer dotimebasedevents - compare VAR_POKELOT_PRIZE_ITEM, ITEM_NONE - goto_if_ne LilycoveCity_DepartmentStore_1F_EventScript_GivePrizeFromEarlier + goto_if_ne VAR_POKELOT_PRIZE_ITEM, ITEM_NONE, LilycoveCity_DepartmentStore_1F_EventScript_GivePrizeFromEarlier goto_if_set FLAG_DAILY_PICKED_LOTO_TICKET, LilycoveCity_DepartmentStore_1F_EventScript_ComeBackTomorrow msgbox LilycoveCity_DepartmentStore_1F_Text_LotteryCornerDrawTicket, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_DepartmentStore_1F_EventScript_PleaseVisitAgain + goto_if_eq VAR_RESULT, NO, LilycoveCity_DepartmentStore_1F_EventScript_PleaseVisitAgain setflag FLAG_DAILY_PICKED_LOTO_TICKET message LilycoveCity_DepartmentStore_1F_Text_PleasePickTicket waitmessage @@ -34,25 +32,17 @@ LilycoveCity_DepartmentStore_1F_EventScript_LotteryClerk:: delay 10 applymovement LOCALID_LOTTERY_CLERK, Common_Movement_FacePlayer waitmovement 0 - compare VAR_0x8004, 0 - goto_if_eq LilycoveCity_DepartmentStore_1F_EventScript_NoMatch + goto_if_eq VAR_0x8004, 0, LilycoveCity_DepartmentStore_1F_EventScript_NoMatch incrementgamestat GAME_STAT_WON_POKEMON_LOTTERY - compare VAR_0x8006, 0 - call_if_eq LilycoveCity_DepartmentStore_1F_EventScript_TicketMatchPartyMon - compare VAR_0x8006, 1 - call_if_eq LilycoveCity_DepartmentStore_1F_EventScript_TicketMatchPCMon - bufferitemname 0, VAR_0x8005 - compare VAR_0x8004, 1 - call_if_eq LilycoveCity_DepartmentStore_1F_EventScript_TwoDigitMatch - compare VAR_0x8004, 2 - call_if_eq LilycoveCity_DepartmentStore_1F_EventScript_ThreeDigitMatch - compare VAR_0x8004, 3 - call_if_eq LilycoveCity_DepartmentStore_1F_EventScript_FourDigitMatch - compare VAR_0x8004, 4 - call_if_eq LilycoveCity_DepartmentStore_1F_EventScript_FullMatch + call_if_eq VAR_0x8006, 0, LilycoveCity_DepartmentStore_1F_EventScript_TicketMatchPartyMon + call_if_eq VAR_0x8006, 1, LilycoveCity_DepartmentStore_1F_EventScript_TicketMatchPCMon + bufferitemname STR_VAR_1, VAR_0x8005 + call_if_eq VAR_0x8004, 1, LilycoveCity_DepartmentStore_1F_EventScript_TwoDigitMatch + call_if_eq VAR_0x8004, 2, LilycoveCity_DepartmentStore_1F_EventScript_ThreeDigitMatch + call_if_eq VAR_0x8004, 3, LilycoveCity_DepartmentStore_1F_EventScript_FourDigitMatch + call_if_eq VAR_0x8004, 4, LilycoveCity_DepartmentStore_1F_EventScript_FullMatch giveitem VAR_0x8005 - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_DepartmentStore_1F_EventScript_RecordPrizeNoRoom + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_DepartmentStore_1F_EventScript_RecordPrizeNoRoom special TryPutLotteryWinnerReportOnAir goto LilycoveCity_DepartmentStore_1F_EventScript_PleaseVisitAgain2 end @@ -115,8 +105,7 @@ LilycoveCity_DepartmentStore_1F_EventScript_NoRoomForPrize:: LilycoveCity_DepartmentStore_1F_EventScript_GivePrizeFromEarlier:: msgbox LilycoveCity_DepartmentStore_1F_Text_PrizeWeveBeenHolding, MSGBOX_DEFAULT giveitem VAR_POKELOT_PRIZE_ITEM - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_DepartmentStore_1F_EventScript_NoRoomForPrize + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_DepartmentStore_1F_EventScript_NoRoomForPrize copyvar VAR_0x8004, VAR_POKELOT_PRIZE_PLACE copyvar VAR_0x8005, VAR_POKELOT_PRIZE_ITEM special TryPutLotteryWinnerReportOnAir diff --git a/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc b/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc index d1d074c8ce..a9683d13c9 100644 --- a/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc @@ -129,10 +129,8 @@ LilycoveCity_DepartmentStore_5F_EventScript_Woman:: lockall applymovement LOCALID_WOMAN, Common_Movement_FacePlayer waitmovement 0 - compare VAR_SOOTOPOLIS_CITY_STATE, 0 - goto_if_eq LilycoveCity_DepartmentStore_5F_EventScript_WomanNormal - compare VAR_SOOTOPOLIS_CITY_STATE, 4 - goto_if_ge LilycoveCity_DepartmentStore_5F_EventScript_WomanNormal + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 0, LilycoveCity_DepartmentStore_5F_EventScript_WomanNormal + goto_if_ge VAR_SOOTOPOLIS_CITY_STATE, 4, LilycoveCity_DepartmentStore_5F_EventScript_WomanNormal goto LilycoveCity_DepartmentStore_5F_EventScript_WomanLegendaryWeather end diff --git a/data/maps/LilycoveCity_Harbor/scripts.inc b/data/maps/LilycoveCity_Harbor/scripts.inc index 216a6ff033..63010dc4c7 100644 --- a/data/maps/LilycoveCity_Harbor/scripts.inc +++ b/data/maps/LilycoveCity_Harbor/scripts.inc @@ -8,7 +8,7 @@ LilycoveCity_Harbor_MapScripts:: .byte 0 LilycoveCity_Harbor_OnTransition: - setescapewarp MAP_LILYCOVE_CITY, 255, 12, 33 + setescapewarp MAP_LILYCOVE_CITY, 12, 33 end LilycoveCity_Harbor_EventScript_FerryAttendant:: @@ -21,25 +21,18 @@ LilycoveCity_Harbor_EventScript_FerryAttendant:: call LilycoveCity_Harbor_EventScript_GetMysticTicketState call LilycoveCity_Harbor_EventScript_GetFirstTimeShowingTicket call LilycoveCity_Harbor_EventScript_GetHasTicketsState - compare VAR_TEMP_C, 2 - goto_if_eq LilycoveCity_Harbor_EventScript_OldSeaMapFirstTime - compare VAR_TEMP_B, 1 - goto_if_eq LilycoveCity_Harbor_EventScript_EonTicketFirstTime - compare VAR_TEMP_B, 2 - goto_if_eq LilycoveCity_Harbor_EventScript_AuroraTicketFirstTime - compare VAR_TEMP_B, 4 - goto_if_eq LilycoveCity_Harbor_EventScript_OldSeaMapFirstTime - compare VAR_TEMP_B, 8 - goto_if_eq LilycoveCity_Harbor_EventScript_MysticTicketFirstTime - compare VAR_TEMP_B, 0 - goto_if_ne LilycoveCity_Harbor_EventScript_MultipleEventTicketsFirstTime + goto_if_eq VAR_TEMP_C, 2, LilycoveCity_Harbor_EventScript_OldSeaMapFirstTime + goto_if_eq VAR_TEMP_B, 1, LilycoveCity_Harbor_EventScript_EonTicketFirstTime + goto_if_eq VAR_TEMP_B, 2, LilycoveCity_Harbor_EventScript_AuroraTicketFirstTime + goto_if_eq VAR_TEMP_B, 4, LilycoveCity_Harbor_EventScript_OldSeaMapFirstTime + goto_if_eq VAR_TEMP_B, 8, LilycoveCity_Harbor_EventScript_MysticTicketFirstTime + goto_if_ne VAR_TEMP_B, 0, LilycoveCity_Harbor_EventScript_MultipleEventTicketsFirstTime goto LilycoveCity_Harbor_EventScript_NoFirstTimeEventTickets end @ First goto_if_eq is unnecessary; identical scripts LilycoveCity_Harbor_EventScript_NoFirstTimeEventTickets:: - compare VAR_TEMP_A, 0 - goto_if_eq LilycoveCity_Harbor_EventScript_NoEventTickets + goto_if_eq VAR_TEMP_A, 0, LilycoveCity_Harbor_EventScript_NoEventTickets msgbox LilycoveCity_Harbor_Text_MayISeeYourTicket, MSGBOX_DEFAULT message LilycoveCity_Harbor_Text_FlashTicketWhereTo waitmessage @@ -64,49 +57,47 @@ LilycoveCity_Harbor_EventScript_FerryRegularLocationSelect:: LilycoveCity_Harbor_EventScript_GoToSouthernIsland:: call LilycoveCity_Harbor_EventScript_BoardFerry - warp MAP_SOUTHERN_ISLAND_EXTERIOR, 255, 13, 22 + warp MAP_SOUTHERN_ISLAND_EXTERIOR, 13, 22 waitstate release end LilycoveCity_Harbor_EventScript_GoToNavelRock:: call LilycoveCity_Harbor_EventScript_BoardFerry - warp MAP_NAVEL_ROCK_HARBOR, 255, 8, 4 + warp MAP_NAVEL_ROCK_HARBOR, 8, 4 waitstate release end LilycoveCity_Harbor_EventScript_GoToBirthIsland:: call LilycoveCity_Harbor_EventScript_BoardFerry - warp MAP_BIRTH_ISLAND_HARBOR, 255, 8, 4 + warp MAP_BIRTH_ISLAND_HARBOR, 8, 4 waitstate release end LilycoveCity_Harbor_EventScript_GoToFarawayIsland:: call LilycoveCity_Harbor_EventScript_BoardFerry - warp MAP_FARAWAY_ISLAND_ENTRANCE, 255, 13, 38 + warp MAP_FARAWAY_ISLAND_ENTRANCE, 13, 38 waitstate release end LilycoveCity_Harbor_EventScript_GoToSlateport:: msgbox LilycoveCity_Harbor_Text_SlateportItIs, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_Harbor_EventScript_FerryDestinationChangeMind + goto_if_eq VAR_RESULT, NO, LilycoveCity_Harbor_EventScript_FerryDestinationChangeMind setvar VAR_SS_TIDAL_STATE, SS_TIDAL_BOARD_LILYCOVE call LilycoveCity_Harbor_EventScript_BoardFerry - warp MAP_SS_TIDAL_CORRIDOR, 255, 1, 10 + warp MAP_SS_TIDAL_CORRIDOR, 1, 10 waitstate release end LilycoveCity_Harbor_EventScript_GoToBattleFrontier:: msgbox LilycoveCity_Harbor_Text_BattleFrontierItIs, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_Harbor_EventScript_FerryDestinationChangeMind + goto_if_eq VAR_RESULT, NO, LilycoveCity_Harbor_EventScript_FerryDestinationChangeMind call LilycoveCity_Harbor_EventScript_BoardFerry - warp MAP_BATTLE_FRONTIER_OUTSIDE_WEST, 255, 19, 67 + warp MAP_BATTLE_FRONTIER_OUTSIDE_WEST, 19, 67 waitstate release end @@ -114,9 +105,8 @@ LilycoveCity_Harbor_EventScript_GoToBattleFrontier:: LilycoveCity_Harbor_EventScript_GetEonTicketState:: setvar VAR_TEMP_E, 0 goto_if_unset FLAG_ENABLE_SHIP_SOUTHERN_ISLAND, Common_EventScript_NopReturn - checkitem ITEM_EON_TICKET, 1 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_NopReturn + checkitem ITEM_EON_TICKET + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_NopReturn setvar VAR_TEMP_E, 1 goto_if_set FLAG_SHOWN_EON_TICKET, Common_EventScript_NopReturn setvar VAR_TEMP_E, 2 @@ -125,9 +115,8 @@ LilycoveCity_Harbor_EventScript_GetEonTicketState:: LilycoveCity_Harbor_EventScript_GetAuroraTicketState:: setvar VAR_TEMP_D, 0 goto_if_unset FLAG_ENABLE_SHIP_BIRTH_ISLAND, Common_EventScript_NopReturn - checkitem ITEM_AURORA_TICKET, 1 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_NopReturn + checkitem ITEM_AURORA_TICKET + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_NopReturn setvar VAR_TEMP_D, 1 goto_if_set FLAG_SHOWN_AURORA_TICKET, Common_EventScript_NopReturn setvar VAR_TEMP_D, 2 @@ -136,9 +125,8 @@ LilycoveCity_Harbor_EventScript_GetAuroraTicketState:: LilycoveCity_Harbor_EventScript_GetOldSeaMapState:: setvar VAR_TEMP_C, 0 goto_if_unset FLAG_ENABLE_SHIP_FARAWAY_ISLAND, Common_EventScript_NopReturn - checkitem ITEM_OLD_SEA_MAP, 1 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_NopReturn + checkitem ITEM_OLD_SEA_MAP + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_NopReturn setvar VAR_TEMP_C, 1 goto_if_set FLAG_SHOWN_OLD_SEA_MAP, Common_EventScript_NopReturn setvar VAR_TEMP_C, 2 @@ -147,9 +135,8 @@ LilycoveCity_Harbor_EventScript_GetOldSeaMapState:: LilycoveCity_Harbor_EventScript_GetMysticTicketState:: setvar VAR_TEMP_9, 0 goto_if_unset FLAG_ENABLE_SHIP_NAVEL_ROCK, Common_EventScript_NopReturn - checkitem ITEM_MYSTIC_TICKET, 1 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_NopReturn + checkitem ITEM_MYSTIC_TICKET + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_NopReturn setvar VAR_TEMP_9, 1 goto_if_set FLAG_SHOWN_MYSTIC_TICKET, Common_EventScript_NopReturn setvar VAR_TEMP_9, 2 @@ -157,14 +144,10 @@ LilycoveCity_Harbor_EventScript_GetMysticTicketState:: LilycoveCity_Harbor_EventScript_GetFirstTimeShowingTicket:: setvar VAR_TEMP_B, 0 - compare VAR_TEMP_E, 2 - call_if_eq LilycoveCity_Harbor_EventScript_SetFirstTimeShowingEonTicket - compare VAR_TEMP_D, 2 - call_if_eq LilycoveCity_Harbor_EventScript_SetFirstTimeShowingAuroraTicket - compare VAR_TEMP_C, 2 - call_if_eq LilycoveCity_Harbor_EventScript_SetFirstTimeShowingOldSeaMap - compare VAR_TEMP_9, 2 - call_if_eq LilycoveCity_Harbor_EventScript_SetFirstTimeShowingMysticTicket + call_if_eq VAR_TEMP_E, 2, LilycoveCity_Harbor_EventScript_SetFirstTimeShowingEonTicket + call_if_eq VAR_TEMP_D, 2, LilycoveCity_Harbor_EventScript_SetFirstTimeShowingAuroraTicket + call_if_eq VAR_TEMP_C, 2, LilycoveCity_Harbor_EventScript_SetFirstTimeShowingOldSeaMap + call_if_eq VAR_TEMP_9, 2, LilycoveCity_Harbor_EventScript_SetFirstTimeShowingMysticTicket return LilycoveCity_Harbor_EventScript_SetFirstTimeShowingEonTicket:: @@ -185,14 +168,10 @@ LilycoveCity_Harbor_EventScript_SetFirstTimeShowingMysticTicket:: LilycoveCity_Harbor_EventScript_GetHasTicketsState:: setvar VAR_TEMP_A, 0 - compare VAR_TEMP_E, 1 - call_if_eq LilycoveCity_Harbor_EventScript_SetHasEonTicket - compare VAR_TEMP_D, 1 - call_if_eq LilycoveCity_Harbor_EventScript_SetHasAuroraTicket - compare VAR_TEMP_C, 1 - call_if_eq LilycoveCity_Harbor_EventScript_SetHasOldSeaMap - compare VAR_TEMP_9, 1 - call_if_eq LilycoveCity_Harbor_EventScript_SetHasMysticTicket + call_if_eq VAR_TEMP_E, 1, LilycoveCity_Harbor_EventScript_SetHasEonTicket + call_if_eq VAR_TEMP_D, 1, LilycoveCity_Harbor_EventScript_SetHasAuroraTicket + call_if_eq VAR_TEMP_C, 1, LilycoveCity_Harbor_EventScript_SetHasOldSeaMap + call_if_eq VAR_TEMP_9, 1, LilycoveCity_Harbor_EventScript_SetHasMysticTicket return LilycoveCity_Harbor_EventScript_SetHasEonTicket:: @@ -223,7 +202,7 @@ LilycoveCity_Harbor_EventScript_EonTicketFirstTime:: LilycoveCity_Harbor_EventScript_GoToSouthernIslandFirstTime:: closemessage call LilycoveCity_Harbor_EventScript_BoardFerryWithSailor - warp MAP_SOUTHERN_ISLAND_EXTERIOR, 255, 13, 22 + warp MAP_SOUTHERN_ISLAND_EXTERIOR, 13, 22 waitstate release end @@ -240,7 +219,7 @@ LilycoveCity_Harbor_EventScript_AuroraTicketFirstTime:: LilycoveCity_Harbor_EventScript_GoToBirthIslandFirstTime:: closemessage call LilycoveCity_Harbor_EventScript_BoardFerryWithSailor - warp MAP_BIRTH_ISLAND_HARBOR, 255, 8, 4 + warp MAP_BIRTH_ISLAND_HARBOR, 8, 4 waitstate release end @@ -259,29 +238,21 @@ LilycoveCity_Harbor_EventScript_OldSeaMapFirstTime:: waitmovement 0 applymovement LOCALID_FERRY_SAILOR, Common_Movement_Delay48 waitmovement 0 - compare VAR_FACING, DIR_NORTH - call_if_eq LilycoveCity_Harbor_EventScript_MoveSailorOutOfWayNorth - compare VAR_FACING, DIR_EAST - call_if_eq LilycoveCity_Harbor_EventScript_MoveSailorOutOfWayEast + call_if_eq VAR_FACING, DIR_NORTH, LilycoveCity_Harbor_EventScript_MoveSailorOutOfWayNorth + call_if_eq VAR_FACING, DIR_EAST, LilycoveCity_Harbor_EventScript_MoveSailorOutOfWayEast addobject LOCALID_BRINEY - compare VAR_FACING, DIR_NORTH - call_if_eq LilycoveCity_Harbor_EventScript_BrineyFaceSailorNorth - compare VAR_FACING, DIR_EAST - call_if_eq LilycoveCity_Harbor_EventScript_BrineyFaceSailorEast + call_if_eq VAR_FACING, DIR_NORTH, LilycoveCity_Harbor_EventScript_BrineyFaceSailorNorth + call_if_eq VAR_FACING, DIR_EAST, LilycoveCity_Harbor_EventScript_BrineyFaceSailorEast msgbox EventTicket_Text_BrineyHoldOnASecond, MSGBOX_DEFAULT - compare VAR_FACING, DIR_NORTH - call_if_eq LilycoveCity_Harbor_EventScript_BrineyFacePlayerNorth - compare VAR_FACING, DIR_EAST - call_if_eq LilycoveCity_Harbor_EventScript_BrineyFacePlayerEast + call_if_eq VAR_FACING, DIR_NORTH, LilycoveCity_Harbor_EventScript_BrineyFacePlayerNorth + call_if_eq VAR_FACING, DIR_EAST, LilycoveCity_Harbor_EventScript_BrineyFacePlayerEast msgbox EventTicket_Text_BrineyLetsSail, MSGBOX_DEFAULT closemessage - compare VAR_FACING, DIR_NORTH - call_if_eq LilycoveCity_Harbor_EventScript_BoardFerryWithBrineyAndSailorNorth - compare VAR_FACING, DIR_EAST - call_if_eq LilycoveCity_Harbor_EventScript_BoardFerryWithBrineyAndSailorEast + call_if_eq VAR_FACING, DIR_NORTH, LilycoveCity_Harbor_EventScript_BoardFerryWithBrineyAndSailorNorth + call_if_eq VAR_FACING, DIR_EAST, LilycoveCity_Harbor_EventScript_BoardFerryWithBrineyAndSailorEast setvar VAR_0x8004, LOCALID_SS_TIDAL call Common_EventScript_FerryDepart - warp MAP_FARAWAY_ISLAND_ENTRANCE, 255, 13, 38 + warp MAP_FARAWAY_ISLAND_ENTRANCE, 13, 38 waitstate release end @@ -289,7 +260,7 @@ LilycoveCity_Harbor_EventScript_OldSeaMapFirstTime:: LilycoveCity_Harbor_EventScript_GoToFarawayIslandFirstTime:: closemessage call LilycoveCity_Harbor_EventScript_BoardFerryWithSailor - warp MAP_FARAWAY_ISLAND_ENTRANCE, 255, 13, 38 + warp MAP_FARAWAY_ISLAND_ENTRANCE, 13, 38 waitstate release end @@ -306,7 +277,7 @@ LilycoveCity_Harbor_EventScript_MysticTicketFirstTime:: LilycoveCity_Harbor_EventScript_GoToNavelRockFirstTime:: closemessage call LilycoveCity_Harbor_EventScript_BoardFerryWithSailor - warp MAP_NAVEL_ROCK_HARBOR, 255, 8, 4 + warp MAP_NAVEL_ROCK_HARBOR, 8, 4 waitstate release end @@ -364,10 +335,8 @@ LilycoveCity_Harbor_EventScript_BoardFerryWithSailor:: waitmovement 0 delay 30 removeobject LOCALID_FERRY_SAILOR - compare VAR_FACING, DIR_NORTH - call_if_eq LilycoveCity_Harbor_EventScript_PlayerBoardFerryNorth - compare VAR_FACING, DIR_EAST - call_if_eq LilycoveCity_Harbor_EventScript_PlayerBoardFerryEast + call_if_eq VAR_FACING, DIR_NORTH, LilycoveCity_Harbor_EventScript_PlayerBoardFerryNorth + call_if_eq VAR_FACING, DIR_EAST, LilycoveCity_Harbor_EventScript_PlayerBoardFerryEast delay 30 hideobjectat OBJ_EVENT_ID_PLAYER, 0 setvar VAR_0x8004, LOCALID_SS_TIDAL @@ -395,11 +364,10 @@ LilycoveCity_Harbor_EventScript_NoTicket:: @ Unused LilycoveCity_Harbor_EventScript_GoToSlateportUnused:: msgbox LilycoveCity_Harbor_Text_SlateportItIs, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_Harbor_EventScript_FerryDestinationChangeMind + goto_if_eq VAR_RESULT, NO, LilycoveCity_Harbor_EventScript_FerryDestinationChangeMind setvar VAR_SS_TIDAL_STATE, SS_TIDAL_BOARD_LILYCOVE call LilycoveCity_Harbor_EventScript_BoardFerry - warp MAP_SS_TIDAL_CORRIDOR, 255, 1, 10 + warp MAP_SS_TIDAL_CORRIDOR, 1, 10 waitstate release end @@ -407,10 +375,9 @@ LilycoveCity_Harbor_EventScript_GoToSlateportUnused:: @ Unused LilycoveCity_Harbor_EventScript_GoToBattleFrontierUnused:: msgbox LilycoveCity_Harbor_Text_BattleFrontierItIs, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_Harbor_EventScript_FerryDestinationChangeMind + goto_if_eq VAR_RESULT, NO, LilycoveCity_Harbor_EventScript_FerryDestinationChangeMind call LilycoveCity_Harbor_EventScript_BoardFerry - warp MAP_BATTLE_FRONTIER_OUTSIDE_WEST, 255, 19, 67 + warp MAP_BATTLE_FRONTIER_OUTSIDE_WEST, 19, 67 waitstate release end @@ -428,10 +395,8 @@ LilycoveCity_Harbor_EventScript_BoardFerry:: waitmovement 0 delay 30 hideobjectat VAR_LAST_TALKED, MAP_LILYCOVE_CITY_HARBOR - compare VAR_FACING, DIR_NORTH - call_if_eq LilycoveCity_Harbor_EventScript_PlayerBoardFerryNorth - compare VAR_FACING, DIR_EAST - call_if_eq LilycoveCity_Harbor_EventScript_PlayerBoardFerryEast + call_if_eq VAR_FACING, DIR_NORTH, LilycoveCity_Harbor_EventScript_PlayerBoardFerryNorth + call_if_eq VAR_FACING, DIR_EAST, LilycoveCity_Harbor_EventScript_PlayerBoardFerryEast delay 30 hideobjectat OBJ_EVENT_ID_PLAYER, 0 setvar VAR_0x8004, LOCALID_SS_TIDAL diff --git a/data/maps/LilycoveCity_House2/scripts.inc b/data/maps/LilycoveCity_House2/scripts.inc index c7664c641f..965d82acfb 100644 --- a/data/maps/LilycoveCity_House2/scripts.inc +++ b/data/maps/LilycoveCity_House2/scripts.inc @@ -7,8 +7,7 @@ LilycoveCity_House2_EventScript_FatMan:: goto_if_set FLAG_RECEIVED_TM44, LilycoveCity_House2_EventScript_ReceivedRest msgbox LilycoveCity_House2_Text_NotAwakeYetHaveThis, MSGBOX_DEFAULT giveitem ITEM_TM44 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM44 msgbox LilycoveCity_House2_Text_SleepIsEssential, MSGBOX_DEFAULT release diff --git a/data/maps/LilycoveCity_House3/scripts.inc b/data/maps/LilycoveCity_House3/scripts.inc index de76c58b6b..57e6804732 100644 --- a/data/maps/LilycoveCity_House3/scripts.inc +++ b/data/maps/LilycoveCity_House3/scripts.inc @@ -11,8 +11,7 @@ LilycoveCity_House3_EventScript_PokefanF:: lock faceplayer msgbox LilycoveCity_House3_Text_LearnFromMasterOfPokeblocks, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_House3_EventScript_DeclinePokeblockLearn + goto_if_eq VAR_RESULT, NO, LilycoveCity_House3_EventScript_DeclinePokeblockLearn msgbox LilycoveCity_House3_Text_ExplainPokeblocks, MSGBOX_DEFAULT closemessage applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection diff --git a/data/maps/LilycoveCity_LilycoveMuseum_1F/scripts.inc b/data/maps/LilycoveCity_LilycoveMuseum_1F/scripts.inc index e5d855633e..2d9d446f9d 100644 --- a/data/maps/LilycoveCity_LilycoveMuseum_1F/scripts.inc +++ b/data/maps/LilycoveCity_LilycoveMuseum_1F/scripts.inc @@ -14,10 +14,8 @@ LilycoveCity_LilycoveMuseum_1F_EventScript_Curator:: message LilycoveCity_LilycoveMuseum_1F_Text_ImCuratorHaveYouViewedOurPaintings waitmessage multichoice 20, 8, MULTI_VIEWED_PAINTINGS, TRUE - compare VAR_RESULT, 0 - goto_if_eq LilycoveCity_LilycoveMuseum_1F_EventScript_SawPaintings - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_LilycoveMuseum_1F_EventScript_NotYet + goto_if_eq VAR_RESULT, 0, LilycoveCity_LilycoveMuseum_1F_EventScript_SawPaintings + goto_if_eq VAR_RESULT, 1, LilycoveCity_LilycoveMuseum_1F_EventScript_NotYet end LilycoveCity_LilycoveMuseum_1F_EventScript_NotYet:: @@ -26,10 +24,8 @@ LilycoveCity_LilycoveMuseum_1F_EventScript_NotYet:: LilycoveCity_LilycoveMuseum_1F_EventScript_SawPaintings:: msgbox LilycoveCity_LilycoveMuseum_1F_Text_HaveYouAnInterestInPaintings, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_LilycoveMuseum_1F_EventScript_NotInterested - compare VAR_RESULT, YES - goto_if_eq LilycoveCity_LilycoveMuseum_1F_EventScript_InterestedInPaintings + goto_if_eq VAR_RESULT, NO, LilycoveCity_LilycoveMuseum_1F_EventScript_NotInterested + goto_if_eq VAR_RESULT, YES, LilycoveCity_LilycoveMuseum_1F_EventScript_InterestedInPaintings end LilycoveCity_LilycoveMuseum_1F_EventScript_NotInterested:: @@ -52,7 +48,7 @@ LilycoveCity_LilycoveMuseum_1F_EventScript_FollowCuratorNorth:: lockall applymovement OBJ_EVENT_ID_PLAYER, LilycoveCity_LilycoveMuseum_1F_Movement_FollowCuratorNorth waitmovement 0 - warp MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F, 255, 11, 8 + warp MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F, 11, 8 waitstate end @@ -60,7 +56,7 @@ LilycoveCity_LilycoveMuseum_1F_EventScript_FollowCuratorWest:: lockall applymovement OBJ_EVENT_ID_PLAYER, LilycoveCity_LilycoveMuseum_1F_Movement_FollowCuratorWest waitmovement 0 - warp MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F, 255, 11, 8 + warp MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F, 11, 8 waitstate end @@ -68,7 +64,7 @@ LilycoveCity_LilycoveMuseum_1F_EventScript_FollowCuratorEast:: lockall applymovement OBJ_EVENT_ID_PLAYER, LilycoveCity_LilycoveMuseum_1F_Movement_FollowCuratorEast waitmovement 0 - warp MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F, 255, 11, 8 + warp MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F, 11, 8 waitstate end diff --git a/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc b/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc index 929bba3e17..9212ca67df 100644 --- a/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc +++ b/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc @@ -30,32 +30,32 @@ LilycoveCity_LilycoveMuseum_2F_EventScript_CheckToughPainting:: end LilycoveCity_LilycoveMuseum_2F_EventScript_SetCoolPainting:: - setmetatile 10, 6, METATILE_LilycoveMuseum_Painting2_Left, 1 - setmetatile 11, 6, METATILE_LilycoveMuseum_Painting2_Right, 1 + setmetatile 10, 6, METATILE_LilycoveMuseum_Painting2_Left, TRUE + setmetatile 11, 6, METATILE_LilycoveMuseum_Painting2_Right, TRUE goto LilycoveCity_LilycoveMuseum_2F_EventScript_CheckBeautyPainting end LilycoveCity_LilycoveMuseum_2F_EventScript_SetBeautyPainting:: - setmetatile 18, 6, METATILE_LilycoveMuseum_Painting1_Left, 1 - setmetatile 19, 6, METATILE_LilycoveMuseum_Painting1_Right, 1 + setmetatile 18, 6, METATILE_LilycoveMuseum_Painting1_Left, TRUE + setmetatile 19, 6, METATILE_LilycoveMuseum_Painting1_Right, TRUE goto LilycoveCity_LilycoveMuseum_2F_EventScript_CheckCutePainting end LilycoveCity_LilycoveMuseum_2F_EventScript_SetCutePainting:: - setmetatile 14, 10, METATILE_LilycoveMuseum_Painting3_Left, 1 - setmetatile 15, 10, METATILE_LilycoveMuseum_Painting3_Right, 1 + setmetatile 14, 10, METATILE_LilycoveMuseum_Painting3_Left, TRUE + setmetatile 15, 10, METATILE_LilycoveMuseum_Painting3_Right, TRUE goto LilycoveCity_LilycoveMuseum_2F_EventScript_CheckSmartPainting end LilycoveCity_LilycoveMuseum_2F_EventScript_SetSmartPainting:: - setmetatile 6, 10, METATILE_LilycoveMuseum_Painting0_Left, 1 - setmetatile 7, 10, METATILE_LilycoveMuseum_Painting0_Right, 1 + setmetatile 6, 10, METATILE_LilycoveMuseum_Painting0_Left, TRUE + setmetatile 7, 10, METATILE_LilycoveMuseum_Painting0_Right, TRUE goto LilycoveCity_LilycoveMuseum_2F_EventScript_CheckToughPainting end LilycoveCity_LilycoveMuseum_2F_EventScript_SetToughPainting:: - setmetatile 2, 6, METATILE_LilycoveMuseum_Painting4_Left, 1 - setmetatile 3, 6, METATILE_LilycoveMuseum_Painting4_Right, 1 + setmetatile 2, 6, METATILE_LilycoveMuseum_Painting4_Left, TRUE + setmetatile 3, 6, METATILE_LilycoveMuseum_Painting4_Right, TRUE end LilycoveCity_LilycoveMuseum_2F_OnFrame: @@ -121,8 +121,7 @@ LilycoveCity_LilycoveMuseum_2F_EventScript_GiveGlassOrnament:: applymovement LOCALID_CURATOR, Common_Movement_FacePlayer msgbox LilycoveCity_LilycoveMuseum_2F_Text_TokenOfGratitude, MSGBOX_DEFAULT givedecoration DECOR_GLASS_ORNAMENT - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_NoRoomForGlassOrnament + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_LilycoveMuseum_2F_EventScript_NoRoomForGlassOrnament setflag FLAG_RECEIVED_GLASS_ORNAMENT closemessage releaseall diff --git a/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc b/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc index ff340c9f33..db042653e1 100644 --- a/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc +++ b/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc @@ -18,20 +18,16 @@ LilycoveCity_MoveDeletersHouse_EventScript_ChooseMonAndMoveToForget:: msgbox LilycoveCity_MoveDeletersHouse_Text_WhichMonShouldForget, MSGBOX_DEFAULT special ChoosePartyMon waitstate - compare VAR_0x8004, 255 - goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_ComeAgain + goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, LilycoveCity_MoveDeletersHouse_EventScript_ComeAgain special IsSelectedMonEgg - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_EggCantForgetMoves + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_MoveDeletersHouse_EventScript_EggCantForgetMoves special GetNumMovesSelectedMonHas - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_MonOnlyKnowsOneMove + goto_if_eq VAR_RESULT, 1, LilycoveCity_MoveDeletersHouse_EventScript_MonOnlyKnowsOneMove msgbox LilycoveCity_MoveDeletersHouse_Text_WhichMoveShouldBeForgotten, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK special MoveDeleterChooseMoveToForget fadescreen FADE_FROM_BLACK - compare VAR_0x8005, MAX_MON_MOVES - goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_ChooseMonAndMoveToForget + goto_if_eq VAR_0x8005, MAX_MON_MOVES, LilycoveCity_MoveDeletersHouse_EventScript_ChooseMonAndMoveToForget special BufferMoveDeleterNicknameAndMove msgbox LilycoveCity_MoveDeletersHouse_Text_MonsMoveShouldBeForgotten, MSGBOX_YESNO switch VAR_RESULT @@ -42,8 +38,7 @@ LilycoveCity_MoveDeletersHouse_EventScript_ChooseMonAndMoveToForget:: LilycoveCity_MoveDeletersHouse_EventScript_TryForgetMove:: special IsLastMonThatKnowsSurf - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_LastMonWithSurf + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_MoveDeletersHouse_EventScript_LastMonWithSurf special MoveDeleterForgetMove playfanfare MUS_MOVE_DELETED waitfanfare diff --git a/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc b/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc index 03f2657e71..a7f853afad 100644 --- a/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc @@ -13,10 +13,8 @@ LilycoveCity_PokemonCenter_1F_OnTransition: @ SetLilycoveLadyGfx returns TRUE if its the Contest Lady LilycoveCity_PokemonCenter_1F_EventScript_SetLilycoveLadyGfx:: special SetLilycoveLadyGfx - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_HideContestLadyMon - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_ShowContestLadyMon + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonCenter_1F_EventScript_HideContestLadyMon + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonCenter_1F_EventScript_ShowContestLadyMon end LilycoveCity_PokemonCenter_1F_EventScript_HideContestLadyMon:: diff --git a/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc b/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc index 63e7084880..ba8001324a 100644 --- a/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc +++ b/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc @@ -73,10 +73,8 @@ LilycoveCity_PokemonTrainerFanClub_Movement_LittleGirlHideFromPlayer: LilycoveCity_PokemonTrainerFanClub_OnTransition: call LilycoveCity_PokemonTrainerFanClub_EventScript_HideOrShowInterviewer - compare VAR_LILYCOVE_FAN_CLUB_STATE, 1 - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_SetFanMemberPositionsForFirstFanMeeting - compare VAR_LILYCOVE_FAN_CLUB_STATE, 2 - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_UpdateFanMemberPositions + goto_if_eq VAR_LILYCOVE_FAN_CLUB_STATE, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_SetFanMemberPositionsForFirstFanMeeting + goto_if_eq VAR_LILYCOVE_FAN_CLUB_STATE, 2, LilycoveCity_PokemonTrainerFanClub_EventScript_UpdateFanMemberPositions end LilycoveCity_PokemonTrainerFanClub_EventScript_UpdateFanMemberPositions:: @@ -84,42 +82,33 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_UpdateFanMemberPositions:: call LilycoveCity_PokemonTrainerFanClub_EventScript_CheckSetUpTVShow setvar VAR_0x8004, FANCLUB_MEMBER1 specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember1ToFarTable + call_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember1ToFarTable setvar VAR_0x8004, FANCLUB_MEMBER2 specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember2ToFarTable + call_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember2ToFarTable setvar VAR_0x8004, FANCLUB_MEMBER3 specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember3ToFarTable + call_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember3ToFarTable setvar VAR_0x8004, FANCLUB_MEMBER4 specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember4ToFarTable + call_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember4ToFarTable setvar VAR_0x8004, FANCLUB_MEMBER5 specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember5ToFarTable + call_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember5ToFarTable setvar VAR_0x8004, FANCLUB_MEMBER6 specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember6ToFarTable + call_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember6ToFarTable setvar VAR_0x8004, FANCLUB_MEMBER7 specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember7ToFarTable + call_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember7ToFarTable setvar VAR_0x8004, FANCLUB_MEMBER8 specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember8ToFarTable + call_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember8ToFarTable end LilycoveCity_PokemonTrainerFanClub_EventScript_HideOrShowInterviewer:: specialvar VAR_RESULT, ShouldHideFanClubInterviewer - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_HideInterviewer + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonTrainerFanClub_EventScript_HideInterviewer clearflag FLAG_HIDE_LILYCOVE_FAN_CLUB_INTERVIEWER clearflag FLAG_FAN_CLUB_STRENGTH_SHARED return @@ -134,38 +123,29 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_CheckSetUpTVShow:: setvar VAR_0x8005, NUM_TRAINER_FAN_CLUB_MEMBERS setvar VAR_0x8004, FANCLUB_MEMBER1 specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan + call_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan setvar VAR_0x8004, FANCLUB_MEMBER2 specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan + call_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan setvar VAR_0x8004, FANCLUB_MEMBER3 specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan + call_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan setvar VAR_0x8004, FANCLUB_MEMBER4 specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan + call_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan setvar VAR_0x8004, FANCLUB_MEMBER5 specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan + call_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan setvar VAR_0x8004, FANCLUB_MEMBER6 specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan + call_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan setvar VAR_0x8004, FANCLUB_MEMBER7 specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan + call_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan setvar VAR_0x8004, FANCLUB_MEMBER8 specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, FALSE - call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan - compare VAR_0x8005, 5 - goto_if_ge LilycoveCity_PokemonTrainerFanClub_EventScript_TrySetUpTVShow + call_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan + goto_if_ge VAR_0x8005, 5, LilycoveCity_PokemonTrainerFanClub_EventScript_TrySetUpTVShow return LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan:: @@ -222,22 +202,18 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_Man:: faceplayer setvar VAR_0x8004, FANCLUB_MEMBER6 special BufferFanClubTrainerName - compare VAR_LILYCOVE_FAN_CLUB_STATE, 0 - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_ManPlayerNotChampion + goto_if_eq VAR_LILYCOVE_FAN_CLUB_STATE, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_ManPlayerNotChampion specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_ManPlayersFan + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonTrainerFanClub_EventScript_ManPlayersFan specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub - compare VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1) - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_ManOnlyNonFan + goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), LilycoveCity_PokemonTrainerFanClub_EventScript_ManOnlyNonFan msgbox LilycoveCity_PokemonTrainerFanClub_Text_TrainersPowerIsOutOfTheOrdinary, MSGBOX_DEFAULT release end LilycoveCity_PokemonTrainerFanClub_EventScript_ManPlayersFan:: specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_ManOnlyFan + goto_if_eq VAR_RESULT, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_ManOnlyFan msgbox LilycoveCity_PokemonTrainerFanClub_Text_YoureOneWeWantToWin, MSGBOX_DEFAULT release end @@ -262,22 +238,18 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_Lass:: faceplayer setvar VAR_0x8004, FANCLUB_MEMBER1 special BufferFanClubTrainerName - compare VAR_LILYCOVE_FAN_CLUB_STATE, 0 - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_LassPlayerNotChampion + goto_if_eq VAR_LILYCOVE_FAN_CLUB_STATE, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_LassPlayerNotChampion specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_LassPlayersFan + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonTrainerFanClub_EventScript_LassPlayersFan specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub - compare VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1) - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_LassOnlyNonFan + goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), LilycoveCity_PokemonTrainerFanClub_EventScript_LassOnlyNonFan msgbox LilycoveCity_PokemonTrainerFanClub_Text_ICantHelpLikingBrawly, MSGBOX_DEFAULT release end LilycoveCity_PokemonTrainerFanClub_EventScript_LassPlayersFan:: specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_LassOnlyFan + goto_if_eq VAR_RESULT, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_LassOnlyFan msgbox LilycoveCity_PokemonTrainerFanClub_Text_ImPullingForYou, MSGBOX_DEFAULT release end @@ -302,22 +274,18 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanM:: faceplayer setvar VAR_0x8004, FANCLUB_MEMBER2 special BufferFanClubTrainerName - compare VAR_LILYCOVE_FAN_CLUB_STATE, 0 - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMPlayerNotChampion + goto_if_eq VAR_LILYCOVE_FAN_CLUB_STATE, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMPlayerNotChampion specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMPlayersFan + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMPlayersFan specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub - compare VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1) - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMOnlyNonFan + goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMOnlyNonFan msgbox LilycoveCity_PokemonTrainerFanClub_Text_LongWayToGoComparedToNorman, MSGBOX_DEFAULT release end LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMPlayersFan:: specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMOnlyFan + goto_if_eq VAR_RESULT, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_PokefanMOnlyFan msgbox LilycoveCity_PokemonTrainerFanClub_Text_YouveSurpassedYourFather, MSGBOX_DEFAULT release end @@ -342,22 +310,18 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirl:: faceplayer setvar VAR_0x8004, FANCLUB_MEMBER3 special BufferFanClubTrainerName - compare VAR_LILYCOVE_FAN_CLUB_STATE, 0 - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlPlayerNotChampion + goto_if_eq VAR_LILYCOVE_FAN_CLUB_STATE, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlPlayerNotChampion specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlPlayersFan + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlPlayersFan specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub - compare VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1) - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlOnlyNonFan + goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlOnlyNonFan msgbox LilycoveCity_PokemonTrainerFanClub_Text_EveryoneThinksTrainerIsCool, MSGBOX_DEFAULT release end LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlPlayersFan:: specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlOnlyFan + goto_if_eq VAR_RESULT, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_LittleGirlOnlyFan msgbox LilycoveCity_PokemonTrainerFanClub_Text_OhWoweeItsPlayer, MSGBOX_DEFAULT release end @@ -383,19 +347,16 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoy:: setvar VAR_0x8004, FANCLUB_MEMBER4 special BufferFanClubTrainerName specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoyPlayersFan + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoyPlayersFan specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub - compare VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1) - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoyOnlyNonFan + goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoyOnlyNonFan msgbox LilycoveCity_PokemonTrainerFanClub_Text_TrainerIsWickedlyCool, MSGBOX_DEFAULT release end LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoyPlayersFan:: specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoyOnlyFan + goto_if_eq VAR_RESULT, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_NinjaBoyOnlyFan msgbox LilycoveCity_PokemonTrainerFanClub_Text_WantToBeStrongLikeYou, MSGBOX_DEFAULT release end @@ -416,19 +377,16 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_Boy:: setvar VAR_0x8004, FANCLUB_MEMBER5 special BufferFanClubTrainerName specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_BoyPlayersFan + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonTrainerFanClub_EventScript_BoyPlayersFan specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub - compare VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1) - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_BoyOnlyNonFan + goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), LilycoveCity_PokemonTrainerFanClub_EventScript_BoyOnlyNonFan msgbox LilycoveCity_PokemonTrainerFanClub_Text_ThinkTrainerIsNumberOne, MSGBOX_DEFAULT release end LilycoveCity_PokemonTrainerFanClub_EventScript_BoyPlayersFan:: specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_BoyOnlyFan + goto_if_eq VAR_RESULT, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_BoyOnlyFan msgbox LilycoveCity_PokemonTrainerFanClub_Text_YoureAmazingAfterAll, MSGBOX_DEFAULT release end @@ -449,19 +407,16 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_Woman:: setvar VAR_0x8004, FANCLUB_MEMBER7 special BufferFanClubTrainerName specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_WomanPlayersFan + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonTrainerFanClub_EventScript_WomanPlayersFan specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub - compare VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1) - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_WomanOnlyNonFan + goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), LilycoveCity_PokemonTrainerFanClub_EventScript_WomanOnlyNonFan msgbox LilycoveCity_PokemonTrainerFanClub_Text_TrainerIsStandout, MSGBOX_DEFAULT release end LilycoveCity_PokemonTrainerFanClub_EventScript_WomanPlayersFan:: specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_WomanOnlyFan + goto_if_eq VAR_RESULT, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_WomanOnlyFan msgbox LilycoveCity_PokemonTrainerFanClub_Text_YouChangedMyMind, MSGBOX_DEFAULT release end @@ -482,19 +437,16 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertF:: setvar VAR_0x8004, FANCLUB_MEMBER8 special BufferFanClubTrainerName specialvar VAR_RESULT, IsFanClubMemberFanOfPlayer - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertFPlayersFan + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertFPlayersFan specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub - compare VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1) - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertFOnlyNonFan + goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertFOnlyNonFan msgbox LilycoveCity_PokemonTrainerFanClub_Text_HaventRealizedPotential, MSGBOX_DEFAULT release end LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertFPlayersFan:: specialvar VAR_RESULT, GetNumFansOfPlayerInTrainerFanClub - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertFOnlyFan + goto_if_eq VAR_RESULT, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_ExpertFOnlyFan msgbox LilycoveCity_PokemonTrainerFanClub_Text_YouImpressive, MSGBOX_DEFAULT release end @@ -521,8 +473,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_Interviewer:: LilycoveCity_PokemonTrainerFanClub_EventScript_Interview:: setvar VAR_0x8005, TVSHOW_FAN_CLUB_SPECIAL special InterviewBefore - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_AlreadyInterviewed2 + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonTrainerFanClub_EventScript_AlreadyInterviewed2 copyvar VAR_0x800A, VAR_0x8006 setvar VAR_0x8004, FANCLUB_MEMBER1 special BufferFanClubTrainerName @@ -532,10 +483,8 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_Interview:: call Common_ShowEasyChatScreen lock faceplayer - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_SubmitOpinion - compare VAR_RESULT, 0 - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_CancelGiveOpinion + goto_if_eq VAR_RESULT, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_SubmitOpinion + goto_if_eq VAR_RESULT, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_CancelGiveOpinion end LilycoveCity_PokemonTrainerFanClub_EventScript_SubmitOpinion:: @@ -547,10 +496,8 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_CancelGiveOpinion:: setvar VAR_0x8004, FANCLUB_MEMBER1 special BufferFanClubTrainerName msgbox LilycoveCity_PokemonTrainerFanClub_Text_HaveYouForgottenTrainer, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_ForgetTrainer - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_AskForOpinion + goto_if_eq VAR_RESULT, YES, LilycoveCity_PokemonTrainerFanClub_EventScript_ForgetTrainer + goto_if_eq VAR_RESULT, NO, LilycoveCity_PokemonTrainerFanClub_EventScript_AskForOpinion end LilycoveCity_PokemonTrainerFanClub_EventScript_AskForOpinion:: @@ -562,10 +509,8 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_AskForOpinion:: call Common_ShowEasyChatScreen lock faceplayer - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_SubmitOpinion - compare VAR_RESULT, 0 - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_CancelGiveOpinion + goto_if_eq VAR_RESULT, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_SubmitOpinion + goto_if_eq VAR_RESULT, 0, LilycoveCity_PokemonTrainerFanClub_EventScript_CancelGiveOpinion end LilycoveCity_PokemonTrainerFanClub_EventScript_RateTrainer:: @@ -592,10 +537,8 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_CancelRateTrainer:: setvar VAR_0x8004, FANCLUB_MEMBER1 special BufferFanClubTrainerName msgbox LilycoveCity_PokemonTrainerFanClub_Text_HaveYouForgottenTrainer2, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_ForgetTrainer - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_RateTrainer + goto_if_eq VAR_RESULT, YES, LilycoveCity_PokemonTrainerFanClub_EventScript_ForgetTrainer + goto_if_eq VAR_RESULT, NO, LilycoveCity_PokemonTrainerFanClub_EventScript_RateTrainer end LilycoveCity_PokemonTrainerFanClub_EventScript_ForgetTrainer:: diff --git a/data/maps/LittlerootTown/scripts.inc b/data/maps/LittlerootTown/scripts.inc index 1936b5ad83..69961bf362 100644 --- a/data/maps/LittlerootTown/scripts.inc +++ b/data/maps/LittlerootTown/scripts.inc @@ -42,23 +42,15 @@ LittlerootTown_MapScripts:: LittlerootTown_OnTransition: setflag FLAG_VISITED_LITTLEROOT_TOWN call Common_EventScript_SetupRivalGfxId - compare VAR_LITTLEROOT_INTRO_STATE, 2 - call_if_eq LittlerootTown_EventScript_MoveMomToMaysDoor + call_if_eq VAR_LITTLEROOT_INTRO_STATE, 2, LittlerootTown_EventScript_MoveMomToMaysDoor call_if_unset FLAG_RESCUED_BIRCH, LittlerootTown_EventScript_SetTwinPos - compare VAR_LITTLEROOT_TOWN_STATE, 3 - call_if_eq LittlerootTown_EventScript_SetMomStandingInFrontOfDoorPos - compare VAR_LITTLEROOT_HOUSES_STATE_MAY, 4 - call_if_eq LittlerootTown_EventScript_SetExitedHouseAfterLatiSSTicketEvent - compare VAR_LITTLEROOT_HOUSES_STATE_BRENDAN, 4 - call_if_eq LittlerootTown_EventScript_SetExitedHouseAfterLatiSSTicketEvent - compare VAR_OLDALE_RIVAL_STATE, 1 - call_if_eq LittlerootTown_EventScript_MoveRivalFromOldale - compare VAR_LITTLEROOT_RIVAL_STATE, 3 - call_if_eq LittlerootTown_EventScript_SetRivalLeftForRoute103 - compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1 - call_if_eq LittlerootTown_EventScript_HideMapNamePopup - compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2 - call_if_eq LittlerootTown_EventScript_LeftLabAfterDexUpgrade + call_if_eq VAR_LITTLEROOT_TOWN_STATE, 3, LittlerootTown_EventScript_SetMomStandingInFrontOfDoorPos + call_if_eq VAR_LITTLEROOT_HOUSES_STATE_MAY, 4, LittlerootTown_EventScript_SetExitedHouseAfterLatiSSTicketEvent + call_if_eq VAR_LITTLEROOT_HOUSES_STATE_BRENDAN, 4, LittlerootTown_EventScript_SetExitedHouseAfterLatiSSTicketEvent + call_if_eq VAR_OLDALE_RIVAL_STATE, 1, LittlerootTown_EventScript_MoveRivalFromOldale + call_if_eq VAR_LITTLEROOT_RIVAL_STATE, 3, LittlerootTown_EventScript_SetRivalLeftForRoute103 + call_if_eq VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 1, LittlerootTown_EventScript_HideMapNamePopup + call_if_eq VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2, LittlerootTown_EventScript_LeftLabAfterDexUpgrade end LittlerootTown_EventScript_LeftLabAfterDexUpgrade:: @@ -88,8 +80,7 @@ LittlerootTown_EventScript_MoveMomToMaysDoor:: return LittlerootTown_EventScript_SetTwinPos:: - compare VAR_LITTLEROOT_TOWN_STATE, 0 - goto_if_eq LittlerootTown_EventScript_SetTwinGuardingRoutePos + goto_if_eq VAR_LITTLEROOT_TOWN_STATE, 0, LittlerootTown_EventScript_SetTwinGuardingRoutePos setobjectxyperm LOCALID_TWIN, 10, 1 setobjectmovementtype LOCALID_TWIN, MOVEMENT_TYPE_FACE_UP return @@ -103,10 +94,8 @@ LittlerootTown_EventScript_SetMomStandingInFrontOfDoorPos:: clearflag FLAG_HIDE_LITTLEROOT_TOWN_MOM_OUTSIDE setobjectmovementtype LOCALID_MOM, MOVEMENT_TYPE_FACE_DOWN checkplayergender - compare VAR_RESULT, MALE - call_if_eq LittlerootTown_EventScript_SetMomInFrontOfDoorMale - compare VAR_RESULT, FEMALE - call_if_eq LittlerootTown_EventScript_SetMomInFrontOfDoorFemale + call_if_eq VAR_RESULT, MALE, LittlerootTown_EventScript_SetMomInFrontOfDoorMale + call_if_eq VAR_RESULT, FEMALE, LittlerootTown_EventScript_SetMomInFrontOfDoorFemale return LittlerootTown_EventScript_SetMomInFrontOfDoorMale:: @@ -129,7 +118,7 @@ LittlerootTown_EventScript_StepOffTruckMale:: setvar VAR_0x8005, 8 call LittlerootTown_EventScript_GoInsideWithMom setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_TRUCK - warpsilent MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F, 255, 8, 8 + warpsilent MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F, 8, 8 waitstate releaseall end @@ -140,7 +129,7 @@ LittlerootTown_EventScript_StepOffTruckFemale:: setvar VAR_0x8005, 8 call LittlerootTown_EventScript_GoInsideWithMom setflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_TRUCK - warpsilent MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F, 255, 2, 8 + warpsilent MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F, 2, 8 waitstate releaseall end @@ -230,7 +219,7 @@ LittlerootTown_EventScript_BeginDexUpgradeScene:: clearflag FLAG_HIDE_LITTLEROOT_TOWN_BIRCH delay 20 clearflag FLAG_HIDE_MAP_NAME_POPUP - warp MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB, 255, 6, 5 + warp MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB, 6, 5 waitstate releaseall end @@ -243,8 +232,7 @@ LittlerootTown_EventScript_SetRivalBirchPosForDexUpgrade:: addobject LOCALID_BIRCH addobject LOCALID_RIVAL checkplayergender - compare VAR_RESULT, MALE - goto_if_eq LittlerootTown_EventScript_SetRivalBirchPosForDexUpgradeMale + goto_if_eq VAR_RESULT, MALE, LittlerootTown_EventScript_SetRivalBirchPosForDexUpgradeMale goto LittlerootTown_EventScript_SetRivalBirchPosForDexUpgradeFemale end @@ -271,8 +259,7 @@ LittlerootTown_EventScript_Twin:: faceplayer goto_if_set FLAG_ADVENTURE_STARTED, LittlerootTown_EventScript_GoodLuck goto_if_set FLAG_RESCUED_BIRCH, LittlerootTown_EventScript_YouSavedBirch - compare VAR_LITTLEROOT_TOWN_STATE, 0 - goto_if_ne LittlerootTown_EventScript_GoSaveBirch + goto_if_ne VAR_LITTLEROOT_TOWN_STATE, 0, LittlerootTown_EventScript_GoSaveBirch msgbox LittlerootTown_Text_IfYouGoInGrassPokemonWillJumpOut, MSGBOX_DEFAULT release end @@ -416,10 +403,8 @@ LittlerootTown_EventScript_BirchsLabSign:: LittlerootTown_EventScript_BrendansHouseSign:: lockall checkplayergender - compare VAR_RESULT, MALE - call_if_eq LittlerootTown_EventScript_PlayersHouseSignMale - compare VAR_RESULT, FEMALE - call_if_eq LittlerootTown_EventScript_BirchsHouseSignFemale + call_if_eq VAR_RESULT, MALE, LittlerootTown_EventScript_PlayersHouseSignMale + call_if_eq VAR_RESULT, FEMALE, LittlerootTown_EventScript_BirchsHouseSignFemale releaseall end @@ -434,10 +419,8 @@ LittlerootTown_EventScript_BirchsHouseSignFemale:: LittlerootTown_EventScript_MaysHouseSign:: lockall checkplayergender - compare VAR_RESULT, MALE - call_if_eq LittlerootTown_EventScript_BirchsHouseSignMale - compare VAR_RESULT, FEMALE - call_if_eq LittlerootTown_EventScript_PlayersHouseSignFemale + call_if_eq VAR_RESULT, MALE, LittlerootTown_EventScript_BirchsHouseSignMale + call_if_eq VAR_RESULT, FEMALE, LittlerootTown_EventScript_PlayersHouseSignFemale releaseall end @@ -489,28 +472,20 @@ LittlerootTown_EventScript_GiveRunningShoesTrigger5:: LittlerootTown_EventScript_GiveRunningShoesTrigger:: checkplayergender - compare VAR_RESULT, MALE - call_if_eq LittlerootTown_EventScript_MomNoticePlayerMale - compare VAR_RESULT, FEMALE - call_if_eq LittlerootTown_EventScript_MomNoticePlayerFemale + call_if_eq VAR_RESULT, MALE, LittlerootTown_EventScript_MomNoticePlayerMale + call_if_eq VAR_RESULT, FEMALE, LittlerootTown_EventScript_MomNoticePlayerFemale checkplayergender - compare VAR_RESULT, MALE - call_if_eq LittlerootTown_EventScript_SetHomeDoorCoordsMale - compare VAR_RESULT, FEMALE - call_if_eq LittlerootTown_EventScript_SetHomeDoorCoordsFemale + call_if_eq VAR_RESULT, MALE, LittlerootTown_EventScript_SetHomeDoorCoordsMale + call_if_eq VAR_RESULT, FEMALE, LittlerootTown_EventScript_SetHomeDoorCoordsFemale msgbox LittlerootTown_Text_WaitPlayer, MSGBOX_DEFAULT closemessage checkplayergender - compare VAR_RESULT, MALE - call_if_eq LittlerootTown_EventScript_MomApproachPlayerMale - compare VAR_RESULT, FEMALE - call_if_eq LittlerootTown_EventScript_MomApproachPlayerFemale + call_if_eq VAR_RESULT, MALE, LittlerootTown_EventScript_MomApproachPlayerMale + call_if_eq VAR_RESULT, FEMALE, LittlerootTown_EventScript_MomApproachPlayerFemale call LittlerootTown_EventScript_GiveRunningShoes checkplayergender - compare VAR_RESULT, MALE - call_if_eq LittlerootTown_EventScript_MomReturnHomeMale - compare VAR_RESULT, FEMALE - call_if_eq LittlerootTown_EventScript_MomReturnHomeFemale + call_if_eq VAR_RESULT, MALE, LittlerootTown_EventScript_MomReturnHomeMale + call_if_eq VAR_RESULT, FEMALE, LittlerootTown_EventScript_MomReturnHomeFemale goto LittlerootTown_EventScript_SetReceivedRunningShoes end @@ -535,33 +510,21 @@ LittlerootTown_EventScript_MomNoticePlayerFemale:: return LittlerootTown_EventScript_MomApproachPlayerMale:: - compare VAR_0x8008, 0 - call_if_eq LittlerootTown_EventScript_MomApproachPlayer0 - compare VAR_0x8008, 1 - call_if_eq LittlerootTown_EventScript_MomApproachPlayer1 - compare VAR_0x8008, 2 - call_if_eq LittlerootTown_EventScript_MomApproachPlayerMale2 - compare VAR_0x8008, 3 - call_if_eq LittlerootTown_EventScript_MomApproachPlayerMale3 - compare VAR_0x8008, 4 - call_if_eq LittlerootTown_EventScript_MomApproachPlayerMale4 - compare VAR_0x8008, 5 - call_if_eq LittlerootTown_EventScript_MomApproachPlayerMale5 + call_if_eq VAR_0x8008, 0, LittlerootTown_EventScript_MomApproachPlayer0 + call_if_eq VAR_0x8008, 1, LittlerootTown_EventScript_MomApproachPlayer1 + call_if_eq VAR_0x8008, 2, LittlerootTown_EventScript_MomApproachPlayerMale2 + call_if_eq VAR_0x8008, 3, LittlerootTown_EventScript_MomApproachPlayerMale3 + call_if_eq VAR_0x8008, 4, LittlerootTown_EventScript_MomApproachPlayerMale4 + call_if_eq VAR_0x8008, 5, LittlerootTown_EventScript_MomApproachPlayerMale5 return LittlerootTown_EventScript_MomApproachPlayerFemale:: - compare VAR_0x8008, 0 - call_if_eq LittlerootTown_EventScript_MomApproachPlayer0 - compare VAR_0x8008, 1 - call_if_eq LittlerootTown_EventScript_MomApproachPlayer1 - compare VAR_0x8008, 2 - call_if_eq LittlerootTown_EventScript_MomApproachPlayerFemale2 - compare VAR_0x8008, 3 - call_if_eq LittlerootTown_EventScript_MomApproachPlayerFemale3 - compare VAR_0x8008, 4 - call_if_eq LittlerootTown_EventScript_MomApproachPlayerFemale4 - compare VAR_0x8008, 5 - call_if_eq LittlerootTown_EventScript_MomApproachPlayerFemale5 + call_if_eq VAR_0x8008, 0, LittlerootTown_EventScript_MomApproachPlayer0 + call_if_eq VAR_0x8008, 1, LittlerootTown_EventScript_MomApproachPlayer1 + call_if_eq VAR_0x8008, 2, LittlerootTown_EventScript_MomApproachPlayerFemale2 + call_if_eq VAR_0x8008, 3, LittlerootTown_EventScript_MomApproachPlayerFemale3 + call_if_eq VAR_0x8008, 4, LittlerootTown_EventScript_MomApproachPlayerFemale4 + call_if_eq VAR_0x8008, 5, LittlerootTown_EventScript_MomApproachPlayerFemale5 return LittlerootTown_EventScript_MomApproachPlayer0:: @@ -635,33 +598,21 @@ LittlerootTown_EventScript_MomApproachPlayerFemale5:: return LittlerootTown_EventScript_MomReturnHomeMale:: - compare VAR_0x8008, 0 - call_if_eq LittlerootTown_EventScript_MomReturnHome0 - compare VAR_0x8008, 1 - call_if_eq LittlerootTown_EventScript_MomReturnHome1 - compare VAR_0x8008, 2 - call_if_eq LittlerootTown_EventScript_MomReturnHomeMale2 - compare VAR_0x8008, 3 - call_if_eq LittlerootTown_EventScript_MomReturnHomeMale3 - compare VAR_0x8008, 4 - call_if_eq LittlerootTown_EventScript_MomReturnHomeMale4 - compare VAR_0x8008, 5 - call_if_eq LittlerootTown_EventScript_MomReturnHomeMale5 + call_if_eq VAR_0x8008, 0, LittlerootTown_EventScript_MomReturnHome0 + call_if_eq VAR_0x8008, 1, LittlerootTown_EventScript_MomReturnHome1 + call_if_eq VAR_0x8008, 2, LittlerootTown_EventScript_MomReturnHomeMale2 + call_if_eq VAR_0x8008, 3, LittlerootTown_EventScript_MomReturnHomeMale3 + call_if_eq VAR_0x8008, 4, LittlerootTown_EventScript_MomReturnHomeMale4 + call_if_eq VAR_0x8008, 5, LittlerootTown_EventScript_MomReturnHomeMale5 return LittlerootTown_EventScript_MomReturnHomeFemale:: - compare VAR_0x8008, 0 - call_if_eq LittlerootTown_EventScript_MomReturnHome0 - compare VAR_0x8008, 1 - call_if_eq LittlerootTown_EventScript_MomReturnHome1 - compare VAR_0x8008, 2 - call_if_eq LittlerootTown_EventScript_MomReturnHomeFemale2 - compare VAR_0x8008, 3 - call_if_eq LittlerootTown_EventScript_MomReturnHomeFemale3 - compare VAR_0x8008, 4 - call_if_eq LittlerootTown_EventScript_MomReturnHomeFemale4 - compare VAR_0x8008, 5 - call_if_eq LittlerootTown_EventScript_MomReturnHomeFemale5 + call_if_eq VAR_0x8008, 0, LittlerootTown_EventScript_MomReturnHome0 + call_if_eq VAR_0x8008, 1, LittlerootTown_EventScript_MomReturnHome1 + call_if_eq VAR_0x8008, 2, LittlerootTown_EventScript_MomReturnHomeFemale2 + call_if_eq VAR_0x8008, 3, LittlerootTown_EventScript_MomReturnHomeFemale3 + call_if_eq VAR_0x8008, 4, LittlerootTown_EventScript_MomReturnHomeFemale4 + call_if_eq VAR_0x8008, 5, LittlerootTown_EventScript_MomReturnHomeFemale5 return LittlerootTown_EventScript_MomReturnHome0:: @@ -924,10 +875,8 @@ LittlerootTown_EventScript_Mom:: lock faceplayer checkplayergender - compare VAR_RESULT, MALE - call_if_eq LittlerootTown_EventScript_SetHomeDoorCoordsMale - compare VAR_RESULT, FEMALE - call_if_eq LittlerootTown_EventScript_SetHomeDoorCoordsFemale + call_if_eq VAR_RESULT, MALE, LittlerootTown_EventScript_SetHomeDoorCoordsMale + call_if_eq VAR_RESULT, FEMALE, LittlerootTown_EventScript_SetHomeDoorCoordsFemale call LittlerootTown_EventScript_GiveRunningShoes applymovement LOCALID_MOM, Common_Movement_WalkInPlaceFasterUp waitmovement 0 diff --git a/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc b/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc index 2e4ff739d1..cce8cd59b9 100644 --- a/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc +++ b/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc @@ -9,33 +9,28 @@ LittlerootTown_BrendansHouse_1F_MapScripts:: .byte 0 LittlerootTown_BrendansHouse_1F_OnLoad: - compare VAR_LITTLEROOT_INTRO_STATE, 6 - call_if_lt LittlerootTown_BrendansHouse_1F_EventScript_SetMovingBoxes + call_if_lt VAR_LITTLEROOT_INTRO_STATE, 6, LittlerootTown_BrendansHouse_1F_EventScript_SetMovingBoxes call_if_set FLAG_RECEIVED_RUNNING_SHOES, LittlerootTown_BrendansHouse_1F_EventScript_CheckShowShoesManual end LittlerootTown_BrendansHouse_1F_EventScript_SetMovingBoxes:: - setmetatile 5, 4, METATILE_BrendansMaysHouse_MovingBox_Open, 1 - setmetatile 5, 2, METATILE_BrendansMaysHouse_MovingBox_Closed, 1 + setmetatile 5, 4, METATILE_BrendansMaysHouse_MovingBox_Open, TRUE + setmetatile 5, 2, METATILE_BrendansMaysHouse_MovingBox_Closed, TRUE return LittlerootTown_BrendansHouse_1F_EventScript_CheckShowShoesManual:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_ShowRunningShoesManual + goto_if_eq VAR_RESULT, MALE, LittlerootTown_BrendansHouse_1F_EventScript_ShowRunningShoesManual return LittlerootTown_BrendansHouse_1F_EventScript_ShowRunningShoesManual:: - setmetatile 3, 7, METATILE_BrendansMaysHouse_BookOnTable, 1 + setmetatile 3, 7, METATILE_BrendansMaysHouse_BookOnTable, TRUE return LittlerootTown_BrendansHouse_1F_OnTransition: - compare VAR_LITTLEROOT_INTRO_STATE, 3 - call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_MoveMomToDoor - compare VAR_LITTLEROOT_INTRO_STATE, 5 - call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_MoveMomToStairs - compare VAR_LITTLEROOT_INTRO_STATE, 6 - call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_MoveMomToTV + call_if_eq VAR_LITTLEROOT_INTRO_STATE, 3, LittlerootTown_BrendansHouse_1F_EventScript_MoveMomToDoor + call_if_eq VAR_LITTLEROOT_INTRO_STATE, 5, LittlerootTown_BrendansHouse_1F_EventScript_MoveMomToStairs + call_if_eq VAR_LITTLEROOT_INTRO_STATE, 6, LittlerootTown_BrendansHouse_1F_EventScript_MoveMomToTV end LittlerootTown_BrendansHouse_1F_EventScript_MoveMomToStairs:: @@ -70,7 +65,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_GoUpstairsToSetClock:: applymovement OBJ_EVENT_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_PushTowardStairs applymovement LOCALID_MOM, LittlerootTown_BrendansHouse_1F_Movement_PushTowardStairs waitmovement 0 - warp MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, 255, 7, 1 + warp MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, 7, 1 waitstate releaseall end @@ -156,23 +151,16 @@ LittlerootTown_BrendansHouse_1F_EventScript_MeetRival:: waitmovement 0 applymovement LOCALID_RIVAL, Common_Movement_Delay48 waitmovement 0 - compare VAR_0x8008, 1 - call_if_ne LittlerootTown_BrendansHouse_1F_EventScript_PlayerFaceBrendan + call_if_ne VAR_0x8008, 1, LittlerootTown_BrendansHouse_1F_EventScript_PlayerFaceBrendan playbgm MUS_ENCOUNTER_BRENDAN, TRUE - compare VAR_0x8008, 0 - call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_BrendanApproachPlayer0 - compare VAR_0x8008, 1 - call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_BrendanApproachPlayer1 - compare VAR_0x8008, 2 - call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_BrendanApproachPlayer2 + call_if_eq VAR_0x8008, 0, LittlerootTown_BrendansHouse_1F_EventScript_BrendanApproachPlayer0 + call_if_eq VAR_0x8008, 1, LittlerootTown_BrendansHouse_1F_EventScript_BrendanApproachPlayer1 + call_if_eq VAR_0x8008, 2, LittlerootTown_BrendansHouse_1F_EventScript_BrendanApproachPlayer2 msgbox RivalsHouse_1F_Text_BrendanWhoAreYou, MSGBOX_DEFAULT closemessage - compare VAR_0x8008, 0 - call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_BrendanGoUpstairs0 - compare VAR_0x8008, 1 - call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_BrendanGoUpstairs1 - compare VAR_0x8008, 2 - call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_BrendanGoUpstairs2 + call_if_eq VAR_0x8008, 0, LittlerootTown_BrendansHouse_1F_EventScript_BrendanGoUpstairs0 + call_if_eq VAR_0x8008, 1, LittlerootTown_BrendansHouse_1F_EventScript_BrendanGoUpstairs1 + call_if_eq VAR_0x8008, 2, LittlerootTown_BrendansHouse_1F_EventScript_BrendanGoUpstairs2 playse SE_EXIT removeobject LOCALID_RIVAL setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_BRENDAN diff --git a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc index b4db71e290..cd4d155192 100644 --- a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc +++ b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc @@ -6,28 +6,23 @@ LittlerootTown_BrendansHouse_2F_MapScripts:: .byte 0 LittlerootTown_BrendansHouse_2F_OnTransition: - compare VAR_LITTLEROOT_RIVAL_STATE, 2 - call_if_lt LittlerootTown_BrendansHouse_2F_EventScript_CheckSetReadyToMeetBrendan - compare VAR_LITTLEROOT_RIVAL_STATE, 3 - call_if_ge LittlerootTown_BrendansHouse_2F_EventScript_CheckShouldUpdateBrendanPos - compare VAR_LITTLEROOT_INTRO_STATE, 4 - call_if_eq PlayersHouse_2F_EventScript_BlockStairsUntilClockIsSet + call_if_lt VAR_LITTLEROOT_RIVAL_STATE, 2, LittlerootTown_BrendansHouse_2F_EventScript_CheckSetReadyToMeetBrendan + call_if_ge VAR_LITTLEROOT_RIVAL_STATE, 3, LittlerootTown_BrendansHouse_2F_EventScript_CheckShouldUpdateBrendanPos + call_if_eq VAR_LITTLEROOT_INTRO_STATE, 4, PlayersHouse_2F_EventScript_BlockStairsUntilClockIsSet call SecretBase_EventScript_SetDecorationFlags setvar VAR_SECRET_BASE_INITIALIZED, 0 end LittlerootTown_BrendansHouse_2F_EventScript_CheckShouldUpdateBrendanPos:: goto_if_set FLAG_MET_RIVAL_LILYCOVE, LittlerootTown_BrendansHouse_2F_EventScript_TryUpdateBrendanPos - compare VAR_BIRCH_LAB_STATE, 2 - goto_if_ge LittlerootTown_BrendansHouse_2F_EventScript_Ret + goto_if_ge VAR_BIRCH_LAB_STATE, 2, LittlerootTown_BrendansHouse_2F_EventScript_Ret goto LittlerootTown_BrendansHouse_2F_EventScript_TryUpdateBrendanPos LittlerootTown_BrendansHouse_2F_EventScript_TryUpdateBrendanPos:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq LittlerootTown_BrendansHouse_2F_EventScript_Ret - compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2 - goto_if_ge LittlerootTown_MaysHouse_2F_EventScript_Ret @ Odd that the MaysHouse equivalent was used here instead + goto_if_eq VAR_RESULT, MALE, LittlerootTown_BrendansHouse_2F_EventScript_Ret + @ Odd that the MaysHouse equivalent was used below instead + goto_if_ge VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2, LittlerootTown_MaysHouse_2F_EventScript_Ret setobjectxyperm LOCALID_RIVAL, 0, 2 setobjectmovementtype LOCALID_RIVAL, MOVEMENT_TYPE_FACE_UP return @@ -37,8 +32,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_Ret:: LittlerootTown_BrendansHouse_2F_EventScript_CheckSetReadyToMeetBrendan:: checkplayergender - compare VAR_RESULT, FEMALE - goto_if_eq LittlerootTown_BrendansHouse_2F_EventScript_SetReadyToMeetBrendan + goto_if_eq VAR_RESULT, FEMALE, LittlerootTown_BrendansHouse_2F_EventScript_SetReadyToMeetBrendan return LittlerootTown_BrendansHouse_2F_EventScript_SetReadyToMeetBrendan:: @@ -51,14 +45,12 @@ LittlerootTown_BrendansHouse_2F_OnWarp: LittlerootTown_BrendansHouse_2F_EventScript_CheckInitDecor:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq SecretBase_EventScript_InitDecorations + goto_if_eq VAR_RESULT, MALE, SecretBase_EventScript_InitDecorations end LittlerootTown_BrendansHouse_2F_EventScript_RivalsPokeBall:: lockall - compare VAR_LITTLEROOT_RIVAL_STATE, 2 - goto_if_eq LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendan + goto_if_eq VAR_LITTLEROOT_RIVAL_STATE, 2, LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendan msgbox RivalsHouse_2F_Text_ItsRivalsPokeBall, MSGBOX_DEFAULT releaseall end @@ -75,14 +67,10 @@ LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendan:: waitmovement 0 delay 10 playbgm MUS_ENCOUNTER_BRENDAN, TRUE - compare VAR_FACING, DIR_NORTH - call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanNorth - compare VAR_FACING, DIR_SOUTH - call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanSouth - compare VAR_FACING, DIR_WEST - call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanWest - compare VAR_FACING, DIR_EAST - call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanEast + call_if_eq VAR_FACING, DIR_NORTH, LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanNorth + call_if_eq VAR_FACING, DIR_SOUTH, LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanSouth + call_if_eq VAR_FACING, DIR_WEST, LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanWest + call_if_eq VAR_FACING, DIR_EAST, LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanEast 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 @@ -250,14 +238,12 @@ LittlerootTown_BrendansHouse_2F_Movement_PlayerWatchBrendanEast: LittlerootTown_BrendansHouse_2F_EventScript_PC:: lockall checkplayergender - compare VAR_RESULT, MALE - goto_if_eq LittlerootTown_BrendansHouse_2F_EventScript_CheckPlayersPC - compare VAR_RESULT, FEMALE - goto_if_eq LittlerootTown_BrendansHouse_2F_EventScript_CheckRivalsPC + goto_if_eq VAR_RESULT, MALE, LittlerootTown_BrendansHouse_2F_EventScript_CheckPlayersPC + goto_if_eq VAR_RESULT, FEMALE, LittlerootTown_BrendansHouse_2F_EventScript_CheckRivalsPC end LittlerootTown_BrendansHouse_2F_EventScript_CheckPlayersPC:: - setvar VAR_0x8004, 1 + setvar VAR_0x8004, PC_LOCATION_BRENDANS_HOUSE special DoPCTurnOnEffect playse SE_PC_ON msgbox gText_PlayerHouseBootPC, MSGBOX_DEFAULT @@ -267,7 +253,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_CheckPlayersPC:: end LittlerootTown_BrendansHouse_2F_EventScript_TurnOffPlayerPC:: - setvar VAR_0x8004, 1 + setvar VAR_0x8004, PC_LOCATION_BRENDANS_HOUSE playse SE_PC_OFF special DoPCTurnOffEffect releaseall diff --git a/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc b/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc index 5fcec19512..b4c4775c33 100644 --- a/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc +++ b/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc @@ -9,33 +9,28 @@ LittlerootTown_MaysHouse_1F_MapScripts:: .byte 0 LittlerootTown_MaysHouse_1F_OnLoad: - compare VAR_LITTLEROOT_INTRO_STATE, 6 - call_if_lt LittlerootTown_MaysHouse_1F_EventScript_SetMovingBoxes + call_if_lt VAR_LITTLEROOT_INTRO_STATE, 6, LittlerootTown_MaysHouse_1F_EventScript_SetMovingBoxes call_if_set FLAG_RECEIVED_RUNNING_SHOES, LittlerootTown_MaysHouse_1F_EventScript_CheckShowShoesManual end LittlerootTown_MaysHouse_1F_EventScript_SetMovingBoxes:: - setmetatile 5, 4, METATILE_BrendansMaysHouse_MovingBox_Open, 1 - setmetatile 5, 2, METATILE_BrendansMaysHouse_MovingBox_Closed, 1 + setmetatile 5, 4, METATILE_BrendansMaysHouse_MovingBox_Open, TRUE + setmetatile 5, 2, METATILE_BrendansMaysHouse_MovingBox_Closed, TRUE return LittlerootTown_MaysHouse_1F_EventScript_CheckShowShoesManual:: checkplayergender - compare VAR_RESULT, FEMALE - goto_if_eq LittlerootTown_MaysHouse_1F_EventScript_ShowRunningShoesManual + goto_if_eq VAR_RESULT, FEMALE, LittlerootTown_MaysHouse_1F_EventScript_ShowRunningShoesManual return LittlerootTown_MaysHouse_1F_EventScript_ShowRunningShoesManual:: - setmetatile 6, 7, METATILE_BrendansMaysHouse_BookOnTable, 1 + setmetatile 6, 7, METATILE_BrendansMaysHouse_BookOnTable, TRUE return LittlerootTown_MaysHouse_1F_OnTransition: - compare VAR_LITTLEROOT_INTRO_STATE, 3 - call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MoveMomToDoor - compare VAR_LITTLEROOT_INTRO_STATE, 5 - call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MoveMomToStairs - compare VAR_LITTLEROOT_INTRO_STATE, 6 - call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MoveMomToTV + call_if_eq VAR_LITTLEROOT_INTRO_STATE, 3, LittlerootTown_MaysHouse_1F_EventScript_MoveMomToDoor + call_if_eq VAR_LITTLEROOT_INTRO_STATE, 5, LittlerootTown_MaysHouse_1F_EventScript_MoveMomToStairs + call_if_eq VAR_LITTLEROOT_INTRO_STATE, 6, LittlerootTown_MaysHouse_1F_EventScript_MoveMomToTV end LittlerootTown_MaysHouse_1F_EventScript_MoveMomToStairs:: @@ -69,7 +64,7 @@ LittlerootTown_MaysHouse_1F_EventScript_GoUpstairsToSetClock:: applymovement OBJ_EVENT_ID_PLAYER, LittlerootTown_MaysHouse_1F_Movement_PushTowardStairs applymovement LOCALID_MOM, LittlerootTown_MaysHouse_1F_Movement_PushTowardStairs waitmovement 0 - warp MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F, 255, 1, 1 + warp MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F, 1, 1 waitstate releaseall end @@ -123,8 +118,7 @@ RivalsHouse_1F_EventScript_RivalMom:: faceplayer goto_if_set FLAG_DEFEATED_RIVAL_ROUTE103, RivalsHouse_1F_EventScript_GoHomeEverySoOften goto_if_set FLAG_SYS_POKEMON_GET, RivalsHouse_1F_EventScript_RivalIsOnRoute103 - compare VAR_LITTLEROOT_RIVAL_STATE, 3 - goto_if_eq RivalsHouse_1F_EventScript_RivalTooBusy + goto_if_eq VAR_LITTLEROOT_RIVAL_STATE, 3, RivalsHouse_1F_EventScript_RivalTooBusy special GetRivalSonDaughterString msgbox RivalsHouse_1F_Text_LikeChildLikeFather, MSGBOX_DEFAULT release @@ -190,23 +184,16 @@ LittlerootTown_MaysHouse_1F_EventScript_MeetRival:: waitmovement 0 applymovement LOCALID_RIVAL, Common_Movement_Delay48 waitmovement 0 - compare VAR_0x8008, 1 - call_if_ne LittlerootTown_MaysHouse_1F_EventScript_PlayerFaceMay + call_if_ne VAR_0x8008, 1, LittlerootTown_MaysHouse_1F_EventScript_PlayerFaceMay playbgm MUS_ENCOUNTER_MAY, TRUE - compare VAR_0x8008, 0 - call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MayApproachPlayer0 - compare VAR_0x8008, 1 - call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MayApproachPlayer1 - compare VAR_0x8008, 2 - call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MayApproachPlayer2 + call_if_eq VAR_0x8008, 0, LittlerootTown_MaysHouse_1F_EventScript_MayApproachPlayer0 + call_if_eq VAR_0x8008, 1, LittlerootTown_MaysHouse_1F_EventScript_MayApproachPlayer1 + call_if_eq VAR_0x8008, 2, LittlerootTown_MaysHouse_1F_EventScript_MayApproachPlayer2 msgbox RivalsHouse_1F_Text_MayWhoAreYou, MSGBOX_DEFAULT closemessage - compare VAR_0x8008, 0 - call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MayGoUpstairs0 - compare VAR_0x8008, 1 - call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MayGoUpstairs1 - compare VAR_0x8008, 2 - call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MayGoUpstairs2 + call_if_eq VAR_0x8008, 0, LittlerootTown_MaysHouse_1F_EventScript_MayGoUpstairs0 + call_if_eq VAR_0x8008, 1, LittlerootTown_MaysHouse_1F_EventScript_MayGoUpstairs1 + call_if_eq VAR_0x8008, 2, LittlerootTown_MaysHouse_1F_EventScript_MayGoUpstairs2 playse SE_EXIT removeobject LOCALID_RIVAL setflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_MAY diff --git a/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc b/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc index af6877a887..ef8e83bf7e 100644 --- a/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc +++ b/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc @@ -6,28 +6,22 @@ LittlerootTown_MaysHouse_2F_MapScripts:: .byte 0 LittlerootTown_MaysHouse_2F_OnTransition: - compare VAR_LITTLEROOT_RIVAL_STATE, 2 - call_if_lt LittlerootTown_MaysHouse_2F_EventScript_CheckSetReadyToMeetMay - compare VAR_LITTLEROOT_RIVAL_STATE, 3 - call_if_ge LittlerootTown_MaysHouse_2F_EventScript_CheckShouldUpdateMayPos - compare VAR_LITTLEROOT_INTRO_STATE, 4 - call_if_eq PlayersHouse_2F_EventScript_BlockStairsUntilClockIsSet + call_if_lt VAR_LITTLEROOT_RIVAL_STATE, 2, LittlerootTown_MaysHouse_2F_EventScript_CheckSetReadyToMeetMay + call_if_ge VAR_LITTLEROOT_RIVAL_STATE, 3, LittlerootTown_MaysHouse_2F_EventScript_CheckShouldUpdateMayPos + call_if_eq VAR_LITTLEROOT_INTRO_STATE, 4, PlayersHouse_2F_EventScript_BlockStairsUntilClockIsSet call SecretBase_EventScript_SetDecorationFlags setvar VAR_SECRET_BASE_INITIALIZED, 0 end LittlerootTown_MaysHouse_2F_EventScript_CheckShouldUpdateMayPos:: goto_if_set FLAG_MET_RIVAL_LILYCOVE, LittlerootTown_MaysHouse_2F_EventScript_TryUpdateMayPos - compare VAR_BIRCH_LAB_STATE, 2 - goto_if_ge LittlerootTown_MaysHouse_2F_EventScript_Ret + goto_if_ge VAR_BIRCH_LAB_STATE, 2, LittlerootTown_MaysHouse_2F_EventScript_Ret goto LittlerootTown_MaysHouse_2F_EventScript_TryUpdateMayPos LittlerootTown_MaysHouse_2F_EventScript_TryUpdateMayPos:: checkplayergender - compare VAR_RESULT, FEMALE - goto_if_eq LittlerootTown_MaysHouse_2F_EventScript_Ret - compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2 - goto_if_ge LittlerootTown_MaysHouse_2F_EventScript_Ret + goto_if_eq VAR_RESULT, FEMALE, LittlerootTown_MaysHouse_2F_EventScript_Ret + goto_if_ge VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2, LittlerootTown_MaysHouse_2F_EventScript_Ret setobjectxyperm LOCALID_RIVAL, 8, 2 setobjectmovementtype LOCALID_RIVAL, MOVEMENT_TYPE_FACE_UP return @@ -37,8 +31,7 @@ LittlerootTown_MaysHouse_2F_EventScript_Ret:: LittlerootTown_MaysHouse_2F_EventScript_CheckSetReadyToMeetMay:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq LittlerootTown_MaysHouse_2F_EventScript_SetReadyToMeetMay + goto_if_eq VAR_RESULT, MALE, LittlerootTown_MaysHouse_2F_EventScript_SetReadyToMeetMay return LittlerootTown_MaysHouse_2F_EventScript_SetReadyToMeetMay:: @@ -51,14 +44,12 @@ LittlerootTown_MaysHouse_2F_OnWarp: LittlerootTown_MaysHouse_2F_EventScript_CheckInitDecor:: checkplayergender - compare VAR_RESULT, FEMALE - goto_if_eq SecretBase_EventScript_InitDecorations + goto_if_eq VAR_RESULT, FEMALE, SecretBase_EventScript_InitDecorations end LittlerootTown_MaysHouse_2F_EventScript_RivalsPokeBall:: lockall - compare VAR_LITTLEROOT_RIVAL_STATE, 2 - goto_if_eq LittlerootTown_MaysHouse_2F_EventScript_MeetMay + goto_if_eq VAR_LITTLEROOT_RIVAL_STATE, 2, LittlerootTown_MaysHouse_2F_EventScript_MeetMay msgbox RivalsHouse_2F_Text_ItsRivalsPokeBall, MSGBOX_DEFAULT releaseall end @@ -75,14 +66,10 @@ LittlerootTown_MaysHouse_2F_EventScript_MeetMay:: waitmovement 0 delay 10 playbgm MUS_ENCOUNTER_MAY, TRUE - compare VAR_FACING, DIR_NORTH - call_if_eq LittlerootTown_MaysHouse_2F_EventScript_MeetMayNorth - compare VAR_FACING, DIR_SOUTH - call_if_eq LittlerootTown_MaysHouse_2F_EventScript_MeetMaySouth - compare VAR_FACING, DIR_WEST - call_if_eq LittlerootTown_MaysHouse_2F_EventScript_MeetMayWest - compare VAR_FACING, DIR_EAST - call_if_eq LittlerootTown_MaysHouse_2F_EventScript_MeetMayEast + call_if_eq VAR_FACING, DIR_NORTH, LittlerootTown_MaysHouse_2F_EventScript_MeetMayNorth + call_if_eq VAR_FACING, DIR_SOUTH, LittlerootTown_MaysHouse_2F_EventScript_MeetMaySouth + call_if_eq VAR_FACING, DIR_WEST, LittlerootTown_MaysHouse_2F_EventScript_MeetMayWest + call_if_eq VAR_FACING, DIR_EAST, LittlerootTown_MaysHouse_2F_EventScript_MeetMayEast 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 @@ -252,10 +239,8 @@ RivalsHouse_2F_EventScript_Rival:: lockall goto_if_set FLAG_MET_RIVAL_LILYCOVE, RivalsHouse_2F_EventScript_RivalPostLilycove checkplayergender - compare VAR_RESULT, MALE - goto_if_eq RivalsHouse_2F_EventScript_May - compare VAR_RESULT, FEMALE - goto_if_eq RivalsHouse_2F_EventScript_Brendan + goto_if_eq VAR_RESULT, MALE, RivalsHouse_2F_EventScript_May + goto_if_eq VAR_RESULT, FEMALE, RivalsHouse_2F_EventScript_Brendan end RivalsHouse_2F_EventScript_May:: @@ -272,10 +257,8 @@ RivalsHouse_2F_EventScript_RivalPostLilycove:: applymovement VAR_LAST_TALKED, Common_Movement_FacePlayer waitmovement 0 checkplayergender - compare VAR_RESULT, MALE - call_if_eq RivalsHouse_2F_EventScript_MayPostLilycove - compare VAR_RESULT, FEMALE - call_if_eq RivalsHouse_2F_EventScript_BrendanPostLilycove + call_if_eq VAR_RESULT, MALE, RivalsHouse_2F_EventScript_MayPostLilycove + call_if_eq VAR_RESULT, FEMALE, RivalsHouse_2F_EventScript_BrendanPostLilycove setflag FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE releaseall end @@ -301,10 +284,8 @@ RivalsHouse_2F_EventScript_BrendanWhereShouldIGoNext:: LittlerootTown_MaysHouse_2F_EventScript_PC:: lockall checkplayergender - compare VAR_RESULT, MALE - goto_if_eq LittlerootTown_MaysHouse_2F_EventScript_CheckRivalsPC - compare VAR_RESULT, FEMALE - goto_if_eq LittlerootTown_MaysHouse_2F_EventScript_CheckPlayersPC + goto_if_eq VAR_RESULT, MALE, LittlerootTown_MaysHouse_2F_EventScript_CheckRivalsPC + goto_if_eq VAR_RESULT, FEMALE, LittlerootTown_MaysHouse_2F_EventScript_CheckPlayersPC end LittlerootTown_MaysHouse_2F_EventScript_CheckRivalsPC:: @@ -313,7 +294,7 @@ LittlerootTown_MaysHouse_2F_EventScript_CheckRivalsPC:: end LittlerootTown_MaysHouse_2F_EventScript_CheckPlayersPC:: - setvar VAR_0x8004, 2 + setvar VAR_0x8004, PC_LOCATION_MAYS_HOUSE special DoPCTurnOnEffect playse SE_PC_ON msgbox gText_PlayerHouseBootPC, MSGBOX_DEFAULT @@ -323,7 +304,7 @@ LittlerootTown_MaysHouse_2F_EventScript_CheckPlayersPC:: end LittlerootTown_MaysHouse_2F_EventScript_TurnOffPlayerPC:: - setvar VAR_0x8004, 2 + setvar VAR_0x8004, PC_LOCATION_MAYS_HOUSE playse SE_PC_OFF special DoPCTurnOffEffect releaseall diff --git a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc index 0a828c426b..acf80f0e40 100644 --- a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc +++ b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc @@ -29,18 +29,14 @@ LittlerootTown_ProfessorBirchsLab_MapScripts:: LittlerootTown_ProfessorBirchsLab_OnTransition: call Common_EventScript_SetupRivalGfxId call ProfBirch_EventScript_UpdateLocation - compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 - goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_SetAfterJohtoStarterLayout - compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 4 - goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_SetJohtoStarterLayout - compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 3 - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_CheckReadyForJohtoStarter + goto_if_ge VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6, LittlerootTown_ProfessorBirchsLab_EventScript_SetAfterJohtoStarterLayout + goto_if_ge VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 4, LittlerootTown_ProfessorBirchsLab_EventScript_SetJohtoStarterLayout + goto_if_eq VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 3, LittlerootTown_ProfessorBirchsLab_EventScript_CheckReadyForJohtoStarter end LittlerootTown_ProfessorBirchsLab_EventScript_CheckReadyForJohtoStarter:: specialvar VAR_RESULT, HasAllHoennMons - compare VAR_RESULT, TRUE - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_SetReadyForJohtoStarter + goto_if_eq VAR_RESULT, TRUE, LittlerootTown_ProfessorBirchsLab_EventScript_SetReadyForJohtoStarter setobjectmovementtype LOCALID_RIVAL, MOVEMENT_TYPE_WANDER_UP_AND_DOWN setobjectxyperm LOCALID_RIVAL, 5, 10 end @@ -117,16 +113,14 @@ LittlerootTown_ProfessorBirchsLab_OnFrame: @ This is just where the game tells you its yours and lets you nickname it LittlerootTown_ProfessorBirchsLab_EventScript_GiveStarterEvent:: lockall - bufferleadmonspeciesname 0 + bufferleadmonspeciesname STR_VAR_1 message LittlerootTown_ProfessorBirchsLab_Text_LikeYouToHavePokemon waitmessage playfanfare MUS_OBTAIN_ITEM waitfanfare msgbox LittlerootTown_ProfessorBirchsLab_Text_WhyNotGiveNicknameToMon, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_NicknameStarter - compare VAR_RESULT, NO - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_GoSeeRival + goto_if_eq VAR_RESULT, YES, LittlerootTown_ProfessorBirchsLab_EventScript_NicknameStarter + goto_if_eq VAR_RESULT, NO, LittlerootTown_ProfessorBirchsLab_EventScript_GoSeeRival end LittlerootTown_ProfessorBirchsLab_EventScript_NicknameStarter:: @@ -137,10 +131,8 @@ LittlerootTown_ProfessorBirchsLab_EventScript_NicknameStarter:: LittlerootTown_ProfessorBirchsLab_EventScript_GoSeeRival:: msgbox LittlerootTown_ProfessorBirchsLab_Text_MightBeGoodIdeaToGoSeeRival, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_AgreeToSeeRival - compare VAR_RESULT, NO - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_DeclineSeeingRival + goto_if_eq VAR_RESULT, YES, LittlerootTown_ProfessorBirchsLab_EventScript_AgreeToSeeRival + goto_if_eq VAR_RESULT, NO, LittlerootTown_ProfessorBirchsLab_EventScript_DeclineSeeingRival end LittlerootTown_ProfessorBirchsLab_EventScript_AgreeToSeeRival:: @@ -152,10 +144,8 @@ LittlerootTown_ProfessorBirchsLab_EventScript_AgreeToSeeRival:: LittlerootTown_ProfessorBirchsLab_EventScript_DeclineSeeingRival:: msgbox LittlerootTown_ProfessorBirchsLab_Text_DontBeThatWay, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_AgreeToSeeRival - compare VAR_RESULT, NO - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_DeclineSeeingRival + goto_if_eq VAR_RESULT, YES, LittlerootTown_ProfessorBirchsLab_EventScript_AgreeToSeeRival + goto_if_eq VAR_RESULT, NO, LittlerootTown_ProfessorBirchsLab_EventScript_DeclineSeeingRival end LittlerootTown_ProfessorBirchsLab_EventScript_GivePokedexEvent:: @@ -195,10 +185,8 @@ LittlerootTown_ProfessorBirchsLab_EventScript_UpgradeToNationalDex:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 checkplayergender - compare VAR_RESULT, MALE - call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_MayUpgradeComment - compare VAR_RESULT, FEMALE - call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_BrendanUpgradeComment + call_if_eq VAR_RESULT, MALE, LittlerootTown_ProfessorBirchsLab_EventScript_MayUpgradeComment + call_if_eq VAR_RESULT, FEMALE, LittlerootTown_ProfessorBirchsLab_EventScript_BrendanUpgradeComment playse SE_PC_ON waitse delay 20 @@ -288,8 +276,7 @@ LittlerootTown_ProfessorBirchsLab_Movement_PlayerEnterLabForJohtoStarter: LittlerootTown_ProfessorBirchsLab_EventScript_Aide:: lock faceplayer - compare VAR_BIRCH_LAB_STATE, 3 - goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_AideReceivedStarter + goto_if_ge VAR_BIRCH_LAB_STATE, 3, LittlerootTown_ProfessorBirchsLab_EventScript_AideReceivedStarter goto_if_set FLAG_BIRCH_AIDE_MET, LittlerootTown_ProfessorBirchsLab_EventScript_AideAlreadyMet msgbox LittlerootTown_ProfessorBirchsLab_Text_BirchAwayOnFieldwork, MSGBOX_DEFAULT setflag FLAG_BIRCH_AIDE_MET @@ -308,40 +295,34 @@ LittlerootTown_ProfessorBirchsLab_EventScript_AideReceivedStarter:: LittlerootTown_ProfessorBirchsLab_EventScript_Cyndaquil:: release - compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 - goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_AlreadyChoseJohtoStarter + goto_if_ge VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6, LittlerootTown_ProfessorBirchsLab_EventScript_AlreadyChoseJohtoStarter applymovement LOCALID_BIRCH, Common_Movement_WalkInPlaceFasterRight waitmovement 0 showmonpic SPECIES_CYNDAQUIL, 10, 3 msgbox LittlerootTown_ProfessorBirchsLab_Text_YoullTakeCyndaquil, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_TakeYourTime + goto_if_eq VAR_RESULT, NO, LittlerootTown_ProfessorBirchsLab_EventScript_TakeYourTime goto LittlerootTown_ProfessorBirchsLab_EventScript_GiveCyndaquil end LittlerootTown_ProfessorBirchsLab_EventScript_Totodile:: release - compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 - goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_AlreadyChoseJohtoStarter + goto_if_ge VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6, LittlerootTown_ProfessorBirchsLab_EventScript_AlreadyChoseJohtoStarter applymovement LOCALID_BIRCH, Common_Movement_WalkInPlaceFasterRight waitmovement 0 showmonpic SPECIES_TOTODILE, 10, 3 msgbox LittlerootTown_ProfessorBirchsLab_Text_YoullTakeTotodile, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_TakeYourTime + goto_if_eq VAR_RESULT, NO, LittlerootTown_ProfessorBirchsLab_EventScript_TakeYourTime goto LittlerootTown_ProfessorBirchsLab_EventScript_GiveTotodile end LittlerootTown_ProfessorBirchsLab_EventScript_Chikorita:: release - compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 - goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_AlreadyChoseJohtoStarter + goto_if_ge VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6, LittlerootTown_ProfessorBirchsLab_EventScript_AlreadyChoseJohtoStarter applymovement LOCALID_BIRCH, Common_Movement_WalkInPlaceFasterRight waitmovement 0 showmonpic SPECIES_CHIKORITA, 10, 3 msgbox LittlerootTown_ProfessorBirchsLab_Text_YoullTakeChikorita, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_TakeYourTime + goto_if_eq VAR_RESULT, NO, LittlerootTown_ProfessorBirchsLab_EventScript_TakeYourTime goto LittlerootTown_ProfessorBirchsLab_EventScript_GiveChikorita end @@ -357,13 +338,11 @@ LittlerootTown_ProfessorBirchsLab_EventScript_TakeYourTime:: end LittlerootTown_ProfessorBirchsLab_EventScript_GiveCyndaquil:: - bufferspeciesname 0, SPECIES_CYNDAQUIL + bufferspeciesname STR_VAR_1, SPECIES_CYNDAQUIL setvar VAR_TEMP_1, SPECIES_CYNDAQUIL - givemon SPECIES_CYNDAQUIL, 5, ITEM_NONE - compare VAR_RESULT, 0 - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_SendCyndaquilToParty - compare VAR_RESULT, 1 - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_SendCyndaquilToPC + givemon SPECIES_CYNDAQUIL, 5 + goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, LittlerootTown_ProfessorBirchsLab_EventScript_SendCyndaquilToParty + goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, LittlerootTown_ProfessorBirchsLab_EventScript_SendCyndaquilToPC hidemonpic goto Common_EventScript_NoMoreRoomForPokemon end @@ -372,8 +351,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_SendCyndaquilToParty:: call LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedJohtoStarter removeobject LOCALID_BALL_CYNDAQUIL msgbox gText_NicknameThisPokemon, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedCyndaquil + goto_if_eq VAR_RESULT, NO, LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedCyndaquil call Common_EventScript_GetGiftMonPartySlot call Common_EventScript_NameReceivedPartyMon goto LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedCyndaquil @@ -383,8 +361,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_SendCyndaquilToPC:: call LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedJohtoStarter removeobject LOCALID_BALL_CYNDAQUIL msgbox gText_NicknameThisPokemon, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_CyndaquilTransferredToPC + goto_if_eq VAR_RESULT, NO, LittlerootTown_ProfessorBirchsLab_EventScript_CyndaquilTransferredToPC call Common_EventScript_NameReceivedBoxMon goto LittlerootTown_ProfessorBirchsLab_EventScript_CyndaquilTransferredToPC end @@ -402,13 +379,11 @@ LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedCyndaquil:: end LittlerootTown_ProfessorBirchsLab_EventScript_GiveTotodile:: - bufferspeciesname 0, SPECIES_TOTODILE + bufferspeciesname STR_VAR_1, SPECIES_TOTODILE setvar VAR_TEMP_1, SPECIES_TOTODILE - givemon SPECIES_TOTODILE, 5, ITEM_NONE - compare VAR_RESULT, 0 - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_SendTotodileToParty - compare VAR_RESULT, 1 - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_SendTotodileToPC + givemon SPECIES_TOTODILE, 5 + goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, LittlerootTown_ProfessorBirchsLab_EventScript_SendTotodileToParty + goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, LittlerootTown_ProfessorBirchsLab_EventScript_SendTotodileToPC hidemonpic goto Common_EventScript_NoMoreRoomForPokemon end @@ -417,8 +392,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_SendTotodileToParty:: call LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedJohtoStarter removeobject LOCALID_BALL_TOTODILE msgbox gText_NicknameThisPokemon, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedTotodile + goto_if_eq VAR_RESULT, NO, LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedTotodile call Common_EventScript_GetGiftMonPartySlot call Common_EventScript_NameReceivedPartyMon goto LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedTotodile @@ -428,8 +402,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_SendTotodileToPC:: call LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedJohtoStarter removeobject LOCALID_BALL_TOTODILE msgbox gText_NicknameThisPokemon, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_TotodileTransferredToPC + goto_if_eq VAR_RESULT, NO, LittlerootTown_ProfessorBirchsLab_EventScript_TotodileTransferredToPC call Common_EventScript_NameReceivedBoxMon goto LittlerootTown_ProfessorBirchsLab_EventScript_TotodileTransferredToPC end @@ -447,13 +420,11 @@ LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedTotodile:: end LittlerootTown_ProfessorBirchsLab_EventScript_GiveChikorita:: - bufferspeciesname 0, SPECIES_CHIKORITA + bufferspeciesname STR_VAR_1, SPECIES_CHIKORITA setvar VAR_TEMP_1, SPECIES_CHIKORITA - givemon SPECIES_CHIKORITA, 5, ITEM_NONE - compare VAR_RESULT, 0 - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_SendChikoritaToParty - compare VAR_RESULT, 1 - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_SendChikoritaToPC + givemon SPECIES_CHIKORITA, 5 + goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, LittlerootTown_ProfessorBirchsLab_EventScript_SendChikoritaToParty + goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, LittlerootTown_ProfessorBirchsLab_EventScript_SendChikoritaToPC hidemonpic goto Common_EventScript_NoMoreRoomForPokemon end @@ -462,8 +433,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_SendChikoritaToParty:: call LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedJohtoStarter removeobject LOCALID_BALL_CHIKORITA msgbox gText_NicknameThisPokemon, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedChikorita + goto_if_eq VAR_RESULT, NO, LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedChikorita call Common_EventScript_GetGiftMonPartySlot call Common_EventScript_NameReceivedPartyMon goto LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedChikorita @@ -473,8 +443,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_SendChikoritaToPC:: call LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedJohtoStarter removeobject LOCALID_BALL_CHIKORITA msgbox gText_NicknameThisPokemon, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_ChikoritaTransferredToPC + goto_if_eq VAR_RESULT, NO, LittlerootTown_ProfessorBirchsLab_EventScript_ChikoritaTransferredToPC call Common_EventScript_NameReceivedBoxMon goto LittlerootTown_ProfessorBirchsLab_EventScript_ChikoritaTransferredToPC end @@ -501,10 +470,8 @@ LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedJohtoStarter:: LittlerootTown_ProfessorBirchsLab_EventScript_Birch:: lock faceplayer - compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 5 - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_CanHaveAnyOneOfRarePokemon - compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2 - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_GrassyPatchWaiting + goto_if_eq VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 5, LittlerootTown_ProfessorBirchsLab_EventScript_CanHaveAnyOneOfRarePokemon + goto_if_eq VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2, LittlerootTown_ProfessorBirchsLab_EventScript_GrassyPatchWaiting goto_if_unset FLAG_HAS_MATCH_CALL, LittlerootTown_ProfessorBirchsLab_EventScript_TryRatePokedexOrRegister goto_if_unset FLAG_ENABLE_PROF_BIRCH_MATCH_CALL, EventScript_RegisterProfBirch goto LittlerootTown_ProfessorBirchsLab_EventScript_TryRatePokedexOrRegister @@ -522,12 +489,9 @@ LittlerootTown_ProfessorBirchsLab_EventScript_GrassyPatchWaiting:: LittlerootTown_ProfessorBirchsLab_EventScript_TryRatePokedexOrRegister:: goto_if_unset FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_UNKNOWN_0x380, ProfBirch_EventScript_RatePokedexOrRegister - compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 3 - goto_if_eq ProfBirch_EventScript_RatePokedexOrRegister - compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 - goto_if_ge ProfBirch_EventScript_RatePokedexOrRegister - compare VAR_BIRCH_LAB_STATE, 5 - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_PokemonAwait + goto_if_eq VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 3, ProfBirch_EventScript_RatePokedexOrRegister + goto_if_ge VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6, ProfBirch_EventScript_RatePokedexOrRegister + goto_if_eq VAR_BIRCH_LAB_STATE, 5, LittlerootTown_ProfessorBirchsLab_EventScript_PokemonAwait msgbox LittlerootTown_ProfessorBirchsLab_Text_BirchRivalGoneHome, MSGBOX_DEFAULT release end @@ -556,10 +520,8 @@ LittlerootTown_ProfessorBirchsLab_EventScript_GivePokedex:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 checkplayergender - compare VAR_RESULT, MALE - call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_MayGivePokeBalls - compare VAR_RESULT, FEMALE - call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_BrendanGivePokeBalls + call_if_eq VAR_RESULT, MALE, LittlerootTown_ProfessorBirchsLab_EventScript_MayGivePokeBalls + call_if_eq VAR_RESULT, FEMALE, LittlerootTown_ProfessorBirchsLab_EventScript_BrendanGivePokeBalls setvar VAR_BIRCH_LAB_STATE, 5 setflag FLAG_ADVENTURE_STARTED setvar VAR_OLDALE_TOWN_STATE, 1 @@ -571,8 +533,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_GivePokedex:: LittlerootTown_ProfessorBirchsLab_EventScript_MayGivePokeBalls:: msgbox LittlerootTown_ProfessorBirchsLab_Text_MayGotPokedexTooTakeThese, MSGBOX_DEFAULT giveitem ITEM_POKE_BALL, 5 - compare VAR_RESULT, FALSE - call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_MayNoRoomForPokeBalls + call_if_eq VAR_RESULT, FALSE, LittlerootTown_ProfessorBirchsLab_EventScript_MayNoRoomForPokeBalls msgbox LittlerootTown_ProfessorBirchsLab_Text_CatchCutePokemonWithPokeBalls, MSGBOX_DEFAULT setvar VAR_RESULT, 0 return @@ -580,8 +541,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_MayGivePokeBalls:: LittlerootTown_ProfessorBirchsLab_EventScript_BrendanGivePokeBalls:: msgbox LittlerootTown_ProfessorBirchsLab_Text_BrendanGotPokedexTooTakeThese, MSGBOX_DEFAULT giveitem ITEM_POKE_BALL, 5 - compare VAR_RESULT, FALSE - call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_BrendanNoRoomForPokeBalls + call_if_eq VAR_RESULT, FALSE, LittlerootTown_ProfessorBirchsLab_EventScript_BrendanNoRoomForPokeBalls msgbox LittlerootTown_ProfessorBirchsLab_Text_CatchCoolPokemonWithPokeBalls, MSGBOX_DEFAULT setvar VAR_RESULT, 1 return @@ -621,17 +581,12 @@ LittlerootTown_ProfessorBirchsLab_EventScript_Machine:: LittlerootTown_ProfessorBirchsLab_EventScript_Rival:: lock faceplayer - compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 5 - goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_RivalFuturePlans - compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6 - goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_RivalHaveYouGoneToBattleFrontier - compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2 - goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_RivalTakeBreakFromFieldwork + goto_if_eq VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 5, LittlerootTown_ProfessorBirchsLab_EventScript_RivalFuturePlans + goto_if_ge VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6, LittlerootTown_ProfessorBirchsLab_EventScript_RivalHaveYouGoneToBattleFrontier + goto_if_ge VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 2, LittlerootTown_ProfessorBirchsLab_EventScript_RivalTakeBreakFromFieldwork checkplayergender - compare VAR_RESULT, MALE - call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_MayWhereShouldIGoNext - compare VAR_RESULT, FEMALE - call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_BrendanWhereShouldIGoNext + call_if_eq VAR_RESULT, MALE, LittlerootTown_ProfessorBirchsLab_EventScript_MayWhereShouldIGoNext + call_if_eq VAR_RESULT, FEMALE, LittlerootTown_ProfessorBirchsLab_EventScript_BrendanWhereShouldIGoNext release end @@ -645,10 +600,8 @@ LittlerootTown_ProfessorBirchsLab_EventScript_BrendanWhereShouldIGoNext:: LittlerootTown_ProfessorBirchsLab_EventScript_RivalFuturePlans:: checkplayergender - compare VAR_RESULT, MALE - call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_MayWhatNextImStayingHere - compare VAR_RESULT, FEMALE - call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_BrendanPreferCollectingSlowly + call_if_eq VAR_RESULT, MALE, LittlerootTown_ProfessorBirchsLab_EventScript_MayWhatNextImStayingHere + call_if_eq VAR_RESULT, FEMALE, LittlerootTown_ProfessorBirchsLab_EventScript_BrendanPreferCollectingSlowly release end @@ -662,10 +615,8 @@ LittlerootTown_ProfessorBirchsLab_EventScript_BrendanPreferCollectingSlowly: LittlerootTown_ProfessorBirchsLab_EventScript_RivalHaveYouGoneToBattleFrontier:: checkplayergender - compare VAR_RESULT, MALE - call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_MayHaveYouGoneToBattleFrontier - compare VAR_RESULT, FEMALE - call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_BrendanHaveYouGoneToBattleFrontier + call_if_eq VAR_RESULT, MALE, LittlerootTown_ProfessorBirchsLab_EventScript_MayHaveYouGoneToBattleFrontier + call_if_eq VAR_RESULT, FEMALE, LittlerootTown_ProfessorBirchsLab_EventScript_BrendanHaveYouGoneToBattleFrontier release end @@ -679,10 +630,8 @@ LittlerootTown_ProfessorBirchsLab_EventScript_BrendanHaveYouGoneToBattleFrontier LittlerootTown_ProfessorBirchsLab_EventScript_RivalTakeBreakFromFieldwork:: checkplayergender - compare VAR_RESULT, MALE - call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_MayTakeBreakFromFieldwork - compare VAR_RESULT, FEMALE - call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_BrendanTakeBreakFromFieldwork + call_if_eq VAR_RESULT, MALE, LittlerootTown_ProfessorBirchsLab_EventScript_MayTakeBreakFromFieldwork + call_if_eq VAR_RESULT, FEMALE, LittlerootTown_ProfessorBirchsLab_EventScript_BrendanTakeBreakFromFieldwork release end diff --git a/data/maps/MarineCave_End/scripts.inc b/data/maps/MarineCave_End/scripts.inc index 296ef02f82..a7ff583695 100644 --- a/data/maps/MarineCave_End/scripts.inc +++ b/data/maps/MarineCave_End/scripts.inc @@ -11,8 +11,7 @@ MarineCave_End_OnResume: MarineCave_End_EventScript_TryRemoveKyogre:: specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_CAUGHT - goto_if_ne Common_EventScript_NopReturn + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn removeobject LOCALID_KYOGRE return @@ -36,19 +35,16 @@ MarineCave_End_EventScript_Kyogre:: delay 40 waitmoncry setvar VAR_LAST_TALKED, LOCALID_KYOGRE - setwildbattle SPECIES_KYOGRE, 70, ITEM_NONE + setwildbattle SPECIES_KYOGRE, 70 setflag FLAG_SYS_CTRL_OBJ_DELETE special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE setvar VAR_TEMP_1, 0 specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq MarineCave_End_EventScript_DefeatedKyogre - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq MarineCave_End_EventScript_RanFromKyogre - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq MarineCave_End_EventScript_RanFromKyogre + goto_if_eq VAR_RESULT, B_OUTCOME_WON, MarineCave_End_EventScript_DefeatedKyogre + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, MarineCave_End_EventScript_RanFromKyogre + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, MarineCave_End_EventScript_RanFromKyogre setvar VAR_SHOULD_END_ABNORMAL_WEATHER, 1 setflag FLAG_DEFEATED_KYOGRE releaseall diff --git a/data/maps/MarineCave_Entrance/scripts.inc b/data/maps/MarineCave_Entrance/scripts.inc index a075d2c30d..172a19d26c 100644 --- a/data/maps/MarineCave_Entrance/scripts.inc +++ b/data/maps/MarineCave_Entrance/scripts.inc @@ -3,6 +3,6 @@ MarineCave_Entrance_MapScripts:: .byte 0 MarineCave_Entrance_OnResume: - setdivewarp MAP_UNDERWATER_MARINE_CAVE, 255, 9, 6 + setdivewarp MAP_UNDERWATER_MARINE_CAVE, 9, 6 end diff --git a/data/maps/MauvilleCity/scripts.inc b/data/maps/MauvilleCity/scripts.inc index eb243ec593..2ad39aec1c 100644 --- a/data/maps/MauvilleCity/scripts.inc +++ b/data/maps/MauvilleCity/scripts.inc @@ -107,10 +107,8 @@ MauvilleCity_EventScript_Wally:: end MauvilleCity_EventScript_BattleWallyPrompt:: - compare VAR_RESULT, YES - call_if_eq MauvilleCity_EventScript_BattleWally - compare VAR_RESULT, NO - goto_if_eq MauvilleCity_EventScript_DeclineWallyBattle + call_if_eq VAR_RESULT, YES, MauvilleCity_EventScript_BattleWally + goto_if_eq VAR_RESULT, NO, MauvilleCity_EventScript_DeclineWallyBattle closemessage switch VAR_FACING case DIR_NORTH, MauvilleCity_EventScript_WallyAndUncleExitNorth @@ -164,19 +162,15 @@ MauvilleCity_EventScript_DefeatedWally:: setflag FLAG_DEFEATED_WALLY_MAUVILLE setvar VAR_WALLY_CALL_STEP_COUNTER, 0 setflag FLAG_ENABLE_FIRST_WALLY_POKENAV_CALL - compare VAR_FACING, DIR_NORTH - call_if_eq MauvilleCity_EventScript_ScottApproachPlayerNorth - compare VAR_FACING, DIR_EAST - call_if_eq MauvilleCity_EventScript_ScottApproachPlayerEast + call_if_eq VAR_FACING, DIR_NORTH, MauvilleCity_EventScript_ScottApproachPlayerNorth + call_if_eq VAR_FACING, DIR_EAST, MauvilleCity_EventScript_ScottApproachPlayerEast applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 msgbox MauvilleCity_Text_ScottYouDidntHoldBack, MSGBOX_DEFAULT closemessage addvar VAR_SCOTT_STATE, 1 - compare VAR_FACING, DIR_NORTH - call_if_eq MauvilleCity_EventScript_ScottExitNorth - compare VAR_FACING, DIR_EAST - call_if_eq MauvilleCity_EventScript_ScottExitEast + call_if_eq VAR_FACING, DIR_NORTH, MauvilleCity_EventScript_ScottExitNorth + call_if_eq VAR_FACING, DIR_EAST, MauvilleCity_EventScript_ScottExitEast removeobject LOCALID_SCOTT releaseall end @@ -425,8 +419,7 @@ MauvilleCity_EventScript_Wattson:: lock faceplayer goto_if_set FLAG_GOT_TM24_FROM_WATTSON, MauvilleCity_EventScript_ReceivedThunderbolt - compare VAR_NEW_MAUVILLE_STATE, 2 - goto_if_eq MauvilleCity_EventScript_CompletedNewMauville + goto_if_eq VAR_NEW_MAUVILLE_STATE, 2, MauvilleCity_EventScript_CompletedNewMauville goto_if_set FLAG_GOT_BASEMENT_KEY_FROM_WATTSON, MauvilleCity_EventScript_BegunNewMauville msgbox MauvilleCity_Text_WattsonNeedFavorTakeKey, MSGBOX_DEFAULT giveitem ITEM_BASEMENT_KEY @@ -443,8 +436,7 @@ MauvilleCity_EventScript_BegunNewMauville:: MauvilleCity_EventScript_CompletedNewMauville:: msgbox MauvilleCity_Text_WattsonThanksTakeTM, MSGBOX_DEFAULT giveitem ITEM_TM24 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_GOT_TM24_FROM_WATTSON msgbox MauvilleCity_Text_WattsonYoungTakeCharge, MSGBOX_DEFAULT release diff --git a/data/maps/MauvilleCity_BikeShop/scripts.inc b/data/maps/MauvilleCity_BikeShop/scripts.inc index 45efbe8f3b..0893384101 100644 --- a/data/maps/MauvilleCity_BikeShop/scripts.inc +++ b/data/maps/MauvilleCity_BikeShop/scripts.inc @@ -8,18 +8,14 @@ MauvilleCity_BikeShop_EventScript_Rydel:: goto_if_set FLAG_DECLINED_BIKE, MauvilleCity_BikeShop_EventScript_SkipGreeting msgbox MauvilleCity_BikeShop_Text_RydelGreeting, MSGBOX_DEFAULT msgbox MauvilleCity_BikeShop_Text_DidYouComeFromFarAway, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq MauvilleCity_BikeShop_EventScript_YesFar - compare VAR_RESULT, NO - goto_if_eq MauvilleCity_BikeShop_EventScript_NotFar + goto_if_eq VAR_RESULT, YES, MauvilleCity_BikeShop_EventScript_YesFar + goto_if_eq VAR_RESULT, NO, MauvilleCity_BikeShop_EventScript_NotFar end MauvilleCity_BikeShop_EventScript_SkipGreeting:: msgbox MauvilleCity_BikeShop_Text_DidYouComeFromFarAway, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq MauvilleCity_BikeShop_EventScript_YesFar - compare VAR_RESULT, NO - goto_if_eq MauvilleCity_BikeShop_EventScript_NotFar + goto_if_eq VAR_RESULT, YES, MauvilleCity_BikeShop_EventScript_YesFar + goto_if_eq VAR_RESULT, NO, MauvilleCity_BikeShop_EventScript_NotFar end MauvilleCity_BikeShop_EventScript_ChooseBike:: @@ -62,21 +58,17 @@ MauvilleCity_BikeShop_EventScript_ComeBackToSwitchBikes:: MauvilleCity_BikeShop_EventScript_AskSwitchBikes:: msgbox MauvilleCity_BikeShop_Text_WantToSwitchBikes, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq MauvilleCity_BikeShop_EventScript_SwitchBikes - compare VAR_RESULT, NO - goto_if_eq MauvilleCity_BikeShop_EventScript_KeepBike + goto_if_eq VAR_RESULT, YES, MauvilleCity_BikeShop_EventScript_SwitchBikes + goto_if_eq VAR_RESULT, NO, MauvilleCity_BikeShop_EventScript_KeepBike end @ If the player does not have a bike on them Rydel assumes its stored in the PC MauvilleCity_BikeShop_EventScript_SwitchBikes:: msgbox MauvilleCity_BikeShop_Text_IllSwitchBikes, MSGBOX_DEFAULT - checkitem ITEM_ACRO_BIKE, 1 - compare VAR_RESULT, TRUE - goto_if_eq MauvilleCity_BikeShop_EventScript_SwitchAcroForMach - checkitem ITEM_MACH_BIKE, 1 - compare VAR_RESULT, TRUE - goto_if_eq MauvilleCity_BikeShop_EventScript_SwitchMachForAcro + checkitem ITEM_ACRO_BIKE + goto_if_eq VAR_RESULT, TRUE, MauvilleCity_BikeShop_EventScript_SwitchAcroForMach + checkitem ITEM_MACH_BIKE + goto_if_eq VAR_RESULT, TRUE, MauvilleCity_BikeShop_EventScript_SwitchMachForAcro msgbox MauvilleCity_BikeShop_Text_OhYourBikeIsInPC, MSGBOX_DEFAULT release end diff --git a/data/maps/MauvilleCity_GameCorner/scripts.inc b/data/maps/MauvilleCity_GameCorner/scripts.inc index 896dfa6807..b7c8603a33 100644 --- a/data/maps/MauvilleCity_GameCorner/scripts.inc +++ b/data/maps/MauvilleCity_GameCorner/scripts.inc @@ -16,12 +16,11 @@ MauvilleCity_GameCorner_EventScript_CoinsClerk:: lock faceplayer msgbox MauvilleCity_GameCorner_Text_ThisIsMauvilleGameCorner, MSGBOX_DEFAULT - checkitem ITEM_COIN_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NeedCoinCase + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NeedCoinCase message MauvilleCity_GameCorner_Text_WereYouLookingForCoins waitmessage - showmoneybox 0, 0, 0 + showmoneybox 0, 0 showcoinsbox 1, 6 goto MauvilleCity_GameCorner_EventScript_ChooseCoinsDefault50 @@ -44,14 +43,12 @@ MauvilleCity_GameCorner_EventScript_ChooseCoinsDefault500:: MauvilleCity_GameCorner_EventScript_Buy50Coins:: checkcoins VAR_TEMP_1 - compare VAR_TEMP_1, (MAX_COINS + 1 - 50) - goto_if_ge MauvilleCity_GameCorner_EventScript_NoRoomForCoins - checkmoney COINS_PRICE_50, 0 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NotEnoughMoney + goto_if_ge VAR_TEMP_1, (MAX_COINS + 1 - 50), MauvilleCity_GameCorner_EventScript_NoRoomForCoins + checkmoney COINS_PRICE_50 + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NotEnoughMoney addcoins 50 - removemoney COINS_PRICE_50, 0 - updatemoneybox 0, 0 + removemoney COINS_PRICE_50 + updatemoneybox updatecoinsbox 1, 6 playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_ThankYouHereAreYourCoins, MSGBOX_DEFAULT @@ -62,14 +59,12 @@ MauvilleCity_GameCorner_EventScript_Buy50Coins:: MauvilleCity_GameCorner_EventScript_Buy500Coins:: checkcoins VAR_TEMP_1 - compare VAR_TEMP_1, (MAX_COINS + 1 - 500) - goto_if_ge MauvilleCity_GameCorner_EventScript_NoRoomForCoins - checkmoney COINS_PRICE_500, 0 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NotEnoughMoney + goto_if_ge VAR_TEMP_1, (MAX_COINS + 1 - 500), MauvilleCity_GameCorner_EventScript_NoRoomForCoins + checkmoney COINS_PRICE_500 + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NotEnoughMoney addcoins 500 - removemoney COINS_PRICE_500, 0 - updatemoneybox 0, 0 + removemoney COINS_PRICE_500 + updatemoneybox updatecoinsbox 1, 6 playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_ThankYouHereAreYourCoins, MSGBOX_DEFAULT @@ -108,9 +103,8 @@ MauvilleCity_GameCorner_EventScript_PrizeCornerDolls:: lock faceplayer msgbox MauvilleCity_GameCorner_Text_ExchangeCoinsForPrizes, MSGBOX_DEFAULT - checkitem ITEM_COIN_CASE, 1 - compare VAR_RESULT, TRUE - goto_if_eq MauvilleCity_GameCorner_EventScript_ChooseDollPrizeMessage + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, TRUE, MauvilleCity_GameCorner_EventScript_ChooseDollPrizeMessage release end @@ -138,23 +132,22 @@ MauvilleCity_GameCorner_EventScript_ChooseDollPrize:: MauvilleCity_GameCorner_EventScript_TreeckoDoll:: setvar VAR_TEMP_1, 1 - bufferdecorationname 0, DECOR_TREECKO_DOLL + bufferdecorationname STR_VAR_1, DECOR_TREECKO_DOLL goto MauvilleCity_GameCorner_EventScript_ConfirmDollPrize MauvilleCity_GameCorner_EventScript_TorchicDoll:: setvar VAR_TEMP_1, 2 - bufferdecorationname 0, DECOR_TORCHIC_DOLL + bufferdecorationname STR_VAR_1, DECOR_TORCHIC_DOLL goto MauvilleCity_GameCorner_EventScript_ConfirmDollPrize MauvilleCity_GameCorner_EventScript_MudkipDoll:: setvar VAR_TEMP_1, 3 - bufferdecorationname 0, DECOR_MUDKIP_DOLL + bufferdecorationname STR_VAR_1, DECOR_MUDKIP_DOLL goto MauvilleCity_GameCorner_EventScript_ConfirmDollPrize MauvilleCity_GameCorner_EventScript_ConfirmDollPrize:: msgbox MauvilleCity_GameCorner_Text_SoYourChoiceIsX, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MauvilleCity_GameCorner_EventScript_CancelDollSelect + goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_EventScript_CancelDollSelect switch VAR_TEMP_1 case 1, MauvilleCity_GameCorner_EventScript_BuyTreeckoDoll case 2, MauvilleCity_GameCorner_EventScript_BuyTorchicDoll @@ -163,12 +156,10 @@ MauvilleCity_GameCorner_EventScript_ConfirmDollPrize:: MauvilleCity_GameCorner_EventScript_BuyTreeckoDoll:: checkcoins VAR_TEMP_2 - compare VAR_TEMP_2, DOLL_COINS - goto_if_lt MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForDoll - bufferdecorationname 1, DECOR_TREECKO_DOLL + goto_if_lt VAR_TEMP_2, DOLL_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForDoll + bufferdecorationname STR_VAR_2, DECOR_TREECKO_DOLL checkdecorspace DECOR_TREECKO_DOLL - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForDoll + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForDoll removecoins DOLL_COINS adddecoration DECOR_TREECKO_DOLL updatecoinsbox 1, 1 @@ -179,12 +170,10 @@ MauvilleCity_GameCorner_EventScript_BuyTreeckoDoll:: MauvilleCity_GameCorner_EventScript_BuyTorchicDoll:: checkcoins VAR_TEMP_2 - compare VAR_TEMP_2, DOLL_COINS - goto_if_lt MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForDoll - bufferdecorationname 1, DECOR_TORCHIC_DOLL + goto_if_lt VAR_TEMP_2, DOLL_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForDoll + bufferdecorationname STR_VAR_2, DECOR_TORCHIC_DOLL checkdecorspace DECOR_TORCHIC_DOLL - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForDoll + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForDoll removecoins DOLL_COINS adddecoration DECOR_TORCHIC_DOLL updatecoinsbox 1, 1 @@ -195,12 +184,10 @@ MauvilleCity_GameCorner_EventScript_BuyTorchicDoll:: MauvilleCity_GameCorner_EventScript_BuyMudkipDoll:: checkcoins VAR_TEMP_2 - compare VAR_TEMP_2, DOLL_COINS - goto_if_lt MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForDoll - bufferdecorationname 1, DECOR_MUDKIP_DOLL + goto_if_lt VAR_TEMP_2, DOLL_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForDoll + bufferdecorationname STR_VAR_2, DECOR_MUDKIP_DOLL checkdecorspace DECOR_MUDKIP_DOLL - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForDoll + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForDoll removecoins DOLL_COINS adddecoration DECOR_MUDKIP_DOLL updatecoinsbox 1, 1 @@ -229,9 +216,8 @@ MauvilleCity_GameCorner_EventScript_PrizeCornerTMs:: lock faceplayer msgbox MauvilleCity_GameCorner_Text_ExchangeCoinsForPrizes, MSGBOX_DEFAULT - checkitem ITEM_COIN_CASE, 1 - compare VAR_RESULT, TRUE - goto_if_eq MauvilleCity_GameCorner_EventScript_ChooseTMPrizeMessage + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, TRUE, MauvilleCity_GameCorner_EventScript_ChooseTMPrizeMessage release end @@ -261,39 +247,38 @@ MauvilleCity_GameCorner_EventScript_ChooseTMPrize:: MauvilleCity_GameCorner_EventScript_TM32:: setvar VAR_TEMP_1, 1 - bufferitemname 0, ITEM_TM32 + bufferitemname STR_VAR_1, ITEM_TM32 setvar VAR_0x8004, ITEM_TM32 goto MauvilleCity_GameCorner_EventScript_ConfirmTMPrize MauvilleCity_GameCorner_EventScript_TM29:: setvar VAR_TEMP_1, 2 - bufferitemname 0, ITEM_TM29 + bufferitemname STR_VAR_1, ITEM_TM29 setvar VAR_0x8004, ITEM_TM29 goto MauvilleCity_GameCorner_EventScript_ConfirmTMPrize MauvilleCity_GameCorner_EventScript_TM35:: setvar VAR_TEMP_1, 3 - bufferitemname 0, ITEM_TM35 + bufferitemname STR_VAR_1, ITEM_TM35 setvar VAR_0x8004, ITEM_TM35 goto MauvilleCity_GameCorner_EventScript_ConfirmTMPrize MauvilleCity_GameCorner_EventScript_TM24:: setvar VAR_TEMP_1, 4 - bufferitemname 0, ITEM_TM24 + bufferitemname STR_VAR_1, ITEM_TM24 setvar VAR_0x8004, ITEM_TM24 goto MauvilleCity_GameCorner_EventScript_ConfirmTMPrize MauvilleCity_GameCorner_EventScript_TM13:: setvar VAR_TEMP_1, 5 - bufferitemname 0, ITEM_TM13 + bufferitemname STR_VAR_1, ITEM_TM13 setvar VAR_0x8004, ITEM_TM13 goto MauvilleCity_GameCorner_EventScript_ConfirmTMPrize MauvilleCity_GameCorner_EventScript_ConfirmTMPrize:: special BufferTMHMMoveName msgbox MauvilleCity_GameCorner_Text_SoYourChoiceIsTheTMX, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MauvilleCity_GameCorner_EventScript_CancelTMSelect + goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_EventScript_CancelTMSelect switch VAR_TEMP_1 case 1, MauvilleCity_GameCorner_EventScript_BuyTM32 case 2, MauvilleCity_GameCorner_EventScript_BuyTM29 @@ -304,11 +289,9 @@ MauvilleCity_GameCorner_EventScript_ConfirmTMPrize:: MauvilleCity_GameCorner_EventScript_BuyTM32:: checkcoins VAR_TEMP_2 - compare VAR_TEMP_2, TM32_COINS - goto_if_lt MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM - checkitemspace ITEM_TM32, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForTM + goto_if_lt VAR_TEMP_2, TM32_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM + checkitemspace ITEM_TM32 + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForTM removecoins TM32_COINS additem ITEM_TM32 updatecoinsbox 1, 1 @@ -319,11 +302,9 @@ MauvilleCity_GameCorner_EventScript_BuyTM32:: MauvilleCity_GameCorner_EventScript_BuyTM29:: checkcoins VAR_TEMP_2 - compare VAR_TEMP_2, TM29_COINS - goto_if_lt MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM - checkitemspace ITEM_TM29, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForTM + goto_if_lt VAR_TEMP_2, TM29_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM + checkitemspace ITEM_TM29 + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForTM removecoins TM29_COINS additem ITEM_TM29 updatecoinsbox 1, 1 @@ -334,11 +315,9 @@ MauvilleCity_GameCorner_EventScript_BuyTM29:: MauvilleCity_GameCorner_EventScript_BuyTM35:: checkcoins VAR_TEMP_2 - compare VAR_TEMP_2, TM35_COINS - goto_if_lt MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM - checkitemspace ITEM_TM35, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForTM + goto_if_lt VAR_TEMP_2, TM35_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM + checkitemspace ITEM_TM35 + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForTM removecoins TM35_COINS additem ITEM_TM35 updatecoinsbox 1, 1 @@ -349,11 +328,9 @@ MauvilleCity_GameCorner_EventScript_BuyTM35:: MauvilleCity_GameCorner_EventScript_BuyTM24:: checkcoins VAR_TEMP_2 - compare VAR_TEMP_2, TM24_COINS - goto_if_lt MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM - checkitemspace ITEM_TM24, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForTM + goto_if_lt VAR_TEMP_2, TM24_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM + checkitemspace ITEM_TM24 + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForTM removecoins TM24_COINS additem ITEM_TM24 updatecoinsbox 1, 1 @@ -364,11 +341,9 @@ MauvilleCity_GameCorner_EventScript_BuyTM24:: MauvilleCity_GameCorner_EventScript_BuyTM13:: checkcoins VAR_TEMP_2 - compare VAR_TEMP_2, TM13_COINS - goto_if_lt MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM - checkitemspace ITEM_TM13, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForTM + goto_if_lt VAR_TEMP_2, TM13_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM + checkitemspace ITEM_TM13 + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForTM removecoins TM13_COINS additem ITEM_TM13 updatecoinsbox 1, 1 @@ -406,8 +381,7 @@ MauvilleCity_GameCorner_EventScript_Girl:: faceplayer goto_if_set FLAG_RECEIVED_STARTER_DOLL, MauvilleCity_GameCorner_EventScript_ReceivedStarterDoll msgbox MauvilleCity_GameCorner_Text_GotTwoOfSameDollWantOne, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MauvilleCity_GameCorner_EventScript_DeclineStarterDoll + goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_EventScript_DeclineStarterDoll switch VAR_STARTER_MON case 0, MauvilleCity_GameCorner_EventScript_GiveTreeckoDoll case 1, MauvilleCity_GameCorner_EventScript_GiveTorchicDoll @@ -415,10 +389,9 @@ MauvilleCity_GameCorner_EventScript_Girl:: end MauvilleCity_GameCorner_EventScript_GiveTreeckoDoll:: - bufferdecorationname 1, DECOR_TREECKO_DOLL + bufferdecorationname STR_VAR_2, DECOR_TREECKO_DOLL checkdecorspace DECOR_TREECKO_DOLL - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForStarterDoll + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForStarterDoll msgbox MauvilleCity_GameCorner_Text_HereYouGo2, MSGBOX_DEFAULT givedecoration DECOR_TREECKO_DOLL setflag FLAG_RECEIVED_STARTER_DOLL @@ -426,10 +399,9 @@ MauvilleCity_GameCorner_EventScript_GiveTreeckoDoll:: end MauvilleCity_GameCorner_EventScript_GiveTorchicDoll:: - bufferdecorationname 1, DECOR_TORCHIC_DOLL + bufferdecorationname STR_VAR_2, DECOR_TORCHIC_DOLL checkdecorspace DECOR_TORCHIC_DOLL - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForStarterDoll + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForStarterDoll msgbox MauvilleCity_GameCorner_Text_HereYouGo2, MSGBOX_DEFAULT givedecoration DECOR_TORCHIC_DOLL setflag FLAG_RECEIVED_STARTER_DOLL @@ -437,10 +409,9 @@ MauvilleCity_GameCorner_EventScript_GiveTorchicDoll:: end MauvilleCity_GameCorner_EventScript_GiveMudkipDoll:: - bufferdecorationname 1, DECOR_MUDKIP_DOLL + bufferdecorationname STR_VAR_2, DECOR_MUDKIP_DOLL checkdecorspace DECOR_MUDKIP_DOLL - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForStarterDoll + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForStarterDoll msgbox MauvilleCity_GameCorner_Text_HereYouGo2, MSGBOX_DEFAULT givedecoration DECOR_MUDKIP_DOLL setflag FLAG_RECEIVED_STARTER_DOLL @@ -466,9 +437,8 @@ MauvilleCity_GameCorner_EventScript_ReceivedStarterDoll:: MauvilleCity_GameCorner_EventScript_PokefanM:: lock faceplayer - checkitem ITEM_COIN_CASE, 1 - compare VAR_RESULT, TRUE - goto_if_eq MauvilleCity_GameCorner_EventScript_TryGive20Coins + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, TRUE, MauvilleCity_GameCorner_EventScript_TryGive20Coins msgbox MauvilleCity_GameCorner_Text_NeedCoinCaseGoNextDoor, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots end @@ -476,8 +446,7 @@ MauvilleCity_GameCorner_EventScript_PokefanM:: MauvilleCity_GameCorner_EventScript_TryGive20Coins:: goto_if_set FLAG_RECEIVED_20_COINS, MauvilleCity_GameCorner_EventScript_PokefanMNormal checkcoins VAR_TEMP_1 - compare VAR_TEMP_1, 1 @ Only give 20 coins if player has no coins - goto_if_ge MauvilleCity_GameCorner_EventScript_PokefanMNormal + goto_if_ge VAR_TEMP_1, 1, MauvilleCity_GameCorner_EventScript_PokefanMNormal @ Only give 20 coins if player has no coins setflag FLAG_RECEIVED_20_COINS addcoins 20 msgbox MauvilleCity_GameCorner_Text_LuckOnlyLastSoLongTakeCoins, MSGBOX_DEFAULT @@ -534,9 +503,8 @@ MauvilleCity_GameCorner_EventScript_Woman:: MauvilleCity_GameCorner_EventScript_SlotMachine0:: lockall - checkitem ITEM_COIN_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoCoinCase + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 0 specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT @@ -545,9 +513,8 @@ MauvilleCity_GameCorner_EventScript_SlotMachine0:: MauvilleCity_GameCorner_EventScript_SlotMachine1:: lockall - checkitem ITEM_COIN_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoCoinCase + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 1 specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT @@ -556,9 +523,8 @@ MauvilleCity_GameCorner_EventScript_SlotMachine1:: MauvilleCity_GameCorner_EventScript_SlotMachine2:: lockall - checkitem ITEM_COIN_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoCoinCase + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 2 specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT @@ -567,9 +533,8 @@ MauvilleCity_GameCorner_EventScript_SlotMachine2:: MauvilleCity_GameCorner_EventScript_SlotMachine3:: lockall - checkitem ITEM_COIN_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoCoinCase + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 3 specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT @@ -578,9 +543,8 @@ MauvilleCity_GameCorner_EventScript_SlotMachine3:: MauvilleCity_GameCorner_EventScript_SlotMachine4:: lockall - checkitem ITEM_COIN_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoCoinCase + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 4 specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT @@ -589,9 +553,8 @@ MauvilleCity_GameCorner_EventScript_SlotMachine4:: MauvilleCity_GameCorner_EventScript_SlotMachine5:: lockall - checkitem ITEM_COIN_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoCoinCase + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 5 specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT @@ -600,9 +563,8 @@ MauvilleCity_GameCorner_EventScript_SlotMachine5:: MauvilleCity_GameCorner_EventScript_SlotMachine6:: lockall - checkitem ITEM_COIN_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoCoinCase + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 6 specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT @@ -611,9 +573,8 @@ MauvilleCity_GameCorner_EventScript_SlotMachine6:: MauvilleCity_GameCorner_EventScript_SlotMachine7:: lockall - checkitem ITEM_COIN_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoCoinCase + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 7 specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT @@ -622,9 +583,8 @@ MauvilleCity_GameCorner_EventScript_SlotMachine7:: MauvilleCity_GameCorner_EventScript_SlotMachine8:: lockall - checkitem ITEM_COIN_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoCoinCase + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 8 specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT @@ -633,9 +593,8 @@ MauvilleCity_GameCorner_EventScript_SlotMachine8:: MauvilleCity_GameCorner_EventScript_SlotMachine9:: lockall - checkitem ITEM_COIN_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoCoinCase + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 9 specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT @@ -644,9 +603,8 @@ MauvilleCity_GameCorner_EventScript_SlotMachine9:: MauvilleCity_GameCorner_EventScript_SlotMachine10:: lockall - checkitem ITEM_COIN_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoCoinCase + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 10 specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT @@ -655,9 +613,8 @@ MauvilleCity_GameCorner_EventScript_SlotMachine10:: MauvilleCity_GameCorner_EventScript_SlotMachine11:: lockall - checkitem ITEM_COIN_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoCoinCase + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 11 specialvar VAR_RESULT, GetSlotMachineId playslotmachine VAR_RESULT diff --git a/data/maps/MauvilleCity_Gym/scripts.inc b/data/maps/MauvilleCity_Gym/scripts.inc index 3c09ecfa20..de924d7d93 100644 --- a/data/maps/MauvilleCity_Gym/scripts.inc +++ b/data/maps/MauvilleCity_Gym/scripts.inc @@ -17,32 +17,32 @@ MauvilleCity_Gym_EventScript_UpdateBarriers:: end MauvilleCity_Gym_EventScript_SetAltBarriers:: - setmetatile 3, 11, METATILE_MauvilleGym_RedBeamV1_On, 1 - setmetatile 3, 12, METATILE_MauvilleGym_RedBeamV2_On, 1 - setmetatile 3, 13, METATILE_MauvilleGym_PoleTop_On, 1 - setmetatile 4, 10, METATILE_MauvilleGym_RedBeamH1_On, 0 - setmetatile 5, 10, METATILE_MauvilleGym_RedBeamH2_On, 0 - setmetatile 4, 11, METATILE_MauvilleGym_RedBeamH3_On, 1 - setmetatile 5, 11, METATILE_MauvilleGym_RedBeamH4_On, 1 - setmetatile 7, 10, METATILE_MauvilleGym_RedBeamH1_On, 0 - setmetatile 8, 10, METATILE_MauvilleGym_RedBeamH2_On, 0 - setmetatile 7, 11, METATILE_MauvilleGym_RedBeamH3_On, 1 - setmetatile 8, 11, METATILE_MauvilleGym_RedBeamH4_On, 1 - setmetatile 4, 13, METATILE_MauvilleGym_GreenBeamH1_Off, 0 - setmetatile 5, 13, METATILE_MauvilleGym_GreenBeamH2_Off, 0 - setmetatile 4, 14, METATILE_MauvilleGym_GreenBeamH3_Off, 0 - setmetatile 5, 14, METATILE_MauvilleGym_GreenBeamH4_Off, 0 - setmetatile 1, 10, METATILE_MauvilleGym_GreenBeamH1_Off, 0 - setmetatile 2, 10, METATILE_MauvilleGym_GreenBeamH2_Off, 0 - setmetatile 1, 11, METATILE_MauvilleGym_GreenBeamH3_Off, 0 - setmetatile 2, 11, METATILE_MauvilleGym_GreenBeamH4_Off, 0 - setmetatile 6, 8, METATILE_MauvilleGym_PoleBottom_On, 1 - setmetatile 6, 9, METATILE_MauvilleGym_FloorTile, 0 - setmetatile 6, 10, METATILE_MauvilleGym_PoleTop_Off, 0 - setmetatile 4, 6, METATILE_MauvilleGym_GreenBeamH1_Off, 0 - setmetatile 5, 6, METATILE_MauvilleGym_GreenBeamH2_Off, 0 - setmetatile 4, 7, METATILE_MauvilleGym_GreenBeamH3_Off, 0 - setmetatile 5, 7, METATILE_MauvilleGym_GreenBeamH4_Off, 0 + setmetatile 3, 11, METATILE_MauvilleGym_RedBeamV1_On, TRUE + setmetatile 3, 12, METATILE_MauvilleGym_RedBeamV2_On, TRUE + setmetatile 3, 13, METATILE_MauvilleGym_PoleTop_On, TRUE + setmetatile 4, 10, METATILE_MauvilleGym_RedBeamH1_On, FALSE + setmetatile 5, 10, METATILE_MauvilleGym_RedBeamH2_On, FALSE + setmetatile 4, 11, METATILE_MauvilleGym_RedBeamH3_On, TRUE + setmetatile 5, 11, METATILE_MauvilleGym_RedBeamH4_On, TRUE + setmetatile 7, 10, METATILE_MauvilleGym_RedBeamH1_On, FALSE + setmetatile 8, 10, METATILE_MauvilleGym_RedBeamH2_On, FALSE + setmetatile 7, 11, METATILE_MauvilleGym_RedBeamH3_On, TRUE + setmetatile 8, 11, METATILE_MauvilleGym_RedBeamH4_On, TRUE + setmetatile 4, 13, METATILE_MauvilleGym_GreenBeamH1_Off, FALSE + setmetatile 5, 13, METATILE_MauvilleGym_GreenBeamH2_Off, FALSE + setmetatile 4, 14, METATILE_MauvilleGym_GreenBeamH3_Off, FALSE + setmetatile 5, 14, METATILE_MauvilleGym_GreenBeamH4_Off, FALSE + setmetatile 1, 10, METATILE_MauvilleGym_GreenBeamH1_Off, FALSE + setmetatile 2, 10, METATILE_MauvilleGym_GreenBeamH2_Off, FALSE + setmetatile 1, 11, METATILE_MauvilleGym_GreenBeamH3_Off, FALSE + setmetatile 2, 11, METATILE_MauvilleGym_GreenBeamH4_Off, FALSE + setmetatile 6, 8, METATILE_MauvilleGym_PoleBottom_On, TRUE + setmetatile 6, 9, METATILE_MauvilleGym_FloorTile, FALSE + setmetatile 6, 10, METATILE_MauvilleGym_PoleTop_Off, FALSE + setmetatile 4, 6, METATILE_MauvilleGym_GreenBeamH1_Off, FALSE + setmetatile 5, 6, METATILE_MauvilleGym_GreenBeamH2_Off, FALSE + setmetatile 4, 7, METATILE_MauvilleGym_GreenBeamH3_Off, FALSE + setmetatile 5, 7, METATILE_MauvilleGym_GreenBeamH4_Off, FALSE end MauvilleCity_Gym_EventScript_Switch1Pressed:: @@ -76,11 +76,9 @@ MauvilleCity_Gym_EventScript_DeactivatePuzzle:: MauvilleCity_Gym_EventScript_Wattson:: trainerbattle_single TRAINER_WATTSON_1, MauvilleCity_Gym_Text_WattsonIntro, MauvilleCity_Gym_Text_WattsonDefeat, MauvilleCity_Gym_EventScript_WattsonDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq MauvilleCity_Gym_EventScript_WattsonRematch + goto_if_eq VAR_RESULT, TRUE, MauvilleCity_Gym_EventScript_WattsonRematch goto_if_unset FLAG_RECEIVED_TM34, MauvilleCity_Gym_EventScript_GiveShockWave2 - compare VAR_NEW_MAUVILLE_STATE, 2 - goto_if_eq MauvilleCity_Gym_EventScript_CompletedNewMauville + goto_if_eq VAR_NEW_MAUVILLE_STATE, 2, MauvilleCity_Gym_EventScript_CompletedNewMauville msgbox MauvilleCity_Gym_Text_WattsonPostBattle, MSGBOX_DEFAULT release end @@ -95,8 +93,7 @@ MauvilleCity_Gym_EventScript_WattsonDefeated:: setflag FLAG_DEFEATED_MAUVILLE_GYM setflag FLAG_BADGE03_GET addvar VAR_PETALBURG_GYM_STATE, 1 - compare VAR_PETALBURG_GYM_STATE, 6 - call_if_eq Common_EventScript_ReadyPetalburgGymForBattle + call_if_eq VAR_PETALBURG_GYM_STATE, 6, Common_EventScript_ReadyPetalburgGymForBattle setvar VAR_0x8008, 3 call Common_EventScript_SetGymTrainers special MauvilleGymDeactivatePuzzle @@ -116,8 +113,7 @@ MauvilleCity_Gym_EventScript_WattsonDefeated:: MauvilleCity_Gym_EventScript_GiveShockWave2:: giveitem ITEM_TM34 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull msgbox MauvilleCity_Gym_Text_ExplainShockWave, MSGBOX_DEFAULT setflag FLAG_RECEIVED_TM34 release @@ -125,8 +121,7 @@ MauvilleCity_Gym_EventScript_GiveShockWave2:: MauvilleCity_Gym_EventScript_GiveShockWave:: giveitem ITEM_TM34 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_BagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_BagIsFull msgbox MauvilleCity_Gym_Text_ExplainShockWave, MSGBOX_DEFAULT setflag FLAG_RECEIVED_TM34 return @@ -144,8 +139,7 @@ MauvilleCity_Gym_EventScript_WattsonRematch:: MauvilleCity_Gym_EventScript_Switch1:: lockall goto_if_set FLAG_DEFEATED_MAUVILLE_GYM, MauvilleCity_Gym_EventScript_SwitchDoNothing - compare VAR_MAUVILLE_GYM_STATE, 1 - goto_if_eq MauvilleCity_Gym_EventScript_SwitchDoNothing + goto_if_eq VAR_MAUVILLE_GYM_STATE, 1, MauvilleCity_Gym_EventScript_SwitchDoNothing setvar VAR_MAUVILLE_GYM_STATE, 1 setvar VAR_0x8004, 0 goto MauvilleCity_Gym_EventScript_PressFloorSwitch @@ -154,8 +148,7 @@ MauvilleCity_Gym_EventScript_Switch1:: MauvilleCity_Gym_EventScript_Switch2:: lockall goto_if_set FLAG_DEFEATED_MAUVILLE_GYM, MauvilleCity_Gym_EventScript_SwitchDoNothing - compare VAR_MAUVILLE_GYM_STATE, 2 - goto_if_eq MauvilleCity_Gym_EventScript_SwitchDoNothing + goto_if_eq VAR_MAUVILLE_GYM_STATE, 2, MauvilleCity_Gym_EventScript_SwitchDoNothing setvar VAR_MAUVILLE_GYM_STATE, 2 setvar VAR_0x8004, 1 goto MauvilleCity_Gym_EventScript_PressFloorSwitch @@ -164,8 +157,7 @@ MauvilleCity_Gym_EventScript_Switch2:: MauvilleCity_Gym_EventScript_Switch3:: lockall goto_if_set FLAG_DEFEATED_MAUVILLE_GYM, MauvilleCity_Gym_EventScript_SwitchDoNothing - compare VAR_MAUVILLE_GYM_STATE, 3 - goto_if_eq MauvilleCity_Gym_EventScript_SwitchDoNothing + goto_if_eq VAR_MAUVILLE_GYM_STATE, 3, MauvilleCity_Gym_EventScript_SwitchDoNothing setvar VAR_MAUVILLE_GYM_STATE, 3 setvar VAR_0x8004, 2 goto MauvilleCity_Gym_EventScript_PressFloorSwitch @@ -174,8 +166,7 @@ MauvilleCity_Gym_EventScript_Switch3:: MauvilleCity_Gym_EventScript_Switch4:: lockall goto_if_set FLAG_DEFEATED_MAUVILLE_GYM, MauvilleCity_Gym_EventScript_SwitchDoNothing - compare VAR_MAUVILLE_GYM_STATE, 4 - goto_if_eq MauvilleCity_Gym_EventScript_SwitchDoNothing + goto_if_eq VAR_MAUVILLE_GYM_STATE, 4, MauvilleCity_Gym_EventScript_SwitchDoNothing setvar VAR_MAUVILLE_GYM_STATE, 4 setvar VAR_0x8004, 3 goto MauvilleCity_Gym_EventScript_PressFloorSwitch diff --git a/data/maps/MauvilleCity_House2/scripts.inc b/data/maps/MauvilleCity_House2/scripts.inc index 178b79f9b4..193e0c04ce 100644 --- a/data/maps/MauvilleCity_House2/scripts.inc +++ b/data/maps/MauvilleCity_House2/scripts.inc @@ -6,9 +6,8 @@ MauvilleCity_House2_EventScript_Woman:: faceplayer goto_if_set FLAG_RECEIVED_COIN_CASE, MauvilleCity_House2_EventScript_ReceivedCoinCase msgbox MauvilleCity_House2_Text_BuyHarborMailAtSlateport, MSGBOX_DEFAULT - checkitem ITEM_HARBOR_MAIL, 1 - compare VAR_RESULT, TRUE - goto_if_eq MauvilleCity_House2_EventScript_AskToTradeForHarborMail + checkitem ITEM_HARBOR_MAIL + goto_if_eq VAR_RESULT, TRUE, MauvilleCity_House2_EventScript_AskToTradeForHarborMail release end @@ -19,10 +18,8 @@ MauvilleCity_House2_EventScript_AskToTradeForHarborMail:: applymovement VAR_LAST_TALKED, Common_Movement_Delay48 waitmovement 0 msgbox MauvilleCity_House2_Text_TradeHarborMailForCoinCase, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq MauvilleCity_House2_EventScript_AcceptTrade - compare VAR_RESULT, NO - goto_if_eq MauvilleCity_House2_EventScript_DeclineTrade + goto_if_eq VAR_RESULT, YES, MauvilleCity_House2_EventScript_AcceptTrade + goto_if_eq VAR_RESULT, NO, MauvilleCity_House2_EventScript_DeclineTrade end MauvilleCity_House2_EventScript_AcceptTrade:: diff --git a/data/maps/MeteorFalls_1F_1R/scripts.inc b/data/maps/MeteorFalls_1F_1R/scripts.inc index 23ae9728de..b81f5de267 100644 --- a/data/maps/MeteorFalls_1F_1R/scripts.inc +++ b/data/maps/MeteorFalls_1F_1R/scripts.inc @@ -13,10 +13,10 @@ MeteorFalls_1F_1R_OnLoad: end MeteorFalls_1F_1R_EventScript_OpenStevensCave:: - setmetatile 4, 1, METATILE_MeteorFalls_CaveEntrance_Top, 1 - setmetatile 3, 2, METATILE_MeteorFalls_CaveEntrance_Left, 1 - setmetatile 4, 2, METATILE_MeteorFalls_CaveEntrance_Bottom, 0 - setmetatile 5, 2, METATILE_MeteorFalls_CaveEntrance_Right, 1 + setmetatile 4, 1, METATILE_MeteorFalls_CaveEntrance_Top, TRUE + setmetatile 3, 2, METATILE_MeteorFalls_CaveEntrance_Left, TRUE + setmetatile 4, 2, METATILE_MeteorFalls_CaveEntrance_Bottom, FALSE + setmetatile 5, 2, METATILE_MeteorFalls_CaveEntrance_Right, TRUE return MeteorFalls_1F_1R_EventScript_MagmaStealsMeteoriteScene:: diff --git a/data/maps/MeteorFalls_1F_2R/scripts.inc b/data/maps/MeteorFalls_1F_2R/scripts.inc index 706d362bed..4e3e9b321b 100644 --- a/data/maps/MeteorFalls_1F_2R/scripts.inc +++ b/data/maps/MeteorFalls_1F_2R/scripts.inc @@ -4,8 +4,7 @@ MeteorFalls_1F_2R_MapScripts:: MeteorFalls_1F_2R_EventScript_Nicolas:: trainerbattle_single TRAINER_NICOLAS_1, MeteorFalls_1F_2R_Text_NicolasIntro, MeteorFalls_1F_2R_Text_NicolasDefeat, MeteorFalls_1F_2R_EventScript_RegisterNicolas specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq MeteorFalls_1F_2R_EventScript_RematchNicolas + goto_if_eq VAR_RESULT, TRUE, MeteorFalls_1F_2R_EventScript_RematchNicolas msgbox MeteorFalls_1F_2R_Text_NicolasPostBattle, MSGBOX_DEFAULT release end @@ -26,8 +25,7 @@ MeteorFalls_1F_2R_EventScript_RematchNicolas:: MeteorFalls_1F_2R_EventScript_John:: trainerbattle_double TRAINER_JOHN_AND_JAY_1, MeteorFalls_1F_2R_Text_JohnIntro, MeteorFalls_1F_2R_Text_JohnDefeat, MeteorFalls_1F_2R_Text_JohnNotEnoughMons, MeteorFalls_1F_2R_EventScript_RegisterJohn specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq MeteorFalls_1F_2R_EventScript_RematchJohn + goto_if_eq VAR_RESULT, TRUE, MeteorFalls_1F_2R_EventScript_RematchJohn msgbox MeteorFalls_1F_2R_Text_JohnPostBattle, MSGBOX_DEFAULT release end @@ -46,8 +44,7 @@ MeteorFalls_1F_2R_EventScript_RematchJohn:: MeteorFalls_1F_2R_EventScript_Jay:: trainerbattle_double TRAINER_JOHN_AND_JAY_1, MeteorFalls_1F_2R_Text_JayIntro, MeteorFalls_1F_2R_Text_JayDefeat, MeteorFalls_1F_2R_Text_JayNotEnoughMons, MeteorFalls_1F_2R_EventScript_RegisterJay specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq MeteorFalls_1F_2R_EventScript_RematchJay + goto_if_eq VAR_RESULT, TRUE, MeteorFalls_1F_2R_EventScript_RematchJay msgbox MeteorFalls_1F_2R_Text_JayPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/MirageTower_2F/scripts.inc b/data/maps/MirageTower_2F/scripts.inc index 3d53359d4c..39d2be7f43 100644 --- a/data/maps/MirageTower_2F/scripts.inc +++ b/data/maps/MirageTower_2F/scripts.inc @@ -6,6 +6,6 @@ MirageTower_2F_MapScripts:: MirageTower_2F_SetHoleWarp: setstepcallback STEP_CB_CRACKED_FLOOR - setholewarp MAP_MIRAGE_TOWER_1F, 255, 0, 0 + setholewarp MAP_MIRAGE_TOWER_1F end diff --git a/data/maps/MirageTower_3F/scripts.inc b/data/maps/MirageTower_3F/scripts.inc index 02b0864008..1b2f04aeee 100644 --- a/data/maps/MirageTower_3F/scripts.inc +++ b/data/maps/MirageTower_3F/scripts.inc @@ -6,6 +6,6 @@ MirageTower_3F_MapScripts:: MirageTower_3F_SetHoleWarp: setstepcallback STEP_CB_CRACKED_FLOOR - setholewarp MAP_MIRAGE_TOWER_2F, 255, 0, 0 + setholewarp MAP_MIRAGE_TOWER_2F end diff --git a/data/maps/MirageTower_4F/scripts.inc b/data/maps/MirageTower_4F/scripts.inc index 2c96710d13..61bde877c5 100644 --- a/data/maps/MirageTower_4F/scripts.inc +++ b/data/maps/MirageTower_4F/scripts.inc @@ -8,8 +8,7 @@ MirageTower_4F_EventScript_RootFossil:: lock faceplayer msgbox MirageTower_4F_Text_TakeRootFossil, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MirageTower_4F_EventScript_LeaveRootFossil + goto_if_eq VAR_RESULT, NO, MirageTower_4F_EventScript_LeaveRootFossil giveitem ITEM_ROOT_FOSSIL closemessage setflag FLAG_HIDE_MIRAGE_TOWER_ROOT_FOSSIL @@ -29,8 +28,7 @@ MirageTower_4F_EventScript_ClawFossil:: lock faceplayer msgbox MirageTower_4F_Text_TakeClawFossil, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MirageTower_4F_EventScript_LeaveClawFossil + goto_if_eq VAR_RESULT, NO, MirageTower_4F_EventScript_LeaveClawFossil giveitem ITEM_CLAW_FOSSIL closemessage setflag FLAG_HIDE_MIRAGE_TOWER_CLAW_FOSSIL @@ -57,7 +55,7 @@ MirageTower_4F_EventScript_CollapseMirageTower:: waitstate setvar VAR_MIRAGE_TOWER_STATE, 1 clearflag FLAG_LANDMARK_MIRAGE_TOWER - warp MAP_ROUTE111, 255, 19, 59 + warp MAP_ROUTE111, 19, 59 waitstate release end diff --git a/data/maps/MossdeepCity/scripts.inc b/data/maps/MossdeepCity/scripts.inc index f5af3a391b..836490cbdd 100644 --- a/data/maps/MossdeepCity/scripts.inc +++ b/data/maps/MossdeepCity/scripts.inc @@ -233,12 +233,10 @@ MossdeepCity_EventScript_KingsRockBoy:: faceplayer goto_if_set FLAG_RECEIVED_KINGS_ROCK, MossdeepCity_EventScript_ReceivedKingsRock msgbox MossdeepCity_Text_WantKingsRockStevenGaveMe, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MossdeepCity_EventScript_DeclineKingsRock + goto_if_eq VAR_RESULT, NO, MossdeepCity_EventScript_DeclineKingsRock msgbox MossdeepCity_Text_YouCanKeepIt, MSGBOX_DEFAULT giveitem ITEM_KINGS_ROCK - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_KINGS_ROCK release end @@ -262,10 +260,8 @@ MossdeepCity_EventScript_Scott:: faceplayer msgbox MossdeepCity_Text_ScottSomethingWrongWithTown, MSGBOX_DEFAULT closemessage - compare VAR_FACING, DIR_NORTH - call_if_eq MossdeepCity_EventScript_ScottExitNorth - compare VAR_FACING, DIR_EAST - call_if_eq MossdeepCity_EventScript_ScottExitEast + call_if_eq VAR_FACING, DIR_NORTH, MossdeepCity_EventScript_ScottExitNorth + call_if_eq VAR_FACING, DIR_EAST, MossdeepCity_EventScript_ScottExitEast addvar VAR_SCOTT_STATE, 1 removeobject LOCALID_SCOTT release diff --git a/data/maps/MossdeepCity_Gym/scripts.inc b/data/maps/MossdeepCity_Gym/scripts.inc index 22c2e17ab9..b47011d680 100644 --- a/data/maps/MossdeepCity_Gym/scripts.inc +++ b/data/maps/MossdeepCity_Gym/scripts.inc @@ -26,33 +26,32 @@ MossdeepCity_Gym_EventScript_CheckSwitch4:: @ All the below set metatile scripts are leftover from RS and are functionally unused MossdeepCity_Gym_EventScript_SetSwitch1Metatiles:: - setmetatile 5, 5, METATILE_RS_MossdeepGym_RedArrow_Right, 0 - setmetatile 2, 7, METATILE_RS_MossdeepGym_Switch_Down, 1 + setmetatile 5, 5, METATILE_RS_MossdeepGym_RedArrow_Right, FALSE + setmetatile 2, 7, METATILE_RS_MossdeepGym_Switch_Down, TRUE goto MossdeepCity_Gym_EventScript_CheckSwitch2 end MossdeepCity_Gym_EventScript_SetSwitch2Metatiles:: - setmetatile 8, 14, METATILE_RS_MossdeepGym_RedArrow_Right, 0 - setmetatile 8, 10, METATILE_RS_MossdeepGym_Switch_Down, 1 + setmetatile 8, 14, METATILE_RS_MossdeepGym_RedArrow_Right, FALSE + setmetatile 8, 10, METATILE_RS_MossdeepGym_Switch_Down, TRUE goto MossdeepCity_Gym_EventScript_CheckSwitch3 end MossdeepCity_Gym_EventScript_SetSwitch3Metatiles:: - setmetatile 15, 17, METATILE_RS_MossdeepGym_RedArrow_Left, 0 - setmetatile 17, 15, METATILE_RS_MossdeepGym_Switch_Down, 1 + setmetatile 15, 17, METATILE_RS_MossdeepGym_RedArrow_Left, FALSE + setmetatile 17, 15, METATILE_RS_MossdeepGym_Switch_Down, TRUE goto MossdeepCity_Gym_EventScript_CheckSwitch4 end MossdeepCity_Gym_EventScript_SetSwitch4Metatiles:: - setmetatile 1, 23, METATILE_RS_MossdeepGym_RedArrow_Up, 0 - setmetatile 5, 24, METATILE_RS_MossdeepGym_Switch_Down, 1 + setmetatile 1, 23, METATILE_RS_MossdeepGym_RedArrow_Up, FALSE + setmetatile 5, 24, METATILE_RS_MossdeepGym_Switch_Down, TRUE end MossdeepCity_Gym_EventScript_TateAndLiza:: trainerbattle_double TRAINER_TATE_AND_LIZA_1, MossdeepCity_Gym_Text_TateAndLizaIntro, MossdeepCity_Gym_Text_TateAndLizaDefeat, MossdeepCity_Gym_Text_TateAndLizaNeedTwoMons, MossdeepCity_Gym_EventScript_TateAndLizaDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq MossdeepCity_Gym_EventScript_TateAndLizaRematch + goto_if_eq VAR_RESULT, TRUE, MossdeepCity_Gym_EventScript_TateAndLizaRematch goto_if_unset FLAG_RECEIVED_TM04, MossdeepCity_Gym_EventScript_GiveCalmMind2 msgbox MossdeepCity_Gym_Text_TateAndLizaPostBattle, MSGBOX_DEFAULT release @@ -92,8 +91,7 @@ MossdeepCity_Gym_EventScript_TateAndLizaDefeated:: MossdeepCity_Gym_EventScript_GiveCalmMind2:: giveitem ITEM_TM04 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull msgbox MossdeepCity_Gym_Text_ExplainCalmMind, MSGBOX_DEFAULT setflag FLAG_RECEIVED_TM04 release @@ -101,8 +99,7 @@ MossdeepCity_Gym_EventScript_GiveCalmMind2:: MossdeepCity_Gym_EventScript_GiveCalmMind:: giveitem ITEM_TM04 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_BagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_BagIsFull msgbox MossdeepCity_Gym_Text_ExplainCalmMind, MSGBOX_DEFAULT setflag FLAG_RECEIVED_TM04 return @@ -119,8 +116,8 @@ MossdeepCity_Gym_EventScript_Switch1:: setflag FLAG_MOSSDEEP_GYM_SWITCH_1 applymovement OBJ_EVENT_ID_PLAYER, MossdeepCity_Gym_Movement_WaitAfterSwitchUse waitmovement 0 - setmetatile 5, 5, METATILE_RS_MossdeepGym_RedArrow_Right, 0 - setmetatile 2, 7, METATILE_RS_MossdeepGym_Switch_Down, 1 + setmetatile 5, 5, METATILE_RS_MossdeepGym_RedArrow_Right, FALSE + setmetatile 2, 7, METATILE_RS_MossdeepGym_Switch_Down, TRUE goto MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed end @@ -134,8 +131,8 @@ MossdeepCity_Gym_EventScript_ClearSwitch1:: clearflag FLAG_MOSSDEEP_GYM_SWITCH_1 applymovement OBJ_EVENT_ID_PLAYER, MossdeepCity_Gym_Movement_WaitAfterSwitchUse waitmovement 0 - setmetatile 5, 5, METATILE_RS_MossdeepGym_RedArrow_Left, 0 - setmetatile 2, 7, METATILE_RS_MossdeepGym_Switch_Up, 1 + setmetatile 5, 5, METATILE_RS_MossdeepGym_RedArrow_Left, FALSE + setmetatile 2, 7, METATILE_RS_MossdeepGym_Switch_Up, TRUE goto MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed end @@ -145,8 +142,8 @@ MossdeepCity_Gym_EventScript_Switch2:: setflag FLAG_MOSSDEEP_GYM_SWITCH_2 applymovement OBJ_EVENT_ID_PLAYER, MossdeepCity_Gym_Movement_WaitAfterSwitchUse waitmovement 0 - setmetatile 8, 14, METATILE_RS_MossdeepGym_RedArrow_Right, 0 - setmetatile 8, 10, METATILE_RS_MossdeepGym_Switch_Down, 1 + setmetatile 8, 14, METATILE_RS_MossdeepGym_RedArrow_Right, FALSE + setmetatile 8, 10, METATILE_RS_MossdeepGym_Switch_Down, TRUE goto MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed end @@ -154,8 +151,8 @@ MossdeepCity_Gym_EventScript_ClearSwitch2:: clearflag FLAG_MOSSDEEP_GYM_SWITCH_2 applymovement OBJ_EVENT_ID_PLAYER, MossdeepCity_Gym_Movement_WaitAfterSwitchUse waitmovement 0 - setmetatile 8, 14, METATILE_RS_MossdeepGym_RedArrow_Down, 0 - setmetatile 8, 10, METATILE_RS_MossdeepGym_Switch_Up, 1 + setmetatile 8, 14, METATILE_RS_MossdeepGym_RedArrow_Down, FALSE + setmetatile 8, 10, METATILE_RS_MossdeepGym_Switch_Up, TRUE goto MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed end @@ -165,8 +162,8 @@ MossdeepCity_Gym_EventScript_Switch3:: setflag FLAG_MOSSDEEP_GYM_SWITCH_3 applymovement OBJ_EVENT_ID_PLAYER, MossdeepCity_Gym_Movement_WaitAfterSwitchUse waitmovement 0 - setmetatile 15, 17, METATILE_RS_MossdeepGym_RedArrow_Left, 0 - setmetatile 17, 15, METATILE_RS_MossdeepGym_Switch_Down, 1 + setmetatile 15, 17, METATILE_RS_MossdeepGym_RedArrow_Left, FALSE + setmetatile 17, 15, METATILE_RS_MossdeepGym_Switch_Down, TRUE goto MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed end @@ -174,8 +171,8 @@ MossdeepCity_Gym_EventScript_ClearSwitch3:: clearflag FLAG_MOSSDEEP_GYM_SWITCH_3 applymovement OBJ_EVENT_ID_PLAYER, MossdeepCity_Gym_Movement_WaitAfterSwitchUse waitmovement 0 - setmetatile 15, 17, METATILE_RS_MossdeepGym_RedArrow_Right, 0 - setmetatile 17, 15, METATILE_RS_MossdeepGym_Switch_Up, 1 + setmetatile 15, 17, METATILE_RS_MossdeepGym_RedArrow_Right, FALSE + setmetatile 17, 15, METATILE_RS_MossdeepGym_Switch_Up, TRUE goto MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed end @@ -185,8 +182,8 @@ MossdeepCity_Gym_EventScript_Switch4:: setflag FLAG_MOSSDEEP_GYM_SWITCH_4 applymovement OBJ_EVENT_ID_PLAYER, MossdeepCity_Gym_Movement_WaitAfterSwitchUse waitmovement 0 - setmetatile 1, 23, METATILE_RS_MossdeepGym_RedArrow_Up, 0 - setmetatile 5, 24, METATILE_RS_MossdeepGym_Switch_Down, 1 + setmetatile 1, 23, METATILE_RS_MossdeepGym_RedArrow_Up, FALSE + setmetatile 5, 24, METATILE_RS_MossdeepGym_Switch_Down, TRUE goto MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed end @@ -194,14 +191,14 @@ MossdeepCity_Gym_EventScript_ClearSwitch4:: clearflag FLAG_MOSSDEEP_GYM_SWITCH_4 applymovement OBJ_EVENT_ID_PLAYER, MossdeepCity_Gym_Movement_WaitAfterSwitchUse waitmovement 0 - setmetatile 1, 23, METATILE_RS_MossdeepGym_RedArrow_Right, 0 - setmetatile 5, 24, METATILE_RS_MossdeepGym_Switch_Up, 1 + setmetatile 1, 23, METATILE_RS_MossdeepGym_RedArrow_Right, FALSE + setmetatile 5, 24, METATILE_RS_MossdeepGym_Switch_Up, TRUE goto MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed end MossdeepCity_Gym_EventScript_WarpToEntrance:: lockall - warpmossdeepgym MAP_MOSSDEEP_CITY_GYM, 255, 7, 30 + warpmossdeepgym MAP_MOSSDEEP_CITY_GYM, 7, 30 waitstate releaseall end diff --git a/data/maps/MossdeepCity_House1/scripts.inc b/data/maps/MossdeepCity_House1/scripts.inc index 99224a795e..433defa666 100644 --- a/data/maps/MossdeepCity_House1/scripts.inc +++ b/data/maps/MossdeepCity_House1/scripts.inc @@ -4,11 +4,10 @@ MossdeepCity_House1_MapScripts:: MossdeepCity_House1_EventScript_BlackBelt:: lock faceplayer - bufferleadmonspeciesname 0 + bufferleadmonspeciesname STR_VAR_1 msgbox MossdeepCity_House1_Text_HmmYourPokemon, MSGBOX_DEFAULT specialvar VAR_RESULT, GetPokeblockNameByMonNature - compare VAR_RESULT, 0 - goto_if_eq MossdeepCity_House1_EventScript_NeutralNature + goto_if_eq VAR_RESULT, 0, MossdeepCity_House1_EventScript_NeutralNature msgbox MossdeepCity_House1_Text_ItLikesXPokeblocks, MSGBOX_DEFAULT release end diff --git a/data/maps/MossdeepCity_House2/scripts.inc b/data/maps/MossdeepCity_House2/scripts.inc index 5f568ac772..56a8381963 100644 --- a/data/maps/MossdeepCity_House2/scripts.inc +++ b/data/maps/MossdeepCity_House2/scripts.inc @@ -21,10 +21,8 @@ MossdeepCity_House2_EventScript_Wingull:: closemessage setflag FLAG_WINGULL_DELIVERED_MAIL clearflag FLAG_HIDE_FORTREE_CITY_HOUSE_4_WINGULL - compare VAR_FACING, DIR_NORTH - call_if_eq MossdeepCity_House2_EventScript_WingullExitNorth - compare VAR_FACING, DIR_WEST - call_if_eq MossdeepCity_House2_EventScript_WingullExitWest + call_if_eq VAR_FACING, DIR_NORTH, MossdeepCity_House2_EventScript_WingullExitNorth + call_if_eq VAR_FACING, DIR_WEST, MossdeepCity_House2_EventScript_WingullExitWest removeobject LOCALID_WINGULL release end diff --git a/data/maps/MossdeepCity_House3/scripts.inc b/data/maps/MossdeepCity_House3/scripts.inc index 51df05fe04..73b0cc26e9 100644 --- a/data/maps/MossdeepCity_House3/scripts.inc +++ b/data/maps/MossdeepCity_House3/scripts.inc @@ -6,8 +6,7 @@ MossdeepCity_House3_EventScript_SuperRodFisherman:: faceplayer goto_if_set FLAG_RECEIVED_SUPER_ROD, MossdeepCity_House3_EventScript_ReceivedSuperRod msgbox MossdeepCity_House3_Text_YouWantSuperRod, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MossdeepCity_House3_EventScript_DeclineSuperRod + goto_if_eq VAR_RESULT, NO, MossdeepCity_House3_EventScript_DeclineSuperRod msgbox MossdeepCity_House3_Text_SuperRodIsSuper, MSGBOX_DEFAULT giveitem ITEM_SUPER_ROD setflag FLAG_RECEIVED_SUPER_ROD diff --git a/data/maps/MossdeepCity_House4/scripts.inc b/data/maps/MossdeepCity_House4/scripts.inc index 7b7348f4e6..8d0046857a 100644 --- a/data/maps/MossdeepCity_House4/scripts.inc +++ b/data/maps/MossdeepCity_House4/scripts.inc @@ -18,8 +18,7 @@ MossdeepCity_House4_EventScript_NinjaBoy:: lock faceplayer special CheckPlayerHasSecretBase - compare VAR_RESULT, FALSE - goto_if_eq MossdeepCity_House4_EventScript_NoSecretBase + goto_if_eq VAR_RESULT, FALSE, MossdeepCity_House4_EventScript_NoSecretBase special GetSecretBaseNearbyMapName msgbox MossdeepCity_House4_Text_YouMadeSecretBaseNearX, MSGBOX_DEFAULT release diff --git a/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc index b44b343a65..263b071056 100644 --- a/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc @@ -11,8 +11,7 @@ MossdeepCity_SpaceCenter_1F_MapScripts:: .byte 0 MossdeepCity_SpaceCenter_1F_OnTransition: - compare VAR_MOSSDEEP_CITY_STATE, 2 - goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_MoveObjectsForTeamMagma + goto_if_eq VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_MoveObjectsForTeamMagma end MossdeepCity_SpaceCenter_1F_EventScript_MoveObjectsForTeamMagma:: @@ -25,12 +24,9 @@ MossdeepCity_SpaceCenter_1F_EventScript_MoveObjectsForTeamMagma:: setobjectxyperm LOCALID_SCIENTIST_1, 3, 4 setobjectmovementtype LOCALID_SCIENTIST_1, MOVEMENT_TYPE_FACE_RIGHT setobjectmovementtype LOCALID_SCIENTIST_2, MOVEMENT_TYPE_FACE_RIGHT - compare VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE, 1 - goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardLeft - compare VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE, 2 - goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardDown - compare VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE, 3 - goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardRight + goto_if_eq VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE, 1, MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardLeft + goto_if_eq VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardDown + goto_if_eq VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE, 3, MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardRight end MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardLeft:: @@ -47,26 +43,22 @@ MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardRight:: end MossdeepCity_SpaceCenter_1F_OnLoad: - compare VAR_MOSSDEEP_CITY_STATE, 2 - goto_if_le MossdeepCity_SpaceCenter_1F_EventScript_SetMagmaNote + goto_if_le VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_SetMagmaNote end MossdeepCity_SpaceCenter_1F_EventScript_SetMagmaNote:: - setmetatile 2, 5, METATILE_Facility_DataPad, 1 + setmetatile 2, 5, METATILE_Facility_DataPad, TRUE return MossdeepCity_SpaceCenter_1F_EventScript_RocketLaunchCounter:: lock faceplayer - compare VAR_MOSSDEEP_CITY_STATE, 2 - goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_RocketLaunchCounterMagma + goto_if_eq VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_RocketLaunchCounterMagma dotimebasedevents specialvar VAR_RESULT, GetWeekCount - buffernumberstring 0, VAR_RESULT - compare VAR_RESULT, 0 - call_if_eq MossdeepCity_SpaceCenter_1F_EventScript_NoLaunchesYet - compare VAR_RESULT, 1 - call_if_ge MossdeepCity_SpaceCenter_1F_EventScript_ShowLaunchNumber + buffernumberstring STR_VAR_1, VAR_RESULT + call_if_eq VAR_RESULT, 0, MossdeepCity_SpaceCenter_1F_EventScript_NoLaunchesYet + call_if_ge VAR_RESULT, 1, MossdeepCity_SpaceCenter_1F_EventScript_ShowLaunchNumber closemessage applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection waitmovement 0 @@ -84,11 +76,9 @@ MossdeepCity_SpaceCenter_1F_EventScript_ShowLaunchNumber:: MossdeepCity_SpaceCenter_1F_EventScript_RocketLaunchCounterMagma:: dotimebasedevents specialvar VAR_RESULT, GetWeekCount - buffernumberstring 0, VAR_RESULT - compare VAR_RESULT, 0 - call_if_eq MossdeepCity_SpaceCenter_1F_EventScript_NoLaunchesYetMagma - compare VAR_RESULT, 1 - call_if_ge MossdeepCity_SpaceCenter_1F_EventScript_ShowLaunchNumberMagma + buffernumberstring STR_VAR_1, VAR_RESULT + call_if_eq VAR_RESULT, 0, MossdeepCity_SpaceCenter_1F_EventScript_NoLaunchesYetMagma + call_if_ge VAR_RESULT, 1, MossdeepCity_SpaceCenter_1F_EventScript_ShowLaunchNumberMagma closemessage applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFasterRight waitmovement 0 @@ -106,8 +96,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_ShowLaunchNumberMagma:: MossdeepCity_SpaceCenter_1F_EventScript_Scientist:: lock faceplayer - compare VAR_MOSSDEEP_CITY_STATE, 2 - goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_ScientistMagma + goto_if_eq VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_ScientistMagma msgbox MossdeepCity_SpaceCenter_1F_Text_RocketLaunchDemandsPerfection, MSGBOX_DEFAULT release end @@ -122,13 +111,11 @@ MossdeepCity_SpaceCenter_1F_EventScript_ScientistMagma:: MossdeepCity_SpaceCenter_1F_EventScript_SunStoneMan:: lock faceplayer - compare VAR_MOSSDEEP_CITY_STATE, 2 - goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_SunStoneManMagma + goto_if_eq VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_SunStoneManMagma goto_if_set FLAG_RECEIVED_SUN_STONE_MOSSDEEP, MossdeepCity_SpaceCenter_1F_EventScript_GaveSunStone msgbox MossdeepCity_SpaceCenter_1F_Text_FoundThisYouCanHaveIt, MSGBOX_DEFAULT giveitem ITEM_SUN_STONE - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_SUN_STONE_MOSSDEEP msgbox MossdeepCity_SpaceCenter_1F_Text_HoennFamousForMeteorShowers, MSGBOX_DEFAULT release @@ -143,8 +130,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_SunStoneManMagma:: goto_if_set FLAG_RECEIVED_SUN_STONE_MOSSDEEP, MossdeepCity_SpaceCenter_1F_EventScript_GaveSunStoneMagma msgbox MossdeepCity_SpaceCenter_1F_Text_MagmaCantStealFuelTakeThis, MSGBOX_DEFAULT giveitem ITEM_SUN_STONE - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_SUN_STONE_MOSSDEEP msgbox MossdeepCity_SpaceCenter_1F_Text_CantStrollOnBeachWithMagma, MSGBOX_DEFAULT applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFasterRight @@ -163,10 +149,8 @@ MossdeepCity_SpaceCenter_1F_EventScript_Woman:: lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_1F_EventScript_WomanNormal - compare VAR_MOSSDEEP_CITY_STATE, 2 - goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_WomanMagma - compare VAR_MOSSDEEP_CITY_STATE, 2 - goto_if_lt MossdeepCity_SpaceCenter_1F_EventScript_WomanNormal + goto_if_eq VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_WomanMagma + goto_if_lt VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_WomanNormal goto MossdeepCity_SpaceCenter_1F_EventScript_WomanMagma end @@ -184,10 +168,8 @@ MossdeepCity_SpaceCenter_1F_EventScript_OldMan:: lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_1F_EventScript_OldManNormal - compare VAR_MOSSDEEP_CITY_STATE, 2 - goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_OldManMagma - compare VAR_MOSSDEEP_CITY_STATE, 2 - goto_if_lt MossdeepCity_SpaceCenter_1F_EventScript_OldManNormal + goto_if_eq VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_OldManMagma + goto_if_lt VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_OldManNormal goto MossdeepCity_SpaceCenter_1F_EventScript_OldManMagma end diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc index 044979c123..4a22bf8eea 100644 --- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc @@ -15,10 +15,8 @@ MossdeepCity_SpaceCenter_2F_MapScripts:: .byte 0 MossdeepCity_SpaceCenter_2F_OnTransition: - compare VAR_MOSSDEEP_CITY_STATE, 2 - call_if_eq MossdeepCity_SpaceCenter_2F_EventScript_MoveCivilians - compare VAR_MOSSDEEP_SPACE_CENTER_STATE, 2 - call_if_eq MossdeepCity_SpaceCenter_2F_EventScript_MoveDefeatedGrunts + call_if_eq VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_2F_EventScript_MoveCivilians + call_if_eq VAR_MOSSDEEP_SPACE_CENTER_STATE, 2, MossdeepCity_SpaceCenter_2F_EventScript_MoveDefeatedGrunts end MossdeepCity_SpaceCenter_2F_EventScript_MoveCivilians:: @@ -48,13 +46,12 @@ MossdeepCity_SpaceCenter_2F_EventScript_ThreeMagmaGrunts:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_Delay48 waitmovement 0 msgbox MossdeepCity_SpaceCenter_2F_Text_YoureOutnumberedTakeUsOn, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq MossdeepCity_SpaceCenter_2F_EventScript_BattleThreeMagmaGrunts + goto_if_eq VAR_RESULT, YES, MossdeepCity_SpaceCenter_2F_EventScript_BattleThreeMagmaGrunts msgbox MossdeepCity_SpaceCenter_2F_Text_GoodAnswer, MSGBOX_DEFAULT closemessage applymovement OBJ_EVENT_ID_PLAYER, MossdeepCity_SpaceCenter_2F_Movement_PlayerExit waitmovement 0 - warp MAP_MOSSDEEP_CITY_SPACE_CENTER_1F, 255, 13, 1 + warp MAP_MOSSDEEP_CITY_SPACE_CENTER_1F, 13, 1 waitstate releaseall end @@ -109,10 +106,8 @@ MossdeepCity_SpaceCenter_2F_EventScript_Scientist:: lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_2F_EventScript_ScientistNormal - compare VAR_MOSSDEEP_CITY_STATE, 2 - goto_if_eq MossdeepCity_SpaceCenter_2F_EventScript_ScientistMagma - compare VAR_MOSSDEEP_CITY_STATE, 2 - goto_if_lt MossdeepCity_SpaceCenter_2F_EventScript_ScientistNormal + goto_if_eq VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_2F_EventScript_ScientistMagma + goto_if_lt VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_2F_EventScript_ScientistNormal goto MossdeepCity_SpaceCenter_2F_EventScript_ScientistMagma end @@ -130,10 +125,8 @@ MossdeepCity_SpaceCenter_2F_EventScript_Gentleman:: lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_2F_EventScript_GentlemanNormal - compare VAR_MOSSDEEP_CITY_STATE, 2 - goto_if_eq MossdeepCity_SpaceCenter_2F_EventScript_GentlemanMagma - compare VAR_MOSSDEEP_CITY_STATE, 2 - goto_if_lt MossdeepCity_SpaceCenter_2F_EventScript_GentlemanNormal + goto_if_eq VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_2F_EventScript_GentlemanMagma + goto_if_lt VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_2F_EventScript_GentlemanNormal goto MossdeepCity_SpaceCenter_2F_EventScript_GentlemanMagma end @@ -151,10 +144,8 @@ MossdeepCity_SpaceCenter_2F_EventScript_RichBoy:: lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_2F_EventScript_RichBoyNormal - compare VAR_MOSSDEEP_CITY_STATE, 2 - goto_if_eq MossdeepCity_SpaceCenter_2F_EventScript_RichBoyMagma - compare VAR_MOSSDEEP_CITY_STATE, 2 - goto_if_lt MossdeepCity_SpaceCenter_2F_EventScript_RichBoyNormal + goto_if_eq VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_2F_EventScript_RichBoyMagma + goto_if_lt VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_2F_EventScript_RichBoyNormal goto MossdeepCity_SpaceCenter_2F_EventScript_RichBoyMagma end @@ -246,8 +237,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_ReadyForBattlePrompt:: applymovement VAR_LAST_TALKED, Common_Movement_FacePlayer waitmovement 0 msgbox MossdeepCity_SpaceCenter_2F_Text_StevenAreYouReadyToBattle, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq MossdeepCity_SpaceCenter_2F_EventScript_ChoosePartyForMultiBattle + goto_if_eq VAR_RESULT, YES, MossdeepCity_SpaceCenter_2F_EventScript_ChoosePartyForMultiBattle msgbox MossdeepCity_SpaceCenter_2F_Text_StevenHurryGetReadyQuickly, MSGBOX_DEFAULT closemessage applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFasterDown @@ -262,8 +252,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_ChoosePartyForMultiBattle:: fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate - compare VAR_RESULT, 0 - goto_if_ne MossdeepCity_SpaceCenter_2F_EventScript_DoStevenMultiBattle + goto_if_ne VAR_RESULT, 0, MossdeepCity_SpaceCenter_2F_EventScript_DoStevenMultiBattle special LoadPlayerParty goto MossdeepCity_SpaceCenter_2F_EventScript_ReadyForBattlePrompt @@ -358,10 +347,8 @@ MossdeepCity_SpaceCenter_2F_EventScript_TabithaTrainer:: MossdeepCity_SpaceCenter_2F_EventScript_RivalRayquazaCall:: lockall checkplayergender - compare VAR_RESULT, MALE - call_if_eq MossdeepCity_SpaceCenter_2F_EventScript_MayRayquazaCall - compare VAR_RESULT, FEMALE - call_if_eq MossdeepCity_SpaceCenter_2F_EventScript_BrendanRayquazaCall + call_if_eq VAR_RESULT, MALE, MossdeepCity_SpaceCenter_2F_EventScript_MayRayquazaCall + call_if_eq VAR_RESULT, FEMALE, MossdeepCity_SpaceCenter_2F_EventScript_BrendanRayquazaCall closemessage clearflag FLAG_DEFEATED_MAGMA_SPACE_CENTER releaseall diff --git a/data/maps/MossdeepCity_StevensHouse/scripts.inc b/data/maps/MossdeepCity_StevensHouse/scripts.inc index 22b26f3927..0470e977a6 100644 --- a/data/maps/MossdeepCity_StevensHouse/scripts.inc +++ b/data/maps/MossdeepCity_StevensHouse/scripts.inc @@ -12,12 +12,11 @@ MossdeepCity_StevensHouse_OnLoad: end MossdeepCity_StevensHouse_EventScript_HideStevensNote:: - setmetatile 6, 4, METATILE_GenericBuilding_TableEdge, 1 + setmetatile 6, 4, METATILE_GenericBuilding_TableEdge, TRUE return MossdeepCity_StevensHouse_OnTransition: - compare VAR_STEVENS_HOUSE_STATE, 2 - call_if_eq MossdeepCity_StevensHouse_EventScript_SetStevenPos + call_if_eq VAR_STEVENS_HOUSE_STATE, 2, MossdeepCity_StevensHouse_EventScript_SetStevenPos end MossdeepCity_StevensHouse_EventScript_SetStevenPos:: @@ -76,8 +75,7 @@ MossdeepCity_StevensHouse_Movement_StevenReturn: MossdeepCity_StevensHouse_EventScript_BeldumPokeball:: lockall msgbox MossdeepCity_StevensHouse_Text_TakeBallContainingBeldum, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MossdeepCity_StevensHouse_EventScript_LeaveBeldum + goto_if_eq VAR_RESULT, NO, MossdeepCity_StevensHouse_EventScript_LeaveBeldum goto MossdeepCity_StevensHouse_EventScript_GiveBeldum end @@ -88,19 +86,16 @@ MossdeepCity_StevensHouse_EventScript_LeaveBeldum:: MossdeepCity_StevensHouse_EventScript_GiveBeldum:: setvar VAR_TEMP_1, SPECIES_BELDUM - givemon SPECIES_BELDUM, 5, ITEM_NONE - compare VAR_RESULT, 0 - goto_if_eq MossdeepCity_StevensHouse_EventScript_SendBeldumParty - compare VAR_RESULT, 1 - goto_if_eq MossdeepCity_StevensHouse_EventScript_SendBeldumPC + givemon SPECIES_BELDUM, 5 + goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, MossdeepCity_StevensHouse_EventScript_SendBeldumParty + goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, MossdeepCity_StevensHouse_EventScript_SendBeldumPC goto Common_EventScript_NoMoreRoomForPokemon end MossdeepCity_StevensHouse_EventScript_SendBeldumParty:: call MossdeepCity_StevensHouse_EventScript_ReceivedBeldumFanfare msgbox gText_NicknameThisPokemon, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MossdeepCity_StevensHouse_EventScript_ReceivedBeldum + goto_if_eq VAR_RESULT, NO, MossdeepCity_StevensHouse_EventScript_ReceivedBeldum call Common_EventScript_GetGiftMonPartySlot call Common_EventScript_NameReceivedPartyMon goto MossdeepCity_StevensHouse_EventScript_ReceivedBeldum @@ -109,8 +104,7 @@ MossdeepCity_StevensHouse_EventScript_SendBeldumParty:: MossdeepCity_StevensHouse_EventScript_SendBeldumPC:: call MossdeepCity_StevensHouse_EventScript_ReceivedBeldumFanfare msgbox gText_NicknameThisPokemon, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MossdeepCity_StevensHouse_EventScript_BeldumTransferredToPC + goto_if_eq VAR_RESULT, NO, MossdeepCity_StevensHouse_EventScript_BeldumTransferredToPC call Common_EventScript_NameReceivedBoxMon goto MossdeepCity_StevensHouse_EventScript_BeldumTransferredToPC end @@ -121,13 +115,13 @@ MossdeepCity_StevensHouse_EventScript_BeldumTransferredToPC:: end MossdeepCity_StevensHouse_EventScript_ReceivedBeldumFanfare:: - bufferspeciesname 1, SPECIES_BELDUM + bufferspeciesname STR_VAR_2, SPECIES_BELDUM removeobject LOCALID_BELDUM_BALL playfanfare MUS_OBTAIN_ITEM message MossdeepCity_StevensHouse_Text_ObtainedBeldum waitmessage waitfanfare - bufferspeciesname 0, SPECIES_BELDUM + bufferspeciesname STR_VAR_1, SPECIES_BELDUM return MossdeepCity_StevensHouse_EventScript_ReceivedBeldum:: diff --git a/data/maps/MtChimney/scripts.inc b/data/maps/MtChimney/scripts.inc index 320e2dc194..1931633258 100644 --- a/data/maps/MtChimney/scripts.inc +++ b/data/maps/MtChimney/scripts.inc @@ -63,18 +63,14 @@ MtChimney_EventScript_Maxie:: fadescreen FADE_FROM_BLACK setobjectxyperm LOCALID_ARCHIE, 10, 12 addobject LOCALID_ARCHIE - compare VAR_FACING, DIR_EAST - call_if_eq MtChimney_EventScript_ArchieApproachPlayerEast - compare VAR_FACING, DIR_NORTH - call_if_eq MtChimney_EventScript_ArchieApproachPlayerNorth + call_if_eq VAR_FACING, DIR_EAST, MtChimney_EventScript_ArchieApproachPlayerEast + call_if_eq VAR_FACING, DIR_NORTH, MtChimney_EventScript_ArchieApproachPlayerNorth applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 msgbox MtChimney_Text_ArchieThankYou, MSGBOX_DEFAULT closemessage - compare VAR_FACING, DIR_EAST - call_if_eq MtChimney_EventScript_ArchieExitEast - compare VAR_FACING, DIR_NORTH - call_if_eq MtChimney_EventScript_ArchieExitNorth + call_if_eq VAR_FACING, DIR_EAST, MtChimney_EventScript_ArchieExitEast + call_if_eq VAR_FACING, DIR_NORTH, MtChimney_EventScript_ArchieExitNorth removeobject LOCALID_ARCHIE setflag FLAG_HIDE_MT_CHIMNEY_TEAM_AQUA setflag FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY @@ -107,20 +103,16 @@ MtChimney_EventScript_ArchieExitNorth:: MtChimney_EventScript_LavaCookieLady:: lock faceplayer - showmoneybox 0, 0, 0 + showmoneybox 0, 0 msgbox MtChimney_Text_LavaCookiesJust200, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MtChimney_EventScript_DeclineLavaCookie - checkmoney 200, 0 - compare VAR_RESULT, FALSE - goto_if_eq MtChimney_EventScript_NotEnoughMoney + goto_if_eq VAR_RESULT, NO, MtChimney_EventScript_DeclineLavaCookie + checkmoney 200 + goto_if_eq VAR_RESULT, FALSE, MtChimney_EventScript_NotEnoughMoney msgbox MtChimney_Text_ThankYouDear, MSGBOX_DEFAULT - checkitemspace ITEM_LAVA_COOKIE, 1 - compare VAR_RESULT, TRUE - call_if_eq MtChimney_EventScript_RemoveMoney + checkitemspace ITEM_LAVA_COOKIE + call_if_eq VAR_RESULT, TRUE, MtChimney_EventScript_RemoveMoney giveitem ITEM_LAVA_COOKIE - compare VAR_RESULT, FALSE - goto_if_eq MtChimney_EventScript_BagIsFull + goto_if_eq VAR_RESULT, FALSE, MtChimney_EventScript_BagIsFull hidemoneybox release end @@ -132,8 +124,8 @@ MtChimney_EventScript_BagIsFull:: end MtChimney_EventScript_RemoveMoney:: - removemoney 200, 0 - updatemoneybox 0, 0 + removemoney 200 + updatemoneybox return MtChimney_EventScript_DeclineLavaCookie:: @@ -453,8 +445,7 @@ MtChimney_EventScript_MeteoriteMachine:: goto_if_unset FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, MtChimney_EventScript_MachineOn goto_if_set FLAG_RECEIVED_METEORITE, MtChimney_EventScript_MachineOff msgbox MtChimney_Text_RemoveTheMeteorite, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MtChimney_EventScript_LeaveMeteoriteAlone + goto_if_eq VAR_RESULT, NO, MtChimney_EventScript_LeaveMeteoriteAlone msgbox MtChimney_Text_PlayerRemovedMeteorite, MSGBOX_DEFAULT giveitem ITEM_METEORITE setflag FLAG_RECEIVED_METEORITE @@ -483,8 +474,7 @@ MtChimney_EventScript_RouteSign:: MtChimney_EventScript_Shelby:: trainerbattle_single TRAINER_SHELBY_1, MtChimney_Text_ShelbyIntro, MtChimney_Text_ShelbyDefeat, MtChimney_EventScript_DefeatedShelby specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq MtChimney_EventScript_RematchShelby + goto_if_eq VAR_RESULT, TRUE, MtChimney_EventScript_RematchShelby msgbox MtChimney_Text_ShelbyPostBattle, MSGBOX_DEFAULT release end @@ -525,8 +515,7 @@ MtChimney_EventScript_Grunt1:: MtChimney_EventScript_Sawyer:: trainerbattle_single TRAINER_SAWYER_1, MtChimney_Text_SawyerIntro, MtChimney_Text_SawyerDefeat, MtChimney_EventScript_SawyerDefeated specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq MtChimney_EventScript_SawyerRematch + goto_if_eq VAR_RESULT, TRUE, MtChimney_EventScript_SawyerRematch msgbox MtChimney_Text_SawyerPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/MtChimney_CableCarStation/scripts.inc b/data/maps/MtChimney_CableCarStation/scripts.inc index a3a2b360e0..b3e36a496a 100644 --- a/data/maps/MtChimney_CableCarStation/scripts.inc +++ b/data/maps/MtChimney_CableCarStation/scripts.inc @@ -6,8 +6,7 @@ MtChimney_CableCarStation_MapScripts:: .byte 0 MtChimney_CableCarStation_OnTransition: - compare VAR_CABLE_CAR_STATION_STATE, 1 - call_if_eq MtChimney_CableCarStation_EventScript_MoveAttendantAside + call_if_eq VAR_CABLE_CAR_STATION_STATE, 1, MtChimney_CableCarStation_EventScript_MoveAttendantAside end MtChimney_CableCarStation_EventScript_MoveAttendantAside:: @@ -34,10 +33,8 @@ MtChimney_CableCarStation_EventScript_Attendant:: lock faceplayer msgbox MtChimney_CableCarStation_Text_CableCarReadyGetOn, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq MtChimney_CableCarStation_EventScript_RideCableCar - compare VAR_RESULT, NO - goto_if_eq MtChimney_CableCarStation_EventScript_DeclineRide + goto_if_eq VAR_RESULT, YES, MtChimney_CableCarStation_EventScript_RideCableCar + goto_if_eq VAR_RESULT, NO, MtChimney_CableCarStation_EventScript_DeclineRide end MtChimney_CableCarStation_EventScript_RideCableCar:: diff --git a/data/maps/MtPyre_1F/scripts.inc b/data/maps/MtPyre_1F/scripts.inc index 1354b2ac1b..f97149b050 100644 --- a/data/maps/MtPyre_1F/scripts.inc +++ b/data/maps/MtPyre_1F/scripts.inc @@ -7,8 +7,7 @@ MtPyre_1F_EventScript_CleanseTagWoman:: goto_if_set FLAG_RECEIVED_CLEANSE_TAG, MtPyre_1F_EventScript_ReceivedCleanseTag msgbox MtPyre_1F_Text_TakeThisForYourOwnGood, MSGBOX_DEFAULT giveitem ITEM_CLEANSE_TAG - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_CLEANSE_TAG release end diff --git a/data/maps/MtPyre_2F/scripts.inc b/data/maps/MtPyre_2F/scripts.inc index 9fe7bf9d2f..381d034596 100644 --- a/data/maps/MtPyre_2F/scripts.inc +++ b/data/maps/MtPyre_2F/scripts.inc @@ -6,7 +6,7 @@ MtPyre_2F_MapScripts:: MtPyre_2F_SetHoleWarp: setstepcallback STEP_CB_CRACKED_FLOOR - setholewarp MAP_MT_PYRE_1F, 255, 0, 0 + setholewarp MAP_MT_PYRE_1F end MtPyre_2F_EventScript_Woman:: diff --git a/data/maps/MtPyre_3F/scripts.inc b/data/maps/MtPyre_3F/scripts.inc index b91a589bc0..3c79e807a4 100644 --- a/data/maps/MtPyre_3F/scripts.inc +++ b/data/maps/MtPyre_3F/scripts.inc @@ -7,15 +7,14 @@ MtPyre_3F_EventScript_William:: end MtPyre_3F_EventScript_Kayla:: - trainerbattle_single TRAINER_KAYLA, MtPyre_3F_Text_KaylaIntro MtPyre_3F_Text_KaylaDefeat + trainerbattle_single TRAINER_KAYLA, MtPyre_3F_Text_KaylaIntro, MtPyre_3F_Text_KaylaDefeat msgbox MtPyre_3F_Text_KaylaPostBattle, MSGBOX_AUTOCLOSE end MtPyre_3F_EventScript_Gabrielle:: trainerbattle_single TRAINER_GABRIELLE_1, MtPyre_3F_Text_GabrielleIntro, MtPyre_3F_Text_GabrielleDefeat, MtPyre_3F_EventScript_RegisterGabrielle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq MtPyre_3F_EventScript_RematchGabrielle + goto_if_eq VAR_RESULT, TRUE, MtPyre_3F_EventScript_RematchGabrielle msgbox MtPyre_3F_Text_GabriellePostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/MtPyre_6F/scripts.inc b/data/maps/MtPyre_6F/scripts.inc index 4b7df8e7cf..4de3f6e8b1 100644 --- a/data/maps/MtPyre_6F/scripts.inc +++ b/data/maps/MtPyre_6F/scripts.inc @@ -4,8 +4,7 @@ MtPyre_6F_MapScripts:: MtPyre_6F_EventScript_Valerie:: trainerbattle_single TRAINER_VALERIE_1, MtPyre_6F_Text_ValerieIntro, MtPyre_6F_Text_ValerieDefeat, MtPyre_6F_EventScript_RegisterValerie specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq MtPyre_6F_EventScript_RematchValerie + goto_if_eq VAR_RESULT, TRUE, MtPyre_6F_EventScript_RematchValerie msgbox MtPyre_6F_Text_ValeriePostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/MtPyre_Exterior/scripts.inc b/data/maps/MtPyre_Exterior/scripts.inc index 01279d645c..83bced7359 100644 --- a/data/maps/MtPyre_Exterior/scripts.inc +++ b/data/maps/MtPyre_Exterior/scripts.inc @@ -8,8 +8,7 @@ MtPyre_Exterior_OnTransition: MtPyre_Exterior_EventScript_CheckEnterFromSummit:: getplayerxy VAR_TEMP_0, VAR_TEMP_1 - compare VAR_TEMP_1, 12 - goto_if_lt MtPyre_Exterior_EventScript_EnterFromSummit + goto_if_lt VAR_TEMP_1, 12, MtPyre_Exterior_EventScript_EnterFromSummit return MtPyre_Exterior_EventScript_EnterFromSummit:: diff --git a/data/maps/MtPyre_Summit/scripts.inc b/data/maps/MtPyre_Summit/scripts.inc index cd58627aff..3de60df3f2 100644 --- a/data/maps/MtPyre_Summit/scripts.inc +++ b/data/maps/MtPyre_Summit/scripts.inc @@ -11,8 +11,7 @@ MtPyre_Summit_MapScripts:: .byte 0 MtPyre_Summit_OnTransition: - compare VAR_MT_PYRE_STATE, 2 - call_if_eq MtPyre_Summit_EventScript_SetArchieMaxiePositions + call_if_eq VAR_MT_PYRE_STATE, 2, MtPyre_Summit_EventScript_SetArchieMaxiePositions end MtPyre_Summit_EventScript_SetArchieMaxiePositions:: @@ -45,12 +44,9 @@ MtPyre_Summit_EventScript_TeamAquaExits:: applymovement LOCALID_ARCHIE, Common_Movement_WalkInPlaceFasterDown waitmovement 0 delay 50 - compare VAR_0x8008, 0 - call_if_eq MtPyre_Summit_EventScript_ArchieFacePlayer0 - compare VAR_0x8008, 1 - call_if_eq MtPyre_Summit_EventScript_ArchieFacePlayer1 - compare VAR_0x8008, 2 - call_if_eq MtPyre_Summit_EventScript_ArchieFacePlayer2 + call_if_eq VAR_0x8008, 0, MtPyre_Summit_EventScript_ArchieFacePlayer0 + call_if_eq VAR_0x8008, 1, MtPyre_Summit_EventScript_ArchieFacePlayer1 + call_if_eq VAR_0x8008, 2, MtPyre_Summit_EventScript_ArchieFacePlayer2 msgbox MtPyre_Summit_Text_ArchieWeGotTheOrbLetsGo, MSGBOX_DEFAULT closemessage fadescreen FADE_TO_BLACK @@ -65,12 +61,9 @@ MtPyre_Summit_EventScript_TeamAquaExits:: fadescreen FADE_FROM_BLACK delay 20 setvar VAR_MT_PYRE_STATE, 1 - compare VAR_0x8008, 0 - call_if_eq MtPyre_Summit_EventScript_OldLadyApproachPlayer0 - compare VAR_0x8008, 1 - call_if_eq MtPyre_Summit_EventScript_OldLadyApproachPlayer1 - compare VAR_0x8008, 2 - call_if_eq MtPyre_Summit_EventScript_OldLadyApproachPlayer2 + call_if_eq VAR_0x8008, 0, MtPyre_Summit_EventScript_OldLadyApproachPlayer0 + call_if_eq VAR_0x8008, 1, MtPyre_Summit_EventScript_OldLadyApproachPlayer1 + call_if_eq VAR_0x8008, 2, MtPyre_Summit_EventScript_OldLadyApproachPlayer2 msgbox MtPyre_Summit_Text_BothOrbsTakenMagmaLeftThis, MSGBOX_DEFAULT giveitem ITEM_MAGMA_EMBLEM setflag FLAG_RECEIVED_RED_OR_BLUE_ORB @@ -142,19 +135,15 @@ MtPyre_Summit_EventScript_OldMan:: faceplayer goto_if_set FLAG_SOOTOPOLIS_ARCHIE_MAXIE_LEAVE, MtPyre_Summit_EventScript_OldManAfterRayquaza msgbox MtPyre_Summit_Text_WillYouHearOutMyTale, MSGBOX_YESNO - compare VAR_RESULT, YES - call_if_eq MtPyre_Summit_EventScript_OldManTale - compare VAR_RESULT, NO - call_if_eq MtPyre_Summit_EventScript_DeclineOldManTale + call_if_eq VAR_RESULT, YES, MtPyre_Summit_EventScript_OldManTale + call_if_eq VAR_RESULT, NO, MtPyre_Summit_EventScript_DeclineOldManTale release end MtPyre_Summit_EventScript_OldManAfterRayquaza:: msgbox MtPyre_Summit_Text_HearTheNewLegendOfHoenn, MSGBOX_YESNO - compare VAR_RESULT, YES - call_if_eq MtPyre_Summit_EventScript_OldManNewTale - compare VAR_RESULT, NO - call_if_eq MtPyre_Summit_EventScript_DeclineOldManTale + call_if_eq VAR_RESULT, YES, MtPyre_Summit_EventScript_OldManNewTale + call_if_eq VAR_RESULT, NO, MtPyre_Summit_EventScript_DeclineOldManTale release end @@ -174,8 +163,7 @@ MtPyre_Summit_EventScript_OldLady:: lock faceplayer goto_if_set FLAG_RETURNED_RED_OR_BLUE_ORB, MtPyre_Summit_EventScript_OldLadyAfterOrbsReturned - compare VAR_MT_PYRE_STATE, 3 - call_if_ge MtPyre_Summit_EventScript_OldLadyOrbsReturned + call_if_ge VAR_MT_PYRE_STATE, 3, MtPyre_Summit_EventScript_OldLadyOrbsReturned goto_if_set FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, MtPyre_Summit_EventScript_OldLadyLegendariesAwake msgbox MtPyre_Summit_Text_OrbsHaveBeenTaken, MSGBOX_DEFAULT release @@ -219,32 +207,23 @@ MtPyre_Summit_EventScript_ArchieMaxieReturnOrbs:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 delay 60 - compare VAR_0x8008, 0 - call_if_eq MtPyre_Summit_EventScript_ArchieMaxieBeginExit0 - compare VAR_0x8008, 1 - call_if_eq MtPyre_Summit_EventScript_ArchieMaxieBeginExit1 - compare VAR_0x8008, 2 - call_if_eq MtPyre_Summit_EventScript_ArchieMaxieBeginExit2 + call_if_eq VAR_0x8008, 0, MtPyre_Summit_EventScript_ArchieMaxieBeginExit0 + call_if_eq VAR_0x8008, 1, MtPyre_Summit_EventScript_ArchieMaxieBeginExit1 + call_if_eq VAR_0x8008, 2, MtPyre_Summit_EventScript_ArchieMaxieBeginExit2 playse SE_PIN applymovement LOCALID_MAXIE, Common_Movement_ExclamationMark waitmovement 0 applymovement LOCALID_MAXIE, Common_Movement_Delay48 waitmovement 0 delay 30 - compare VAR_0x8008, 0 - call_if_eq MtPyre_Summit_EventScript_MaxieApproachPlayer0 - compare VAR_0x8008, 1 - call_if_eq MtPyre_Summit_EventScript_MaxieApproachPlayer1 - compare VAR_0x8008, 2 - call_if_eq MtPyre_Summit_EventScript_MaxieApproachPlayer2 + call_if_eq VAR_0x8008, 0, MtPyre_Summit_EventScript_MaxieApproachPlayer0 + call_if_eq VAR_0x8008, 1, MtPyre_Summit_EventScript_MaxieApproachPlayer1 + call_if_eq VAR_0x8008, 2, MtPyre_Summit_EventScript_MaxieApproachPlayer2 msgbox MtPyre_Summit_Text_MaxieSilence, MSGBOX_DEFAULT closemessage - compare VAR_0x8008, 0 - call_if_eq MtPyre_Summit_EventScript_MaxieApproachArchie0 - compare VAR_0x8008, 1 - call_if_eq MtPyre_Summit_EventScript_MaxieApproachArchie1 - compare VAR_0x8008, 2 - call_if_eq MtPyre_Summit_EventScript_MaxieApproachArchie2 + call_if_eq VAR_0x8008, 0, MtPyre_Summit_EventScript_MaxieApproachArchie0 + call_if_eq VAR_0x8008, 1, MtPyre_Summit_EventScript_MaxieApproachArchie1 + call_if_eq VAR_0x8008, 2, MtPyre_Summit_EventScript_MaxieApproachArchie2 delay 30 applymovement LOCALID_ARCHIE, MtPyre_Summit_Movement_ArchieExit applymovement LOCALID_MAXIE, MtPyre_Summit_Movement_MaxieExit diff --git a/data/maps/NavelRock_Bottom/scripts.inc b/data/maps/NavelRock_Bottom/scripts.inc index d79c00c687..90cc229895 100644 --- a/data/maps/NavelRock_Bottom/scripts.inc +++ b/data/maps/NavelRock_Bottom/scripts.inc @@ -25,8 +25,7 @@ NavelRock_Bottom_OnResume: NavelRock_Bottom_EventScript_TryRemoveLugia:: specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_CAUGHT - goto_if_ne Common_EventScript_NopReturn + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn removeobject LOCALID_LUGIA return @@ -54,21 +53,15 @@ NavelRock_Bottom_EventScript_Lugia:: playmoncry SPECIES_LUGIA, CRY_MODE_ENCOUNTER waitmoncry delay 20 - setvar VAR_0x8004, SPECIES_LUGIA - setvar VAR_0x8005, 70 @ level - setvar VAR_0x8006, ITEM_NONE - special CreateEventLegalEnemyMon + seteventmon SPECIES_LUGIA, 70 setflag FLAG_SYS_CTRL_OBJ_DELETE special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq NavelRock_Bottom_EventScript_DefeatedLugia - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq NavelRock_Bottom_EventScript_RanFromLugia - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq NavelRock_Bottom_EventScript_RanFromLugia + goto_if_eq VAR_RESULT, B_OUTCOME_WON, NavelRock_Bottom_EventScript_DefeatedLugia + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, NavelRock_Bottom_EventScript_RanFromLugia + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, NavelRock_Bottom_EventScript_RanFromLugia setflag FLAG_CAUGHT_LUGIA release end diff --git a/data/maps/NavelRock_Harbor/scripts.inc b/data/maps/NavelRock_Harbor/scripts.inc index b12e62248f..a981759175 100644 --- a/data/maps/NavelRock_Harbor/scripts.inc +++ b/data/maps/NavelRock_Harbor/scripts.inc @@ -8,8 +8,7 @@ NavelRock_Harbor_EventScript_Sailor:: lock faceplayer msgbox NavelRock_Harbor_Text_SailorReturn, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq NavelRock_Harbor_EventScript_AsYouLike + goto_if_eq VAR_RESULT, NO, NavelRock_Harbor_EventScript_AsYouLike msgbox EventTicket_Text_SailHome, MSGBOX_DEFAULT closemessage applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFasterDown @@ -18,7 +17,7 @@ NavelRock_Harbor_EventScript_Sailor:: hideobjectat LOCALID_SAILOR, MAP_NAVEL_ROCK_HARBOR setvar VAR_0x8004, LOCALID_SS_TIDAL call Common_EventScript_FerryDepartIsland - warp MAP_LILYCOVE_CITY_HARBOR, 255, 8, 11 + warp MAP_LILYCOVE_CITY_HARBOR, 8, 11 waitstate release end diff --git a/data/maps/NavelRock_Top/scripts.inc b/data/maps/NavelRock_Top/scripts.inc index e8b3e7e296..10969367a1 100644 --- a/data/maps/NavelRock_Top/scripts.inc +++ b/data/maps/NavelRock_Top/scripts.inc @@ -28,8 +28,7 @@ NavelRock_Top_OnResume: NavelRock_Top_EventScript_TryRemoveHoOh:: specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_CAUGHT - goto_if_ne Common_EventScript_NopReturn + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn removeobject LOCALID_HO_OH return @@ -58,22 +57,16 @@ NavelRock_Top_EventScript_HoOh:: applymovement LOCALID_HO_OH, NavelRock_Top_Movement_HoOhApproach waitmovement 0 special RemoveCameraObject - setvar VAR_0x8004, SPECIES_HO_OH - setvar VAR_0x8005, 70 @ level - setvar VAR_0x8006, ITEM_NONE - special CreateEventLegalEnemyMon + seteventmon SPECIES_HO_OH, 70 setflag FLAG_SYS_CTRL_OBJ_DELETE special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE setvar VAR_LAST_TALKED, LOCALID_HO_OH specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq NavelRock_Top_EventScript_DefeatedHoOh - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq NavelRock_Top_EventScript_RanFromHoOh - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq NavelRock_Top_EventScript_RanFromHoOh + goto_if_eq VAR_RESULT, B_OUTCOME_WON, NavelRock_Top_EventScript_DefeatedHoOh + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, NavelRock_Top_EventScript_RanFromHoOh + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, NavelRock_Top_EventScript_RanFromHoOh setflag FLAG_CAUGHT_HO_OH releaseall end diff --git a/data/maps/NewMauville_Entrance/scripts.inc b/data/maps/NewMauville_Entrance/scripts.inc index 0a98d4ba62..4c498190e0 100644 --- a/data/maps/NewMauville_Entrance/scripts.inc +++ b/data/maps/NewMauville_Entrance/scripts.inc @@ -4,17 +4,16 @@ NewMauville_Entrance_MapScripts:: .byte 0 NewMauville_Entrance_OnLoad: - compare VAR_NEW_MAUVILLE_STATE, 0 - call_if_eq NewMauville_Entrance_EventScript_CloseDoor + call_if_eq VAR_NEW_MAUVILLE_STATE, 0, NewMauville_Entrance_EventScript_CloseDoor end NewMauville_Entrance_EventScript_CloseDoor:: - setmetatile 3, 0, METATILE_Facility_NewMauvilleDoor_Closed_Tile0, 1 - setmetatile 4, 0, METATILE_Facility_NewMauvilleDoor_Closed_Tile1, 1 - setmetatile 5, 0, METATILE_Facility_NewMauvilleDoor_Closed_Tile2, 1 - setmetatile 3, 1, METATILE_Facility_NewMauvilleDoor_Closed_Tile3, 1 - setmetatile 4, 1, METATILE_Facility_NewMauvilleDoor_Closed_Tile4, 1 - setmetatile 5, 1, METATILE_Facility_NewMauvilleDoor_Closed_Tile5, 1 + setmetatile 3, 0, METATILE_Facility_NewMauvilleDoor_Closed_Tile0, TRUE + setmetatile 4, 0, METATILE_Facility_NewMauvilleDoor_Closed_Tile1, TRUE + setmetatile 5, 0, METATILE_Facility_NewMauvilleDoor_Closed_Tile2, TRUE + setmetatile 3, 1, METATILE_Facility_NewMauvilleDoor_Closed_Tile3, TRUE + setmetatile 4, 1, METATILE_Facility_NewMauvilleDoor_Closed_Tile4, TRUE + setmetatile 5, 1, METATILE_Facility_NewMauvilleDoor_Closed_Tile5, TRUE return NewMauville_Entrance_OnTransition: @@ -26,19 +25,17 @@ NewMauville_Entrance_EventScript_Door:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 msgbox NewMauville_Entrance_Text_DoorIsLocked, MSGBOX_DEFAULT - checkitem ITEM_BASEMENT_KEY, 1 - compare VAR_RESULT, FALSE - goto_if_eq NewMauville_Entrance_EventScript_DontOpenDoor + checkitem ITEM_BASEMENT_KEY + goto_if_eq VAR_RESULT, FALSE, NewMauville_Entrance_EventScript_DontOpenDoor msgbox NewMauville_Entrance_Text_UseBasementKey, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq NewMauville_Entrance_EventScript_DontOpenDoor + goto_if_eq VAR_RESULT, NO, NewMauville_Entrance_EventScript_DontOpenDoor msgbox NewMauville_Entrance_Text_UsedBasementKey, MSGBOX_DEFAULT - setmetatile 3, 0, METATILE_Facility_NewMauvilleDoor_Open_Tile0, 0 - setmetatile 4, 0, METATILE_Facility_NewMauvilleDoor_Open_Tile1, 0 - setmetatile 5, 0, METATILE_Facility_NewMauvilleDoor_Open_Tile2, 0 - setmetatile 3, 1, METATILE_Facility_NewMauvilleDoor_Open_Tile3, 1 - setmetatile 4, 1, METATILE_Facility_NewMauvilleDoor_Open_Tile4, 0 - setmetatile 5, 1, METATILE_Facility_NewMauvilleDoor_Open_Tile5, 1 + setmetatile 3, 0, METATILE_Facility_NewMauvilleDoor_Open_Tile0, FALSE + setmetatile 4, 0, METATILE_Facility_NewMauvilleDoor_Open_Tile1, FALSE + setmetatile 5, 0, METATILE_Facility_NewMauvilleDoor_Open_Tile2, FALSE + setmetatile 3, 1, METATILE_Facility_NewMauvilleDoor_Open_Tile3, TRUE + setmetatile 4, 1, METATILE_Facility_NewMauvilleDoor_Open_Tile4, FALSE + setmetatile 5, 1, METATILE_Facility_NewMauvilleDoor_Open_Tile5, TRUE special DrawWholeMapView playse SE_BANG setvar VAR_NEW_MAUVILLE_STATE, 1 diff --git a/data/maps/NewMauville_Inside/scripts.inc b/data/maps/NewMauville_Inside/scripts.inc index d924651cef..244eea436f 100644 --- a/data/maps/NewMauville_Inside/scripts.inc +++ b/data/maps/NewMauville_Inside/scripts.inc @@ -5,17 +5,14 @@ NewMauville_Inside_MapScripts:: .byte 0 NewMauville_Inside_OnResume: - compare VAR_TEMP_1, 1 - call_if_eq NewMauville_Inside_EventScript_SetBarrierStateBlueButton - compare VAR_TEMP_2, 1 - call_if_eq NewMauville_Inside_EventScript_SetBarrierStateGreenButton + call_if_eq VAR_TEMP_1, 1, NewMauville_Inside_EventScript_SetBarrierStateBlueButton + call_if_eq VAR_TEMP_2, 1, NewMauville_Inside_EventScript_SetBarrierStateGreenButton call_if_set FLAG_SYS_CTRL_OBJ_DELETE, NewMauville_Inside_EventScript_TryRemoveVoltorb end NewMauville_Inside_EventScript_TryRemoveVoltorb:: specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_CAUGHT - goto_if_ne Common_EventScript_NopReturn + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return @@ -40,8 +37,7 @@ NewMauville_Inside_EventScript_ShowVoltorb3:: return NewMauville_Inside_OnLoad: - compare VAR_NEW_MAUVILLE_STATE, 2 - call_if_eq NewMauville_Inside_EventScript_SetGeneratorOffMetatiles + call_if_eq VAR_NEW_MAUVILLE_STATE, 2, NewMauville_Inside_EventScript_SetGeneratorOffMetatiles end NewMauville_Inside_EventScript_BlueButton:: @@ -65,83 +61,83 @@ NewMauville_Inside_EventScript_GreenButton:: end NewMauville_Inside_EventScript_SetBarrierStateBlueButton:: - setmetatile 23, 34, METATILE_BikeShop_Barrier_Hidden_Top, 1 - setmetatile 23, 35, METATILE_BikeShop_Barrier_Hidden_Bottom, 1 - setmetatile 23, 36, METATILE_BikeShop_Floor_Shadow_Top, 0 - setmetatile 23, 37, METATILE_BikeShop_Wall_Edge_Top, 0 - setmetatile 10, 16, METATILE_BikeShop_Barrier_Hidden_Top, 1 - setmetatile 10, 17, METATILE_BikeShop_Barrier_Hidden_Bottom, 1 - setmetatile 10, 18, METATILE_BikeShop_Floor_Shadow_Top, 0 - setmetatile 10, 19, METATILE_BikeShop_Wall_Edge_Top, 0 - setmetatile 10, 0, METATILE_BikeShop_Barrier_Hidden_Top, 1 - setmetatile 10, 1, METATILE_BikeShop_Barrier_Hidden_Bottom, 1 - setmetatile 10, 2, METATILE_BikeShop_Floor_Shadow_Top, 0 - setmetatile 10, 3, METATILE_BikeShop_Wall_Edge_Top, 0 - setmetatile 37, 33, METATILE_BikeShop_Barrier_Green_Top, 1 - setmetatile 37, 34, METATILE_BikeShop_Barrier_Green_TopMid, 1 - setmetatile 37, 35, METATILE_BikeShop_Barrier_Green_BottomMid, 1 - setmetatile 37, 36, METATILE_BikeShop_Barrier_Green_Bottom, 1 - setmetatile 28, 22, METATILE_BikeShop_Barrier_Green_Top, 1 - setmetatile 28, 23, METATILE_BikeShop_Barrier_Green_TopMid, 1 - setmetatile 28, 24, METATILE_BikeShop_Barrier_Green_BottomMid, 1 - setmetatile 28, 25, METATILE_BikeShop_Barrier_Green_Bottom, 1 - setmetatile 10, 24, METATILE_BikeShop_Barrier_Green_Top, 1 - setmetatile 10, 25, METATILE_BikeShop_Barrier_Green_TopMid, 1 - setmetatile 10, 26, METATILE_BikeShop_Barrier_Green_BottomMid, 1 - setmetatile 10, 27, METATILE_BikeShop_Barrier_Green_Bottom, 1 - setmetatile 21, 2, METATILE_BikeShop_Barrier_Green_Top, 1 - setmetatile 21, 3, METATILE_BikeShop_Barrier_Green_TopMid, 1 - setmetatile 21, 4, METATILE_BikeShop_Barrier_Green_BottomMid, 1 - setmetatile 21, 5, METATILE_BikeShop_Barrier_Green_Bottom, 1 - setmetatile 6, 11, METATILE_BikeShop_Button_Pressed, 0 - setmetatile 13, 10, METATILE_BikeShop_Button_Pressed, 0 - setmetatile 16, 22, METATILE_BikeShop_Button_Pressed, 0 - setmetatile 4, 26, METATILE_BikeShop_Button_Pressed, 0 - setmetatile 30, 38, METATILE_BikeShop_Button_Pressed, 0 - setmetatile 2, 11, METATILE_BikeShop_Button_Green, 0 - setmetatile 17, 10, METATILE_BikeShop_Button_Green, 0 - setmetatile 25, 18, METATILE_BikeShop_Button_Green, 0 - setmetatile 18, 36, METATILE_BikeShop_Button_Green, 0 + setmetatile 23, 34, METATILE_BikeShop_Barrier_Hidden_Top, TRUE + setmetatile 23, 35, METATILE_BikeShop_Barrier_Hidden_Bottom, TRUE + setmetatile 23, 36, METATILE_BikeShop_Floor_Shadow_Top, FALSE + setmetatile 23, 37, METATILE_BikeShop_Wall_Edge_Top, FALSE + setmetatile 10, 16, METATILE_BikeShop_Barrier_Hidden_Top, TRUE + setmetatile 10, 17, METATILE_BikeShop_Barrier_Hidden_Bottom, TRUE + setmetatile 10, 18, METATILE_BikeShop_Floor_Shadow_Top, FALSE + setmetatile 10, 19, METATILE_BikeShop_Wall_Edge_Top, FALSE + setmetatile 10, 0, METATILE_BikeShop_Barrier_Hidden_Top, TRUE + setmetatile 10, 1, METATILE_BikeShop_Barrier_Hidden_Bottom, TRUE + setmetatile 10, 2, METATILE_BikeShop_Floor_Shadow_Top, FALSE + setmetatile 10, 3, METATILE_BikeShop_Wall_Edge_Top, FALSE + setmetatile 37, 33, METATILE_BikeShop_Barrier_Green_Top, TRUE + setmetatile 37, 34, METATILE_BikeShop_Barrier_Green_TopMid, TRUE + setmetatile 37, 35, METATILE_BikeShop_Barrier_Green_BottomMid, TRUE + setmetatile 37, 36, METATILE_BikeShop_Barrier_Green_Bottom, TRUE + setmetatile 28, 22, METATILE_BikeShop_Barrier_Green_Top, TRUE + setmetatile 28, 23, METATILE_BikeShop_Barrier_Green_TopMid, TRUE + setmetatile 28, 24, METATILE_BikeShop_Barrier_Green_BottomMid, TRUE + setmetatile 28, 25, METATILE_BikeShop_Barrier_Green_Bottom, TRUE + setmetatile 10, 24, METATILE_BikeShop_Barrier_Green_Top, TRUE + setmetatile 10, 25, METATILE_BikeShop_Barrier_Green_TopMid, TRUE + setmetatile 10, 26, METATILE_BikeShop_Barrier_Green_BottomMid, TRUE + setmetatile 10, 27, METATILE_BikeShop_Barrier_Green_Bottom, TRUE + setmetatile 21, 2, METATILE_BikeShop_Barrier_Green_Top, TRUE + setmetatile 21, 3, METATILE_BikeShop_Barrier_Green_TopMid, TRUE + setmetatile 21, 4, METATILE_BikeShop_Barrier_Green_BottomMid, TRUE + setmetatile 21, 5, METATILE_BikeShop_Barrier_Green_Bottom, TRUE + setmetatile 6, 11, METATILE_BikeShop_Button_Pressed, FALSE + setmetatile 13, 10, METATILE_BikeShop_Button_Pressed, FALSE + setmetatile 16, 22, METATILE_BikeShop_Button_Pressed, FALSE + setmetatile 4, 26, METATILE_BikeShop_Button_Pressed, FALSE + setmetatile 30, 38, METATILE_BikeShop_Button_Pressed, FALSE + setmetatile 2, 11, METATILE_BikeShop_Button_Green, FALSE + setmetatile 17, 10, METATILE_BikeShop_Button_Green, FALSE + setmetatile 25, 18, METATILE_BikeShop_Button_Green, FALSE + setmetatile 18, 36, METATILE_BikeShop_Button_Green, FALSE return NewMauville_Inside_EventScript_SetBarrierStateGreenButton:: - setmetatile 23, 34, METATILE_BikeShop_Barrier_Blue_Top, 1 - setmetatile 23, 35, METATILE_BikeShop_Barrier_Blue_TopMid, 1 - setmetatile 23, 36, METATILE_BikeShop_Barrier_Blue_BottomMid, 1 - setmetatile 23, 37, METATILE_BikeShop_Barrier_Blue_Bottom, 1 - setmetatile 10, 16, METATILE_BikeShop_Barrier_Blue_Top, 1 - setmetatile 10, 17, METATILE_BikeShop_Barrier_Blue_TopMid, 1 - setmetatile 10, 18, METATILE_BikeShop_Barrier_Blue_BottomMid, 1 - setmetatile 10, 19, METATILE_BikeShop_Barrier_Blue_Bottom, 1 - setmetatile 10, 0, METATILE_BikeShop_Barrier_Blue_Top, 1 - setmetatile 10, 1, METATILE_BikeShop_Barrier_Blue_TopMid, 1 - setmetatile 10, 2, METATILE_BikeShop_Barrier_Blue_BottomMid, 1 - setmetatile 10, 3, METATILE_BikeShop_Barrier_Blue_Bottom, 1 - setmetatile 37, 33, METATILE_BikeShop_Barrier_Hidden_Top, 1 - setmetatile 37, 34, METATILE_BikeShop_Barrier_Hidden_Bottom, 1 - setmetatile 37, 35, METATILE_BikeShop_Floor_Shadow_Top, 0 - setmetatile 37, 36, METATILE_BikeShop_Wall_Edge_Top, 0 - setmetatile 28, 22, METATILE_BikeShop_Barrier_Hidden_Top, 1 - setmetatile 28, 23, METATILE_BikeShop_Barrier_Hidden_Bottom, 1 - setmetatile 28, 24, METATILE_BikeShop_Floor_Shadow_Top, 0 - setmetatile 28, 25, METATILE_BikeShop_Wall_Edge_Top, 0 - setmetatile 10, 24, METATILE_BikeShop_Barrier_Hidden_Top, 1 - setmetatile 10, 25, METATILE_BikeShop_Barrier_Hidden_Bottom, 1 - setmetatile 10, 26, METATILE_BikeShop_Floor_Shadow_Top, 0 - setmetatile 10, 27, METATILE_BikeShop_Wall_Edge_Top, 0 - setmetatile 21, 2, METATILE_BikeShop_Barrier_Hidden_Top, 1 - setmetatile 21, 3, METATILE_BikeShop_Barrier_Hidden_Bottom, 1 - setmetatile 21, 4, METATILE_BikeShop_Floor_Shadow_Top, 0 - setmetatile 21, 5, METATILE_BikeShop_Wall_Edge_Top, 0 - setmetatile 2, 11, METATILE_BikeShop_Button_Pressed, 0 - setmetatile 17, 10, METATILE_BikeShop_Button_Pressed, 0 - setmetatile 25, 18, METATILE_BikeShop_Button_Pressed, 0 - setmetatile 18, 36, METATILE_BikeShop_Button_Pressed, 0 - setmetatile 6, 11, METATILE_BikeShop_Button_Blue, 0 - setmetatile 13, 10, METATILE_BikeShop_Button_Blue, 0 - setmetatile 16, 22, METATILE_BikeShop_Button_Blue, 0 - setmetatile 4, 26, METATILE_BikeShop_Button_Blue, 0 - setmetatile 30, 38, METATILE_BikeShop_Button_Blue, 0 + setmetatile 23, 34, METATILE_BikeShop_Barrier_Blue_Top, TRUE + setmetatile 23, 35, METATILE_BikeShop_Barrier_Blue_TopMid, TRUE + setmetatile 23, 36, METATILE_BikeShop_Barrier_Blue_BottomMid, TRUE + setmetatile 23, 37, METATILE_BikeShop_Barrier_Blue_Bottom, TRUE + setmetatile 10, 16, METATILE_BikeShop_Barrier_Blue_Top, TRUE + setmetatile 10, 17, METATILE_BikeShop_Barrier_Blue_TopMid, TRUE + setmetatile 10, 18, METATILE_BikeShop_Barrier_Blue_BottomMid, TRUE + setmetatile 10, 19, METATILE_BikeShop_Barrier_Blue_Bottom, TRUE + setmetatile 10, 0, METATILE_BikeShop_Barrier_Blue_Top, TRUE + setmetatile 10, 1, METATILE_BikeShop_Barrier_Blue_TopMid, TRUE + setmetatile 10, 2, METATILE_BikeShop_Barrier_Blue_BottomMid, TRUE + setmetatile 10, 3, METATILE_BikeShop_Barrier_Blue_Bottom, TRUE + setmetatile 37, 33, METATILE_BikeShop_Barrier_Hidden_Top, TRUE + setmetatile 37, 34, METATILE_BikeShop_Barrier_Hidden_Bottom, TRUE + setmetatile 37, 35, METATILE_BikeShop_Floor_Shadow_Top, FALSE + setmetatile 37, 36, METATILE_BikeShop_Wall_Edge_Top, FALSE + setmetatile 28, 22, METATILE_BikeShop_Barrier_Hidden_Top, TRUE + setmetatile 28, 23, METATILE_BikeShop_Barrier_Hidden_Bottom, TRUE + setmetatile 28, 24, METATILE_BikeShop_Floor_Shadow_Top, FALSE + setmetatile 28, 25, METATILE_BikeShop_Wall_Edge_Top, FALSE + setmetatile 10, 24, METATILE_BikeShop_Barrier_Hidden_Top, TRUE + setmetatile 10, 25, METATILE_BikeShop_Barrier_Hidden_Bottom, TRUE + setmetatile 10, 26, METATILE_BikeShop_Floor_Shadow_Top, FALSE + setmetatile 10, 27, METATILE_BikeShop_Wall_Edge_Top, FALSE + setmetatile 21, 2, METATILE_BikeShop_Barrier_Hidden_Top, TRUE + setmetatile 21, 3, METATILE_BikeShop_Barrier_Hidden_Bottom, TRUE + setmetatile 21, 4, METATILE_BikeShop_Floor_Shadow_Top, FALSE + setmetatile 21, 5, METATILE_BikeShop_Wall_Edge_Top, FALSE + setmetatile 2, 11, METATILE_BikeShop_Button_Pressed, FALSE + setmetatile 17, 10, METATILE_BikeShop_Button_Pressed, FALSE + setmetatile 25, 18, METATILE_BikeShop_Button_Pressed, FALSE + setmetatile 18, 36, METATILE_BikeShop_Button_Pressed, FALSE + setmetatile 6, 11, METATILE_BikeShop_Button_Blue, FALSE + setmetatile 13, 10, METATILE_BikeShop_Button_Blue, FALSE + setmetatile 16, 22, METATILE_BikeShop_Button_Blue, FALSE + setmetatile 4, 26, METATILE_BikeShop_Button_Blue, FALSE + setmetatile 30, 38, METATILE_BikeShop_Button_Blue, FALSE return NewMauville_Inside_EventScript_RedButton:: @@ -153,22 +149,21 @@ NewMauville_Inside_EventScript_RedButton:: end NewMauville_Inside_EventScript_SetGeneratorOffMetatiles:: - setmetatile 33, 6, METATILE_BikeShop_Button_Pressed, 0 - setmetatile 32, 2, METATILE_BikeShop_Generator_Off_Tile0, 1 - setmetatile 33, 2, METATILE_BikeShop_Generator_Off_Tile1, 1 - setmetatile 34, 2, METATILE_BikeShop_Generator_Off_Tile2, 1 - setmetatile 35, 2, METATILE_BikeShop_Generator_Off_Tile3, 1 - setmetatile 32, 3, METATILE_BikeShop_Generator_Off_Tile4, 1 - setmetatile 33, 3, METATILE_BikeShop_Generator_Off_Tile5, 1 - setmetatile 34, 3, METATILE_BikeShop_Generator_Off_Tile6, 1 - setmetatile 35, 3, METATILE_BikeShop_Generator_Off_Tile7, 1 + setmetatile 33, 6, METATILE_BikeShop_Button_Pressed, FALSE + setmetatile 32, 2, METATILE_BikeShop_Generator_Off_Tile0, TRUE + setmetatile 33, 2, METATILE_BikeShop_Generator_Off_Tile1, TRUE + setmetatile 34, 2, METATILE_BikeShop_Generator_Off_Tile2, TRUE + setmetatile 35, 2, METATILE_BikeShop_Generator_Off_Tile3, TRUE + setmetatile 32, 3, METATILE_BikeShop_Generator_Off_Tile4, TRUE + setmetatile 33, 3, METATILE_BikeShop_Generator_Off_Tile5, TRUE + setmetatile 34, 3, METATILE_BikeShop_Generator_Off_Tile6, TRUE + setmetatile 35, 3, METATILE_BikeShop_Generator_Off_Tile7, TRUE special DrawWholeMapView return NewMauville_Inside_EventScript_Generator:: lockall - compare VAR_NEW_MAUVILLE_STATE, 2 - goto_if_eq NewMauville_Inside_EventScript_GeneratorOff + goto_if_eq VAR_NEW_MAUVILLE_STATE, 2, NewMauville_Inside_EventScript_GeneratorOff msgbox NewMauville_Inside_Text_GeneratorRadiatingHeat, MSGBOX_DEFAULT releaseall end @@ -181,7 +176,7 @@ NewMauville_Inside_EventScript_GeneratorOff:: NewMauville_Inside_EventScript_Voltorb1:: lock faceplayer - setwildbattle SPECIES_VOLTORB, 25, ITEM_NONE + setwildbattle SPECIES_VOLTORB, 25 waitse playmoncry SPECIES_VOLTORB, CRY_MODE_ENCOUNTER delay 40 @@ -190,12 +185,9 @@ NewMauville_Inside_EventScript_Voltorb1:: dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq NewMauville_Inside_EventScript_DefeatedVoltorb1 - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq NewMauville_Inside_EventScript_DefeatedVoltorb1 - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq NewMauville_Inside_EventScript_DefeatedVoltorb1 + goto_if_eq VAR_RESULT, B_OUTCOME_WON, NewMauville_Inside_EventScript_DefeatedVoltorb1 + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, NewMauville_Inside_EventScript_DefeatedVoltorb1 + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, NewMauville_Inside_EventScript_DefeatedVoltorb1 setflag FLAG_DEFEATED_VOLTORB_1_NEW_MAUVILLE release end @@ -208,7 +200,7 @@ NewMauville_Inside_EventScript_DefeatedVoltorb1:: NewMauville_Inside_EventScript_Voltorb2:: lock faceplayer - setwildbattle SPECIES_VOLTORB, 25, ITEM_NONE + setwildbattle SPECIES_VOLTORB, 25 waitse playmoncry SPECIES_VOLTORB, CRY_MODE_ENCOUNTER delay 40 @@ -217,12 +209,9 @@ NewMauville_Inside_EventScript_Voltorb2:: dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq NewMauville_Inside_EventScript_DefeatedVoltorb2 - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq NewMauville_Inside_EventScript_DefeatedVoltorb2 - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq NewMauville_Inside_EventScript_DefeatedVoltorb2 + goto_if_eq VAR_RESULT, B_OUTCOME_WON, NewMauville_Inside_EventScript_DefeatedVoltorb2 + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, NewMauville_Inside_EventScript_DefeatedVoltorb2 + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, NewMauville_Inside_EventScript_DefeatedVoltorb2 setflag FLAG_DEFEATED_VOLTORB_2_NEW_MAUVILLE release end @@ -235,7 +224,7 @@ NewMauville_Inside_EventScript_DefeatedVoltorb2:: NewMauville_Inside_EventScript_Voltorb3:: lock faceplayer - setwildbattle SPECIES_VOLTORB, 25, ITEM_NONE + setwildbattle SPECIES_VOLTORB, 25 waitse playmoncry SPECIES_VOLTORB, CRY_MODE_ENCOUNTER delay 40 @@ -244,12 +233,9 @@ NewMauville_Inside_EventScript_Voltorb3:: dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq NewMauville_Inside_EventScript_DefeatedVoltorb3 - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq NewMauville_Inside_EventScript_DefeatedVoltorb3 - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq NewMauville_Inside_EventScript_DefeatedVoltorb3 + goto_if_eq VAR_RESULT, B_OUTCOME_WON, NewMauville_Inside_EventScript_DefeatedVoltorb3 + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, NewMauville_Inside_EventScript_DefeatedVoltorb3 + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, NewMauville_Inside_EventScript_DefeatedVoltorb3 setflag FLAG_DEFEATED_VOLTORB_3_NEW_MAUVILLE release end diff --git a/data/maps/OldaleTown/scripts.inc b/data/maps/OldaleTown/scripts.inc index 7d4ce4389e..3f43386cb3 100644 --- a/data/maps/OldaleTown/scripts.inc +++ b/data/maps/OldaleTown/scripts.inc @@ -76,8 +76,7 @@ OldaleTown_EventScript_GoToMartEast:: OldaleTown_EventScript_ExplainPokemonMart:: msgbox OldaleTown_Text_ThisIsAPokemonMart, MSGBOX_DEFAULT giveitem ITEM_POTION - compare VAR_RESULT, FALSE - goto_if_eq OldaleTown_EventScript_BagIsFull + goto_if_eq VAR_RESULT, FALSE, OldaleTown_EventScript_BagIsFull msgbox OldaleTown_Text_PotionExplanation, MSGBOX_DEFAULT setflag FLAG_RECEIVED_POTION_OLDALE fadedefaultbgm @@ -260,10 +259,8 @@ OldaleTown_EventScript_RivalTrigger3:: OldaleTown_EventScript_ShowRivalMessage:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq OldaleTown_EventScript_ShowMayMessage - compare VAR_RESULT, FEMALE - goto_if_eq OldaleTown_EventScript_ShowBrendanMessage + goto_if_eq VAR_RESULT, MALE, OldaleTown_EventScript_ShowMayMessage + goto_if_eq VAR_RESULT, FEMALE, OldaleTown_EventScript_ShowBrendanMessage end OldaleTown_EventScript_ShowMayMessage:: @@ -278,10 +275,8 @@ OldaleTown_EventScript_ShowBrendanMessage:: OldaleTown_EventScript_RivalFinish:: closemessage - compare VAR_0x8009, 0 - call_if_eq OldaleTown_EventScript_DoExitMovement1 - compare VAR_0x8009, 1 - call_if_eq OldaleTown_EventScript_DoExitMovement2 + call_if_eq VAR_0x8009, 0, OldaleTown_EventScript_DoExitMovement1 + call_if_eq VAR_0x8009, 1, OldaleTown_EventScript_DoExitMovement2 applymovement LOCALID_RIVAL, OldaleTown_Movement_RivalExit waitmovement 0 removeobject LOCALID_RIVAL @@ -291,8 +286,7 @@ OldaleTown_EventScript_RivalFinish:: end OldaleTown_EventScript_DoExitMovement1:: - compare VAR_FACING, DIR_SOUTH - goto_if_ne OldaleTown_EventScript_DoExitMovement2 + goto_if_ne VAR_FACING, DIR_SOUTH, OldaleTown_EventScript_DoExitMovement2 applymovement LOCALID_RIVAL, OldaleTown_Movement_RivalExit waitmovement 0 return diff --git a/data/maps/PacifidlogTown_House2/scripts.inc b/data/maps/PacifidlogTown_House2/scripts.inc index 27f966e961..3dedcec30f 100644 --- a/data/maps/PacifidlogTown_House2/scripts.inc +++ b/data/maps/PacifidlogTown_House2/scripts.inc @@ -11,19 +11,16 @@ PacifidlogTown_House2_EventScript_FanClubYoungerBrother:: call_if_unset FLAG_MET_FANCLUB_YOUNGER_BROTHER, PacifidlogTown_House2_EventScript_FirstMonAssessment setflag FLAG_MET_FANCLUB_YOUNGER_BROTHER specialvar VAR_RESULT, GetLeadMonFriendshipScore - compare VAR_RESULT, 4 - goto_if_ge PacifidlogTown_House2_EventScript_GiveReturn + goto_if_ge VAR_RESULT, 4, PacifidlogTown_House2_EventScript_GiveReturn specialvar VAR_RESULT, GetLeadMonFriendshipScore - compare VAR_RESULT, 2 - goto_if_ge PacifidlogTown_House2_EventScript_PutInEffort + goto_if_ge VAR_RESULT, 2, PacifidlogTown_House2_EventScript_PutInEffort goto PacifidlogTown_House2_EventScript_GiveFrustration end PacifidlogTown_House2_EventScript_UpdateFanClubTMFlag:: goto_if_unset FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK, Common_EventScript_NopReturn specialvar VAR_RESULT, GetDaysUntilPacifidlogTMAvailable - compare VAR_RESULT, 0 - call_if_eq PacifidlogTown_House2_EventScript_ClearReceivedFanClubTM + call_if_eq VAR_RESULT, 0, PacifidlogTown_House2_EventScript_ClearReceivedFanClubTM return PacifidlogTown_House2_EventScript_MonAssessment:: @@ -42,8 +39,7 @@ PacifidlogTown_House2_EventScript_ClearReceivedFanClubTM:: PacifidlogTown_House2_EventScript_GiveReturn:: msgbox PacifidlogTown_House2_Text_AdoringPokemonTakeThis, MSGBOX_DEFAULT giveitem ITEM_TM27 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK special SetPacifidlogTMReceivedDay msgbox PacifidlogTown_House2_Text_ExplainReturnFrustration, MSGBOX_DEFAULT @@ -58,8 +54,7 @@ PacifidlogTown_House2_EventScript_PutInEffort:: PacifidlogTown_House2_EventScript_GiveFrustration:: msgbox PacifidlogTown_House2_Text_ViciousPokemonTakeThis, MSGBOX_DEFAULT giveitem ITEM_TM21 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK special SetPacifidlogTMReceivedDay msgbox PacifidlogTown_House2_Text_ExplainReturnFrustration, MSGBOX_DEFAULT @@ -68,7 +63,7 @@ PacifidlogTown_House2_EventScript_GiveFrustration:: PacifidlogTown_House2_EventScript_ComeBackInXDays:: specialvar VAR_RESULT, GetDaysUntilPacifidlogTMAvailable - buffernumberstring 0, VAR_RESULT + buffernumberstring STR_VAR_1, VAR_RESULT msgbox PacifidlogTown_House2_Text_GetGoodTMInXDays, MSGBOX_DEFAULT release end diff --git a/data/maps/PacifidlogTown_House3/scripts.inc b/data/maps/PacifidlogTown_House3/scripts.inc index c53ef05196..5582f3b6b9 100644 --- a/data/maps/PacifidlogTown_House3/scripts.inc +++ b/data/maps/PacifidlogTown_House3/scripts.inc @@ -10,24 +10,21 @@ PacifidlogTown_House3_EventScript_Trader:: specialvar VAR_RESULT, GetInGameTradeSpeciesInfo copyvar VAR_0x8009, VAR_RESULT msgbox PacifidlogTown_House3_Text_WillingToTradeIt, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq PacifidlogTown_House3_EventScript_DeclineTrade + goto_if_eq VAR_RESULT, NO, PacifidlogTown_House3_EventScript_DeclineTrade special ChoosePartyMon waitstate copyvar VAR_0x800A, VAR_0x8004 - compare VAR_0x8004, 255 - goto_if_eq PacifidlogTown_House3_EventScript_DeclineTrade + goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, PacifidlogTown_House3_EventScript_DeclineTrade copyvar VAR_0x8005, VAR_0x800A specialvar VAR_RESULT, GetTradeSpecies copyvar VAR_0x800B, VAR_RESULT - compare VAR_RESULT, VAR_0x8009 - goto_if_ne PacifidlogTown_House3_EventScript_NotRequestedMon + goto_if_ne VAR_RESULT, VAR_0x8009, PacifidlogTown_House3_EventScript_NotRequestedMon copyvar VAR_0x8004, VAR_0x8008 copyvar VAR_0x8005, VAR_0x800A special CreateInGameTradePokemon special DoInGameTradeScene waitstate - bufferspeciesname 0, VAR_0x8009 + bufferspeciesname STR_VAR_1, VAR_0x8009 msgbox PacifidlogTown_House3_Text_ItsSubtlyDifferentThankYou, MSGBOX_DEFAULT setflag FLAG_PACIFIDLOG_NPC_TRADE_COMPLETED release @@ -39,7 +36,7 @@ PacifidlogTown_House3_EventScript_DeclineTrade:: end PacifidlogTown_House3_EventScript_NotRequestedMon:: - bufferspeciesname 0, VAR_0x8009 + bufferspeciesname STR_VAR_1, VAR_0x8009 msgbox PacifidlogTown_House3_Text_WontAcceptAnyLessThanRealMon, MSGBOX_DEFAULT release end diff --git a/data/maps/PacifidlogTown_House4/scripts.inc b/data/maps/PacifidlogTown_House4/scripts.inc index 12d7197bd1..f17abcd30e 100644 --- a/data/maps/PacifidlogTown_House4/scripts.inc +++ b/data/maps/PacifidlogTown_House4/scripts.inc @@ -13,10 +13,8 @@ PacifidlogTown_House4_EventScript_Boy:: lock faceplayer msgbox PacifidlogTown_House4_Text_WhereDidYouComeFrom, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq PacifidlogTown_House4_EventScript_Yes - compare VAR_RESULT, NO - goto_if_eq PacifidlogTown_House4_EventScript_No + goto_if_eq VAR_RESULT, YES, PacifidlogTown_House4_EventScript_Yes + goto_if_eq VAR_RESULT, NO, PacifidlogTown_House4_EventScript_No end PacifidlogTown_House4_EventScript_Yes:: diff --git a/data/maps/PacifidlogTown_House5/scripts.inc b/data/maps/PacifidlogTown_House5/scripts.inc index 5da4fb9022..474a2663ec 100644 --- a/data/maps/PacifidlogTown_House5/scripts.inc +++ b/data/maps/PacifidlogTown_House5/scripts.inc @@ -5,8 +5,7 @@ PacifidlogTown_House5_EventScript_MirageIslandWatcher:: lock faceplayer specialvar VAR_RESULT, IsMirageIslandPresent - compare VAR_RESULT, TRUE - goto_if_eq PacifidlogTown_House5_EventScript_MirageIslandPresent + goto_if_eq VAR_RESULT, TRUE, PacifidlogTown_House5_EventScript_MirageIslandPresent msgbox PacifidlogTown_House5_Text_CantSeeMirageIslandToday, MSGBOX_DEFAULT release end diff --git a/data/maps/PetalburgCity/scripts.inc b/data/maps/PetalburgCity/scripts.inc index a77939c4de..3609b26226 100644 --- a/data/maps/PetalburgCity/scripts.inc +++ b/data/maps/PetalburgCity/scripts.inc @@ -11,14 +11,10 @@ PetalburgCity_MapScripts:: PetalburgCity_OnTransition: setflag FLAG_VISITED_PETALBURG_CITY - compare VAR_PETALBURG_CITY_STATE, 0 - call_if_eq PetalburgCity_EventScript_MoveGymBoyToWestEntrance - compare VAR_PETALBURG_CITY_STATE, 2 - call_if_eq PetalburgCity_EventScript_DisableMapNameAndMusic - compare VAR_PETALBURG_CITY_STATE, 4 - call_if_eq PetalburgCity_EventScript_DisableMapNameAndMusic - compare VAR_PETALBURG_GYM_STATE, 8 - call_if_eq PetalburgCity_EventScript_SetGymDoorsUnlocked + call_if_eq VAR_PETALBURG_CITY_STATE, 0, PetalburgCity_EventScript_MoveGymBoyToWestEntrance + call_if_eq VAR_PETALBURG_CITY_STATE, 2, PetalburgCity_EventScript_DisableMapNameAndMusic + call_if_eq VAR_PETALBURG_CITY_STATE, 4, PetalburgCity_EventScript_DisableMapNameAndMusic + call_if_eq VAR_PETALBURG_GYM_STATE, 8, PetalburgCity_EventScript_SetGymDoorsUnlocked end PetalburgCity_EventScript_MoveGymBoyToWestEntrance:: @@ -60,7 +56,7 @@ PetalburgCity_EventScript_WallyTutorial:: clearflag FLAG_DONT_TRANSITION_MUSIC special LoadPlayerParty setvar VAR_PETALBURG_GYM_STATE, 1 - warp MAP_PETALBURG_CITY_GYM, 255, 4, 108 + warp MAP_PETALBURG_CITY_GYM, 4, 108 waitstate releaseall end @@ -85,7 +81,7 @@ PetalburgCity_EventScript_WalkToWallyHouse:: clearflag FLAG_HIDE_MAP_NAME_POPUP fadedefaultbgm clearflag FLAG_DONT_TRANSITION_MUSIC - warp MAP_PETALBURG_CITY_WALLYS_HOUSE, 255, 2, 4 + warp MAP_PETALBURG_CITY_WALLYS_HOUSE, 2, 4 waitstate releaseall end @@ -277,24 +273,16 @@ PetalburgCity_EventScript_ShowGymToPlayer:: waitmovement 0 applymovement LOCALID_GYM_BOY, Common_Movement_Delay48 waitmovement 0 - compare VAR_0x8008, 0 - call_if_eq PetalburgCity_EventScript_BoyApproachPlayer0 - compare VAR_0x8008, 1 - call_if_eq PetalburgCity_EventScript_BoyApproachPlayer1 - compare VAR_0x8008, 2 - call_if_eq PetalburgCity_EventScript_BoyApproachPlayer2 - compare VAR_0x8008, 3 - call_if_eq PetalburgCity_EventScript_BoyApproachPlayer3 + call_if_eq VAR_0x8008, 0, PetalburgCity_EventScript_BoyApproachPlayer0 + call_if_eq VAR_0x8008, 1, PetalburgCity_EventScript_BoyApproachPlayer1 + call_if_eq VAR_0x8008, 2, PetalburgCity_EventScript_BoyApproachPlayer2 + call_if_eq VAR_0x8008, 3, PetalburgCity_EventScript_BoyApproachPlayer3 msgbox PetalburgCity_Text_AreYouRookieTrainer, MSGBOX_DEFAULT closemessage - compare VAR_0x8008, 0 - call_if_eq PetalburgCity_EventScript_LeadPlayerToGym0 - compare VAR_0x8008, 1 - call_if_eq PetalburgCity_EventScript_LeadPlayerToGym1 - compare VAR_0x8008, 2 - call_if_eq PetalburgCity_EventScript_LeadPlayerToGym2 - compare VAR_0x8008, 3 - call_if_eq PetalburgCity_EventScript_LeadPlayerToGym3 + call_if_eq VAR_0x8008, 0, PetalburgCity_EventScript_LeadPlayerToGym0 + call_if_eq VAR_0x8008, 1, PetalburgCity_EventScript_LeadPlayerToGym1 + call_if_eq VAR_0x8008, 2, PetalburgCity_EventScript_LeadPlayerToGym2 + call_if_eq VAR_0x8008, 3, PetalburgCity_EventScript_LeadPlayerToGym3 msgbox PetalburgCity_Text_ThisIsPetalburgGym, MSGBOX_DEFAULT applymovement LOCALID_GYM_BOY, Common_Movement_WalkInPlaceFasterRight applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight @@ -571,14 +559,10 @@ PetalburgCity_EventScript_Scott:: delay 30 msgbox PetalburgCity_Text_ImLookingForTalentedTrainers, MSGBOX_DEFAULT closemessage - compare VAR_0x8008, 0 - call_if_eq PetalburgCity_EventScript_ScottExit0 - compare VAR_0x8008, 1 - call_if_eq PetalburgCity_EventScript_ScottExit1 - compare VAR_0x8008, 2 - call_if_eq PetalburgCity_EventScript_ScottExit2 - compare VAR_0x8008, 3 - call_if_eq PetalburgCity_EventScript_ScottExit3 + call_if_eq VAR_0x8008, 0, PetalburgCity_EventScript_ScottExit0 + call_if_eq VAR_0x8008, 1, PetalburgCity_EventScript_ScottExit1 + call_if_eq VAR_0x8008, 2, PetalburgCity_EventScript_ScottExit2 + call_if_eq VAR_0x8008, 3, PetalburgCity_EventScript_ScottExit3 setvar VAR_SCOTT_PETALBURG_ENCOUNTER, 1 removeobject LOCALID_SCOTT releaseall diff --git a/data/maps/PetalburgCity_Gym/scripts.inc b/data/maps/PetalburgCity_Gym/scripts.inc index cae696a50a..836da26bfb 100644 --- a/data/maps/PetalburgCity_Gym/scripts.inc +++ b/data/maps/PetalburgCity_Gym/scripts.inc @@ -10,10 +10,8 @@ PetalburgCity_Gym_MapScripts:: .byte 0 PetalburgCity_Gym_OnLoad: - compare VAR_PETALBURG_GYM_STATE, 6 - goto_if_eq PetalburgCity_Gym_EventScript_OpenUnlockedDoors - compare VAR_PETALBURG_GYM_STATE, 7 - call_if_ge PetalburgCity_Gym_EventScript_UnlockAllDoors + goto_if_eq VAR_PETALBURG_GYM_STATE, 6, PetalburgCity_Gym_EventScript_OpenUnlockedDoors + call_if_ge VAR_PETALBURG_GYM_STATE, 7, PetalburgCity_Gym_EventScript_UnlockAllDoors end @ NOTE: Strength and OHKO rooms are misleading. Both are more accurately Critical-Hit @@ -42,10 +40,8 @@ PetalburgCity_Gym_EventScript_UnlockAllDoors:: return PetalburgCity_Gym_OnTransition: - compare VAR_PETALBURG_GYM_STATE, 1 - call_if_eq PetalburgCity_Gym_EventScript_MoveWallyToEntrance - compare VAR_PETALBURG_GYM_STATE, 6 - call_if_lt PetalburgCity_Gym_EventScript_MoveNormanToEntrance + call_if_eq VAR_PETALBURG_GYM_STATE, 1, PetalburgCity_Gym_EventScript_MoveWallyToEntrance + call_if_lt VAR_PETALBURG_GYM_STATE, 6, PetalburgCity_Gym_EventScript_MoveNormanToEntrance call_if_set FLAG_SYS_GAME_CLEAR, PetalburgCity_Gym_EventScript_CheckNormanForRematch end @@ -60,10 +56,8 @@ PetalburgCity_Gym_EventScript_MoveNormanToEntrance:: PetalburgCity_Gym_EventScript_CheckNormanForRematch:: setorcopyvar VAR_TRAINER_BATTLE_OPPONENT_A, TRAINER_NORMAN_1 specialvar VAR_RESULT, IsTrainerReadyForRematch - compare VAR_RESULT, TRUE - goto_if_eq PetalburgCity_Gym_EventScript_DontMoveNormanToFront - compare VAR_PETALBURG_GYM_STATE, 8 - goto_if_eq PetalburgCity_Gym_EventScript_DontMoveNormanToFront + goto_if_eq VAR_RESULT, TRUE, PetalburgCity_Gym_EventScript_DontMoveNormanToFront + goto_if_eq VAR_PETALBURG_GYM_STATE, 8, PetalburgCity_Gym_EventScript_DontMoveNormanToFront setobjectxyperm LOCALID_NORMAN, 4, 107 return @@ -152,66 +146,42 @@ PetalburgCity_Gym_EventScript_BeginWallyTutorialEast:: PetalburgCity_Gym_EventScript_BeginWallyTutorial:: addobject LOCALID_WALLY playse SE_DOOR - compare VAR_0x8008, 0 - call_if_eq PetalburgCity_Gym_EventScript_WallyArriveSouth - compare VAR_0x8008, 1 - call_if_eq PetalburgCity_Gym_EventScript_WallyArriveNorth - compare VAR_0x8008, 2 - call_if_eq PetalburgCity_Gym_EventScript_WallyArriveWestEast - compare VAR_0x8008, 3 - call_if_eq PetalburgCity_Gym_EventScript_WallyArriveWestEast + call_if_eq VAR_0x8008, 0, PetalburgCity_Gym_EventScript_WallyArriveSouth + call_if_eq VAR_0x8008, 1, PetalburgCity_Gym_EventScript_WallyArriveNorth + call_if_eq VAR_0x8008, 2, PetalburgCity_Gym_EventScript_WallyArriveWestEast + call_if_eq VAR_0x8008, 3, PetalburgCity_Gym_EventScript_WallyArriveWestEast msgbox PetalburgCity_Gym_Text_WallyIdLikeAPokemon, MSGBOX_DEFAULT msgbox PetalburgCity_Gym_Text_DadOhYoureWallyRight, MSGBOX_DEFAULT msgbox PetalburgCity_Gym_Text_WallyIveNeverCaughtAPokemon, MSGBOX_DEFAULT msgbox PetalburgCity_Gym_Text_DadHmISee, MSGBOX_DEFAULT - compare VAR_0x8008, 0 - call_if_eq PetalburgCity_Gym_EventScript_NormanAddressPlayerSouth - compare VAR_0x8008, 1 - call_if_eq PetalburgCity_Gym_EventScript_NormanAddressPlayerNorth - compare VAR_0x8008, 2 - call_if_eq PetalburgCity_Gym_EventScript_NormanAddressPlayerWest - compare VAR_0x8008, 3 - call_if_eq PetalburgCity_Gym_EventScript_NormanAddressPlayerEast + call_if_eq VAR_0x8008, 0, PetalburgCity_Gym_EventScript_NormanAddressPlayerSouth + call_if_eq VAR_0x8008, 1, PetalburgCity_Gym_EventScript_NormanAddressPlayerNorth + call_if_eq VAR_0x8008, 2, PetalburgCity_Gym_EventScript_NormanAddressPlayerWest + call_if_eq VAR_0x8008, 3, PetalburgCity_Gym_EventScript_NormanAddressPlayerEast msgbox PetalburgCity_Gym_Text_DadPlayerGoWithWally, MSGBOX_DEFAULT - compare VAR_0x8008, 0 - call_if_eq PetalburgCity_Gym_EventScript_NormanAddressWallySouth - compare VAR_0x8008, 1 - call_if_eq PetalburgCity_Gym_EventScript_NormanAddressWallyNorth - compare VAR_0x8008, 2 - call_if_eq PetalburgCity_Gym_EventScript_NormanAddressWallyWest - compare VAR_0x8008, 3 - call_if_eq PetalburgCity_Gym_EventScript_NormanAddressWallyEast + call_if_eq VAR_0x8008, 0, PetalburgCity_Gym_EventScript_NormanAddressWallySouth + call_if_eq VAR_0x8008, 1, PetalburgCity_Gym_EventScript_NormanAddressWallyNorth + call_if_eq VAR_0x8008, 2, PetalburgCity_Gym_EventScript_NormanAddressWallyWest + call_if_eq VAR_0x8008, 3, PetalburgCity_Gym_EventScript_NormanAddressWallyEast msgbox PetalburgCity_Gym_Text_IllLoanYouMyZigzagoon, MSGBOX_DEFAULT msgbox PetalburgCity_Gym_Text_WallyThankYouAndDadGivesPokeBall, MSGBOX_DEFAULT msgbox PetalburgCity_Gym_Text_WallyOhWowThankYou, MSGBOX_DEFAULT - compare VAR_0x8008, 0 - call_if_eq PetalburgCity_Gym_EventScript_NormanFaceDoorSouth - compare VAR_0x8008, 1 - call_if_eq PetalburgCity_Gym_EventScript_NormanFaceDoorNorth - compare VAR_0x8008, 2 - call_if_eq PetalburgCity_Gym_EventScript_NormanFaceDoorWest - compare VAR_0x8008, 3 - call_if_eq PetalburgCity_Gym_EventScript_NormanFaceDoorEast - compare VAR_0x8008, 0 - call_if_eq PetalburgCity_Gym_EventScript_WallyFacePlayer - compare VAR_0x8008, 1 - call_if_eq PetalburgCity_Gym_EventScript_WallyFaceDown - compare VAR_0x8008, 2 - call_if_eq PetalburgCity_Gym_EventScript_WallyFacePlayer - compare VAR_0x8008, 3 - call_if_eq PetalburgCity_Gym_EventScript_WallyFacePlayer + call_if_eq VAR_0x8008, 0, PetalburgCity_Gym_EventScript_NormanFaceDoorSouth + call_if_eq VAR_0x8008, 1, PetalburgCity_Gym_EventScript_NormanFaceDoorNorth + call_if_eq VAR_0x8008, 2, PetalburgCity_Gym_EventScript_NormanFaceDoorWest + call_if_eq VAR_0x8008, 3, PetalburgCity_Gym_EventScript_NormanFaceDoorEast + call_if_eq VAR_0x8008, 0, PetalburgCity_Gym_EventScript_WallyFacePlayer + call_if_eq VAR_0x8008, 1, PetalburgCity_Gym_EventScript_WallyFaceDown + call_if_eq VAR_0x8008, 2, PetalburgCity_Gym_EventScript_WallyFacePlayer + call_if_eq VAR_0x8008, 3, PetalburgCity_Gym_EventScript_WallyFacePlayer msgbox PetalburgCity_Gym_Text_WouldYouReallyComeWithMe, MSGBOX_DEFAULT closemessage setflag FLAG_DONT_TRANSITION_MUSIC playbgm MUS_FOLLOW_ME, FALSE - compare VAR_0x8008, 0 - call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallySouth - compare VAR_0x8008, 1 - call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallyNorth - compare VAR_0x8008, 2 - call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallyWest - compare VAR_0x8008, 3 - call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallyEast + call_if_eq VAR_0x8008, 0, PetalburgCity_Gym_EventScript_ExitGymWithWallySouth + call_if_eq VAR_0x8008, 1, PetalburgCity_Gym_EventScript_ExitGymWithWallyNorth + call_if_eq VAR_0x8008, 2, PetalburgCity_Gym_EventScript_ExitGymWithWallyWest + call_if_eq VAR_0x8008, 3, PetalburgCity_Gym_EventScript_ExitGymWithWallyEast removeobject LOCALID_WALLY setflag FLAG_HIDE_PETALBURG_CITY_WALLYS_MOM setvar VAR_PETALBURG_GYM_STATE, 1 @@ -220,7 +190,7 @@ PetalburgCity_Gym_EventScript_BeginWallyTutorial:: clearflag FLAG_HIDE_PETALBURG_GYM_WALLY setflag FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_RIVAL special InitBirchState - warp MAP_PETALBURG_CITY, 255, 15, 8 + warp MAP_PETALBURG_CITY, 15, 8 waitstate release end @@ -361,8 +331,7 @@ PetalburgCity_Gym_EventScript_NormanFaceDoorEast:: PetalburgCity_Gym_EventScript_NormanPostBattle:: call PetalburgCity_Gym_EventScript_ShouldGiveEnigmaBerry - compare VAR_RESULT, TRUE - goto_if_eq PetalburgCity_Gym_EventScript_GiveEnigmaBerry + goto_if_eq VAR_RESULT, TRUE, PetalburgCity_Gym_EventScript_GiveEnigmaBerry goto_if_unset FLAG_RECEIVED_TM42, PetalburgCity_Gym_EventScript_GiveFacade2 goto_if_set FLAG_SYS_GAME_CLEAR, PetalburgCity_Gym_EventScript_NoAmountOfTrainingIsEnough msgbox PetalburgCity_Gym_Text_DadGoingToKeepTraining, MSGBOX_DEFAULT @@ -381,16 +350,12 @@ PetalburgCity_Gym_EventScript_NormanRematch:: PetalburgCity_Gym_EventScript_ShouldGiveEnigmaBerry:: specialvar VAR_RESULT, IsEnigmaBerryValid - compare VAR_RESULT, FALSE - goto_if_eq PetalburgCity_Gym_EventScript_DontGiveEnigmaBerry - checkitem ITEM_ENIGMA_BERRY, 1 - compare VAR_RESULT, TRUE - goto_if_eq PetalburgCity_Gym_EventScript_DontGiveEnigmaBerry - checkpcitem ITEM_ENIGMA_BERRY, 1 - compare VAR_RESULT, TRUE - goto_if_eq PetalburgCity_Gym_EventScript_DontGiveEnigmaBerry - compare VAR_ENIGMA_BERRY_AVAILABLE, 0 - goto_if_eq PetalburgCity_Gym_EventScript_DontGiveEnigmaBerry + goto_if_eq VAR_RESULT, FALSE, PetalburgCity_Gym_EventScript_DontGiveEnigmaBerry + checkitem ITEM_ENIGMA_BERRY + goto_if_eq VAR_RESULT, TRUE, PetalburgCity_Gym_EventScript_DontGiveEnigmaBerry + checkpcitem ITEM_ENIGMA_BERRY + goto_if_eq VAR_RESULT, TRUE, PetalburgCity_Gym_EventScript_DontGiveEnigmaBerry + goto_if_eq VAR_ENIGMA_BERRY_AVAILABLE, 0, PetalburgCity_Gym_EventScript_DontGiveEnigmaBerry msgbox PetalburgCity_Gym_Text_GiveEnigmaBerry, MSGBOX_DEFAULT setvar VAR_RESULT, TRUE return @@ -401,8 +366,7 @@ PetalburgCity_Gym_EventScript_DontGiveEnigmaBerry:: PetalburgCity_Gym_EventScript_GiveEnigmaBerry:: giveitem ITEM_ENIGMA_BERRY - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setvar VAR_ENIGMA_BERRY_AVAILABLE, 0 release end @@ -442,8 +406,7 @@ PetalburgCity_Gym_EventScript_NormanBattle:: PetalburgCity_Gym_EventScript_GiveFacade:: giveitem ITEM_TM42 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_BagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_BagIsFull setflag FLAG_RECEIVED_TM42 msgbox PetalburgCity_Gym_Text_ExplainFacade, MSGBOX_DEFAULT return @@ -469,35 +432,26 @@ PetalburgCity_Gym_EventScript_WallysDadArrives:: applymovement LOCALID_WALLYS_DAD, Common_Movement_Delay48 waitmovement 0 delay 10 - compare VAR_0x8008, 1 - call_if_eq PetalburgCity_Gym_EventScript_WallysDadApproachPlayerNorth - compare VAR_0x8008, 2 - call_if_eq PetalburgCity_Gym_EventScript_WallysDadApproachPlayerEast - compare VAR_0x8008, 3 - call_if_eq PetalburgCity_Gym_EventScript_WallysDadApproachPlayerWest + call_if_eq VAR_0x8008, 1, PetalburgCity_Gym_EventScript_WallysDadApproachPlayerNorth + call_if_eq VAR_0x8008, 2, PetalburgCity_Gym_EventScript_WallysDadApproachPlayerEast + call_if_eq VAR_0x8008, 3, PetalburgCity_Gym_EventScript_WallysDadApproachPlayerWest msgbox PetalburgCity_Gym_Text_PleaseComeWithMe, MSGBOX_DEFAULT closemessage delay 20 - compare VAR_0x8008, 1 - call_if_eq PetalburgCity_Gym_EventScript_WallysDadFaceNormanNorth - compare VAR_0x8008, 2 - call_if_eq PetalburgCity_Gym_EventScript_WallysDadFaceNormanEast - compare VAR_0x8008, 3 - call_if_eq PetalburgCity_Gym_EventScript_WallysDadFaceNormanWest + call_if_eq VAR_0x8008, 1, PetalburgCity_Gym_EventScript_WallysDadFaceNormanNorth + call_if_eq VAR_0x8008, 2, PetalburgCity_Gym_EventScript_WallysDadFaceNormanEast + call_if_eq VAR_0x8008, 3, PetalburgCity_Gym_EventScript_WallysDadFaceNormanWest msgbox PetalburgCity_Gym_Text_LetMeBorrowPlayer, MSGBOX_DEFAULT closemessage setflag FLAG_DONT_TRANSITION_MUSIC playbgm MUS_FOLLOW_ME, FALSE - compare VAR_0x8008, 1 - call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallysDadNorth - compare VAR_0x8008, 2 - call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallysDadEast - compare VAR_0x8008, 3 - call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallysDadWest + call_if_eq VAR_0x8008, 1, PetalburgCity_Gym_EventScript_ExitGymWithWallysDadNorth + call_if_eq VAR_0x8008, 2, PetalburgCity_Gym_EventScript_ExitGymWithWallysDadEast + call_if_eq VAR_0x8008, 3, PetalburgCity_Gym_EventScript_ExitGymWithWallysDadWest removeobject LOCALID_WALLYS_DAD setvar VAR_PETALBURG_CITY_STATE, 4 clearflag FLAG_HIDE_PETALBURG_CITY_WALLYS_DAD - warp MAP_PETALBURG_CITY, 255, 15, 8 + warp MAP_PETALBURG_CITY, 15, 8 waitstate release end @@ -782,21 +736,18 @@ PetalburgCity_Gym_EventScript_NoAmountOfTrainingIsEnough:: PetalburgCity_Gym_EventScript_SpeedRoomDoor:: lockall - compare VAR_PETALBURG_GYM_STATE, 6 - goto_if_lt PetalburgCity_Gym_EventScript_DoorLocked + goto_if_lt VAR_PETALBURG_GYM_STATE, 6, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 7 setvar VAR_0x8009, 85 msgbox PetalburgCity_Gym_Text_EnterSpeedRoom, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq PetalburgCity_Gym_EventScript_EnterRoom - compare VAR_RESULT, NO - goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom + goto_if_eq VAR_RESULT, YES, PetalburgCity_Gym_EventScript_EnterRoom + goto_if_eq VAR_RESULT, NO, PetalburgCity_Gym_EventScript_DontEnterRoom end PetalburgCity_Gym_EventScript_EnterRoom:: closemessage delay 30 - warpdoor MAP_PETALBURG_CITY_GYM, 255, VAR_0x8008, VAR_0x8009 + warpdoor MAP_PETALBURG_CITY_GYM, VAR_0x8008, VAR_0x8009 waitstate releaseall end @@ -813,15 +764,12 @@ PetalburgCity_Gym_EventScript_DoorLocked:: @ VAR_0x8008 and VAR_0x8009 below are the x and y coordinates of the warp PetalburgCity_Gym_EventScript_AccuracyRoomDoor:: lockall - compare VAR_PETALBURG_GYM_STATE, 6 - goto_if_lt PetalburgCity_Gym_EventScript_DoorLocked + goto_if_lt VAR_PETALBURG_GYM_STATE, 6, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 1 setvar VAR_0x8009, 98 msgbox PetalburgCity_Gym_Text_EnterAccuracyRoom, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq PetalburgCity_Gym_EventScript_EnterRoom - compare VAR_RESULT, NO - goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom + goto_if_eq VAR_RESULT, YES, PetalburgCity_Gym_EventScript_EnterRoom + goto_if_eq VAR_RESULT, NO, PetalburgCity_Gym_EventScript_DontEnterRoom end PetalburgCity_Gym_EventScript_ConfusionRoomDoor:: @@ -830,10 +778,8 @@ PetalburgCity_Gym_EventScript_ConfusionRoomDoor:: setvar VAR_0x8008, 7 setvar VAR_0x8009, 46 msgbox PetalburgCity_Gym_Text_EnterConfusionRoom, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq PetalburgCity_Gym_EventScript_EnterRoom - compare VAR_RESULT, NO - goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom + goto_if_eq VAR_RESULT, YES, PetalburgCity_Gym_EventScript_EnterRoom + goto_if_eq VAR_RESULT, NO, PetalburgCity_Gym_EventScript_DontEnterRoom end PetalburgCity_Gym_EventScript_LeftDefenseRoomDoor:: @@ -842,10 +788,8 @@ PetalburgCity_Gym_EventScript_LeftDefenseRoomDoor:: setvar VAR_0x8008, 1 setvar VAR_0x8009, 59 msgbox PetalburgCity_Gym_Text_EnterDefenseRoom, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq PetalburgCity_Gym_EventScript_EnterRoom - compare VAR_RESULT, NO - goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom + goto_if_eq VAR_RESULT, YES, PetalburgCity_Gym_EventScript_EnterRoom + goto_if_eq VAR_RESULT, NO, PetalburgCity_Gym_EventScript_DontEnterRoom end PetalburgCity_Gym_EventScript_RightDefenseRoomDoor:: @@ -854,10 +798,8 @@ PetalburgCity_Gym_EventScript_RightDefenseRoomDoor:: setvar VAR_0x8008, 7 setvar VAR_0x8009, 59 msgbox PetalburgCity_Gym_Text_EnterDefenseRoom, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq PetalburgCity_Gym_EventScript_EnterRoom - compare VAR_RESULT, NO - goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom + goto_if_eq VAR_RESULT, YES, PetalburgCity_Gym_EventScript_EnterRoom + goto_if_eq VAR_RESULT, NO, PetalburgCity_Gym_EventScript_DontEnterRoom end PetalburgCity_Gym_EventScript_RecoveryRoomDoor:: @@ -866,10 +808,8 @@ PetalburgCity_Gym_EventScript_RecoveryRoomDoor:: setvar VAR_0x8008, 1 setvar VAR_0x8009, 72 msgbox PetalburgCity_Gym_Text_EnterRecoveryRoom, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq PetalburgCity_Gym_EventScript_EnterRoom - compare VAR_RESULT, NO - goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom + goto_if_eq VAR_RESULT, YES, PetalburgCity_Gym_EventScript_EnterRoom + goto_if_eq VAR_RESULT, NO, PetalburgCity_Gym_EventScript_DontEnterRoom end PetalburgCity_Gym_EventScript_LeftStrengthRoomDoor:: @@ -878,10 +818,8 @@ PetalburgCity_Gym_EventScript_LeftStrengthRoomDoor:: setvar VAR_0x8008, 1 setvar VAR_0x8009, 20 msgbox PetalburgCity_Gym_Text_EnterStrengthRoom, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq PetalburgCity_Gym_EventScript_EnterRoom - compare VAR_RESULT, NO - goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom + goto_if_eq VAR_RESULT, YES, PetalburgCity_Gym_EventScript_EnterRoom + goto_if_eq VAR_RESULT, NO, PetalburgCity_Gym_EventScript_DontEnterRoom end PetalburgCity_Gym_EventScript_RightStrengthRoomDoor:: @@ -890,10 +828,8 @@ PetalburgCity_Gym_EventScript_RightStrengthRoomDoor:: setvar VAR_0x8008, 7 setvar VAR_0x8009, 20 msgbox PetalburgCity_Gym_Text_EnterStrengthRoom, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq PetalburgCity_Gym_EventScript_EnterRoom - compare VAR_RESULT, NO - goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom + goto_if_eq VAR_RESULT, YES, PetalburgCity_Gym_EventScript_EnterRoom + goto_if_eq VAR_RESULT, NO, PetalburgCity_Gym_EventScript_DontEnterRoom end PetalburgCity_Gym_EventScript_LeftOHKORoomDoor:: @@ -902,10 +838,8 @@ PetalburgCity_Gym_EventScript_LeftOHKORoomDoor:: setvar VAR_0x8008, 1 setvar VAR_0x8009, 33 msgbox PetalburgCity_Gym_Text_EnterOHKORoom, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq PetalburgCity_Gym_EventScript_EnterRoom - compare VAR_RESULT, NO - goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom + goto_if_eq VAR_RESULT, YES, PetalburgCity_Gym_EventScript_EnterRoom + goto_if_eq VAR_RESULT, NO, PetalburgCity_Gym_EventScript_DontEnterRoom end PetalburgCity_Gym_EventScript_RightOHKORoomDoor:: @@ -914,10 +848,8 @@ PetalburgCity_Gym_EventScript_RightOHKORoomDoor:: setvar VAR_0x8008, 7 setvar VAR_0x8009, 33 msgbox PetalburgCity_Gym_Text_EnterOHKORoom, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq PetalburgCity_Gym_EventScript_EnterRoom - compare VAR_RESULT, NO - goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom + goto_if_eq VAR_RESULT, YES, PetalburgCity_Gym_EventScript_EnterRoom + goto_if_eq VAR_RESULT, NO, PetalburgCity_Gym_EventScript_DontEnterRoom end PetalburgCity_Gym_EventScript_LeftGymLeadersRoomDoor:: @@ -926,10 +858,8 @@ PetalburgCity_Gym_EventScript_LeftGymLeadersRoomDoor:: setvar VAR_0x8008, 1 setvar VAR_0x8009, 7 msgbox PetalburgCity_Gym_Text_EnterGymLeadersRoom, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq PetalburgCity_Gym_EventScript_EnterRoom - compare VAR_RESULT, NO - goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom + goto_if_eq VAR_RESULT, YES, PetalburgCity_Gym_EventScript_EnterRoom + goto_if_eq VAR_RESULT, NO, PetalburgCity_Gym_EventScript_DontEnterRoom end PetalburgCity_Gym_EventScript_RightGymLeadersRoomDoor:: @@ -938,10 +868,8 @@ PetalburgCity_Gym_EventScript_RightGymLeadersRoomDoor:: setvar VAR_0x8008, 7 setvar VAR_0x8009, 7 msgbox PetalburgCity_Gym_Text_EnterGymLeadersRoom, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq PetalburgCity_Gym_EventScript_EnterRoom - compare VAR_RESULT, NO - goto_if_eq PetalburgCity_Gym_EventScript_DontEnterRoom + goto_if_eq VAR_RESULT, YES, PetalburgCity_Gym_EventScript_EnterRoom + goto_if_eq VAR_RESULT, NO, PetalburgCity_Gym_EventScript_DontEnterRoom end PetalburgCity_Gym_EventScript_Randall:: @@ -1067,122 +995,106 @@ PetalburgCity_Gym_EventScript_JodyPostBadge:: @ VAR_0x8005 below is 0 when the door should be slid open and 1 when it should be unlocked immediately PetalburgCity_Gym_EventScript_OpenGymEntranceDoors:: setvar VAR_0x8004, 1 - compare VAR_0x8005, 0 - call_if_eq PetalburgCity_Gym_EventScript_SlideOpenRoomDoors - compare VAR_0x8005, 1 - call_if_eq PetalburgCity_Gym_EventScript_UnlockRoomDoors + call_if_eq VAR_0x8005, 0, PetalburgCity_Gym_EventScript_SlideOpenRoomDoors + call_if_eq VAR_0x8005, 1, PetalburgCity_Gym_EventScript_UnlockRoomDoors call PetalburgCity_Gym_EventScript_SetEntranceRoomDoorMetatiles return PetalburgCity_Gym_EventScript_OpenSpeedRoomDoors:: setvar VAR_0x8004, 2 - compare VAR_0x8005, 0 - call_if_eq PetalburgCity_Gym_EventScript_SlideOpenRoomDoors - compare VAR_0x8005, 1 - call_if_eq PetalburgCity_Gym_EventScript_UnlockRoomDoors + call_if_eq VAR_0x8005, 0, PetalburgCity_Gym_EventScript_SlideOpenRoomDoors + call_if_eq VAR_0x8005, 1, PetalburgCity_Gym_EventScript_UnlockRoomDoors call PetalburgCity_Gym_EventScript_SetSpeedRoomDoorMetatiles return PetalburgCity_Gym_EventScript_OpenAccuracyRoomDoors:: setvar VAR_0x8004, 3 - compare VAR_0x8005, 0 - call_if_eq PetalburgCity_Gym_EventScript_SlideOpenRoomDoors - compare VAR_0x8005, 1 - call_if_eq PetalburgCity_Gym_EventScript_UnlockRoomDoors + call_if_eq VAR_0x8005, 0, PetalburgCity_Gym_EventScript_SlideOpenRoomDoors + call_if_eq VAR_0x8005, 1, PetalburgCity_Gym_EventScript_UnlockRoomDoors call PetalburgCity_Gym_EventScript_SetAccuracyRoomDoorMetatiles return PetalburgCity_Gym_EventScript_OpenConfusionRoomDoors:: setvar VAR_0x8004, 4 - compare VAR_0x8005, 0 - call_if_eq PetalburgCity_Gym_EventScript_SlideOpenRoomDoors - compare VAR_0x8005, 1 - call_if_eq PetalburgCity_Gym_EventScript_UnlockRoomDoors + call_if_eq VAR_0x8005, 0, PetalburgCity_Gym_EventScript_SlideOpenRoomDoors + call_if_eq VAR_0x8005, 1, PetalburgCity_Gym_EventScript_UnlockRoomDoors call PetalburgCity_Gym_EventScript_SetConfusionRoomDoorMetatiles return PetalburgCity_Gym_EventScript_OpenDefenseRoomDoors:: setvar VAR_0x8004, 5 - compare VAR_0x8005, 0 - call_if_eq PetalburgCity_Gym_EventScript_SlideOpenRoomDoors - compare VAR_0x8005, 1 - call_if_eq PetalburgCity_Gym_EventScript_UnlockRoomDoors + call_if_eq VAR_0x8005, 0, PetalburgCity_Gym_EventScript_SlideOpenRoomDoors + call_if_eq VAR_0x8005, 1, PetalburgCity_Gym_EventScript_UnlockRoomDoors call PetalburgCity_Gym_EventScript_SetDefenseRoomDoorMetatiles return PetalburgCity_Gym_EventScript_OpenRecoveryRoomDoors:: setvar VAR_0x8004, 6 - compare VAR_0x8005, 0 - call_if_eq PetalburgCity_Gym_EventScript_SlideOpenRoomDoors - compare VAR_0x8005, 1 - call_if_eq PetalburgCity_Gym_EventScript_UnlockRoomDoors + call_if_eq VAR_0x8005, 0, PetalburgCity_Gym_EventScript_SlideOpenRoomDoors + call_if_eq VAR_0x8005, 1, PetalburgCity_Gym_EventScript_UnlockRoomDoors call PetalburgCity_Gym_EventScript_SetRecoveryRoomDoorMetatiles return PetalburgCity_Gym_EventScript_OpenStrengthRoomDoors:: setvar VAR_0x8004, 7 - compare VAR_0x8005, 0 - call_if_eq PetalburgCity_Gym_EventScript_SlideOpenRoomDoors - compare VAR_0x8005, 1 - call_if_eq PetalburgCity_Gym_EventScript_UnlockRoomDoors + call_if_eq VAR_0x8005, 0, PetalburgCity_Gym_EventScript_SlideOpenRoomDoors + call_if_eq VAR_0x8005, 1, PetalburgCity_Gym_EventScript_UnlockRoomDoors call PetalburgCity_Gym_EventScript_SetStrengthRoomDoorMetatiles return PetalburgCity_Gym_EventScript_OpenOHKORoomDoors:: setvar VAR_0x8004, 8 - compare VAR_0x8005, 0 - call_if_eq PetalburgCity_Gym_EventScript_SlideOpenRoomDoors - compare VAR_0x8005, 1 - call_if_eq PetalburgCity_Gym_EventScript_UnlockRoomDoors + call_if_eq VAR_0x8005, 0, PetalburgCity_Gym_EventScript_SlideOpenRoomDoors + call_if_eq VAR_0x8005, 1, PetalburgCity_Gym_EventScript_UnlockRoomDoors call PetalburgCity_Gym_EventScript_SetOHKORoomDoorMetatiles return PetalburgCity_Gym_EventScript_SetEntranceRoomDoorMetatiles:: - setmetatile 6, 85, METATILE_PetalburgGym_RoomEntrance_Left, 0 - setmetatile 7, 85, METATILE_PetalburgGym_RoomEntrance_Right, 0 - setmetatile 1, 98, METATILE_PetalburgGym_RoomEntrance_Left, 0 - setmetatile 2, 98, METATILE_PetalburgGym_RoomEntrance_Right, 0 + setmetatile 6, 85, METATILE_PetalburgGym_RoomEntrance_Left, FALSE + setmetatile 7, 85, METATILE_PetalburgGym_RoomEntrance_Right, FALSE + setmetatile 1, 98, METATILE_PetalburgGym_RoomEntrance_Left, FALSE + setmetatile 2, 98, METATILE_PetalburgGym_RoomEntrance_Right, FALSE return PetalburgCity_Gym_EventScript_SetSpeedRoomDoorMetatiles:: - setmetatile 6, 46, METATILE_PetalburgGym_RoomEntrance_Left, 0 - setmetatile 7, 46, METATILE_PetalburgGym_RoomEntrance_Right, 0 - setmetatile 1, 59, METATILE_PetalburgGym_RoomEntrance_Left, 0 - setmetatile 2, 59, METATILE_PetalburgGym_RoomEntrance_Right, 0 + setmetatile 6, 46, METATILE_PetalburgGym_RoomEntrance_Left, FALSE + setmetatile 7, 46, METATILE_PetalburgGym_RoomEntrance_Right, FALSE + setmetatile 1, 59, METATILE_PetalburgGym_RoomEntrance_Left, FALSE + setmetatile 2, 59, METATILE_PetalburgGym_RoomEntrance_Right, FALSE return PetalburgCity_Gym_EventScript_SetAccuracyRoomDoorMetatiles:: - setmetatile 6, 59, METATILE_PetalburgGym_RoomEntrance_Left, 0 - setmetatile 7, 59, METATILE_PetalburgGym_RoomEntrance_Right, 0 - setmetatile 1, 72, METATILE_PetalburgGym_RoomEntrance_Left, 0 - setmetatile 2, 72, METATILE_PetalburgGym_RoomEntrance_Right, 0 + setmetatile 6, 59, METATILE_PetalburgGym_RoomEntrance_Left, FALSE + setmetatile 7, 59, METATILE_PetalburgGym_RoomEntrance_Right, FALSE + setmetatile 1, 72, METATILE_PetalburgGym_RoomEntrance_Left, FALSE + setmetatile 2, 72, METATILE_PetalburgGym_RoomEntrance_Right, FALSE return PetalburgCity_Gym_EventScript_SetConfusionRoomDoorMetatiles:: - setmetatile 1, 20, METATILE_PetalburgGym_RoomEntrance_Left, 0 - setmetatile 2, 20, METATILE_PetalburgGym_RoomEntrance_Right, 0 + setmetatile 1, 20, METATILE_PetalburgGym_RoomEntrance_Left, FALSE + setmetatile 2, 20, METATILE_PetalburgGym_RoomEntrance_Right, FALSE return PetalburgCity_Gym_EventScript_SetDefenseRoomDoorMetatiles:: - setmetatile 6, 20, METATILE_PetalburgGym_RoomEntrance_Left, 0 - setmetatile 7, 20, METATILE_PetalburgGym_RoomEntrance_Right, 0 - setmetatile 1, 33, METATILE_PetalburgGym_RoomEntrance_Left, 0 - setmetatile 2, 33, METATILE_PetalburgGym_RoomEntrance_Right, 0 + setmetatile 6, 20, METATILE_PetalburgGym_RoomEntrance_Left, FALSE + setmetatile 7, 20, METATILE_PetalburgGym_RoomEntrance_Right, FALSE + setmetatile 1, 33, METATILE_PetalburgGym_RoomEntrance_Left, FALSE + setmetatile 2, 33, METATILE_PetalburgGym_RoomEntrance_Right, FALSE return PetalburgCity_Gym_EventScript_SetRecoveryRoomDoorMetatiles:: - setmetatile 6, 33, METATILE_PetalburgGym_RoomEntrance_Left, 0 - setmetatile 7, 33, METATILE_PetalburgGym_RoomEntrance_Right, 0 + setmetatile 6, 33, METATILE_PetalburgGym_RoomEntrance_Left, FALSE + setmetatile 7, 33, METATILE_PetalburgGym_RoomEntrance_Right, FALSE return PetalburgCity_Gym_EventScript_SetStrengthRoomDoorMetatiles:: - setmetatile 1, 7, METATILE_PetalburgGym_RoomEntrance_Left, 0 - setmetatile 2, 7, METATILE_PetalburgGym_RoomEntrance_Right, 0 + setmetatile 1, 7, METATILE_PetalburgGym_RoomEntrance_Left, FALSE + setmetatile 2, 7, METATILE_PetalburgGym_RoomEntrance_Right, FALSE return PetalburgCity_Gym_EventScript_SetOHKORoomDoorMetatiles:: - setmetatile 6, 7, METATILE_PetalburgGym_RoomEntrance_Left, 0 - setmetatile 7, 7, METATILE_PetalburgGym_RoomEntrance_Right, 0 + setmetatile 6, 7, METATILE_PetalburgGym_RoomEntrance_Left, FALSE + setmetatile 7, 7, METATILE_PetalburgGym_RoomEntrance_Right, FALSE return PetalburgCity_Gym_EventScript_SlideOpenRoomDoors:: diff --git a/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc b/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc index 58b58054f2..3dadd3184b 100644 --- a/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc @@ -31,18 +31,14 @@ PetalburgCity_PokemonCenter_1F_EventScript_Woman:: faceplayer msgbox PetalburgCity_PokemonCenter_1F_Text_ManyTypesOfPokemon, MSGBOX_DEFAULT specialvar VAR_RESULT, IsStarterInParty - compare VAR_RESULT, TRUE - goto_if_eq PetalburgCity_PokemonCenter_1F_EventScript_SayStarterTypeInfo + goto_if_eq VAR_RESULT, TRUE, PetalburgCity_PokemonCenter_1F_EventScript_SayStarterTypeInfo release end PetalburgCity_PokemonCenter_1F_EventScript_SayStarterTypeInfo:: - compare VAR_STARTER_MON, 0 - call_if_eq PetalburgCity_PokemonCenter_1F_EventScript_SayTreeckoType - compare VAR_STARTER_MON, 1 - call_if_eq PetalburgCity_PokemonCenter_1F_EventScript_SayTorchicType - compare VAR_STARTER_MON, 2 - call_if_eq PetalburgCity_PokemonCenter_1F_EventScript_SayMudkipType + call_if_eq VAR_STARTER_MON, 0, PetalburgCity_PokemonCenter_1F_EventScript_SayTreeckoType + call_if_eq VAR_STARTER_MON, 1, PetalburgCity_PokemonCenter_1F_EventScript_SayTorchicType + call_if_eq VAR_STARTER_MON, 2, PetalburgCity_PokemonCenter_1F_EventScript_SayMudkipType release end diff --git a/data/maps/PetalburgWoods/scripts.inc b/data/maps/PetalburgWoods/scripts.inc index dd2d9273f5..94bd390148 100644 --- a/data/maps/PetalburgWoods/scripts.inc +++ b/data/maps/PetalburgWoods/scripts.inc @@ -92,8 +92,7 @@ PetalburgWoods_EventScript_DevonResearcherPostBattle:: waitmovement 0 msgbox PetalburgWoods_Text_ThatWasAwfullyClose, MSGBOX_DEFAULT giveitem ITEM_GREAT_BALL - compare VAR_RESULT, FALSE - goto_if_eq PetalburgWoods_EventScript_BagFull + goto_if_eq VAR_RESULT, FALSE, PetalburgWoods_EventScript_BagFull goto PetalburgWoods_EventScript_DevonResearcherFinish end @@ -255,8 +254,7 @@ PetalburgWoods_EventScript_Girl:: goto_if_set FLAG_RECEIVED_MIRACLE_SEED, PetalburgWoods_EventScript_ExplainMiracleSeed msgbox PetalburgWoods_Text_TryUsingThisItem, MSGBOX_DEFAULT giveitem ITEM_MIRACLE_SEED - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_MIRACLE_SEED release end @@ -282,12 +280,10 @@ PetalburgWoods_EventScript_Lyle:: PetalburgWoods_EventScript_James:: trainerbattle_single TRAINER_JAMES_1, PetalburgWoods_Text_InstantlyPopularWithBugPokemon, PetalburgWoods_Text_CantBePopularIfILose, PetalburgWoods_EventScript_TryRegisterJames specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq PetalburgWoods_EventScript_JamesRematch + goto_if_eq VAR_RESULT, TRUE, PetalburgWoods_EventScript_JamesRematch setvar VAR_0x8004, TRAINER_JAMES_1 specialvar VAR_RESULT, IsTrainerRegistered - compare VAR_RESULT, FALSE - goto_if_eq PetalburgWoods_EventScript_TryRegisterJames2 + goto_if_eq VAR_RESULT, FALSE, PetalburgWoods_EventScript_TryRegisterJames2 msgbox PetalburgWoods_Text_PeopleRespectYou, MSGBOX_DEFAULT release end diff --git a/data/maps/Route101/scripts.inc b/data/maps/Route101/scripts.inc index a41bc2fcbc..dd0ef5dcec 100644 --- a/data/maps/Route101/scripts.inc +++ b/data/maps/Route101/scripts.inc @@ -241,11 +241,9 @@ Route101_EventScript_BirchsBag:: setvar VAR_ROUTE101_STATE, 3 clearflag FLAG_HIDE_MAP_NAME_POPUP checkplayergender - compare VAR_RESULT, MALE - call_if_eq Route101_EventScript_HideMayInBedroom - compare VAR_RESULT, FEMALE - call_if_eq Route101_EventScript_HideBrendanInBedroom - warp MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB, 255, 6, 5 + call_if_eq VAR_RESULT, MALE, Route101_EventScript_HideMayInBedroom + call_if_eq VAR_RESULT, FEMALE, Route101_EventScript_HideBrendanInBedroom + warp MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB, 6, 5 waitstate release end diff --git a/data/maps/Route102/scripts.inc b/data/maps/Route102/scripts.inc index cc1eaa4bb7..6131ef9e01 100644 --- a/data/maps/Route102/scripts.inc +++ b/data/maps/Route102/scripts.inc @@ -20,12 +20,10 @@ Route102_EventScript_Boy:: Route102_EventScript_Calvin:: trainerbattle_single TRAINER_CALVIN_1, Route102_Text_CalvinIntro, Route102_Text_CalvinDefeated, Route102_EventScript_CalvinRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route102_EventScript_CalvinRematch + goto_if_eq VAR_RESULT, TRUE, Route102_EventScript_CalvinRematch setvar VAR_0x8004, TRAINER_CALVIN_1 specialvar VAR_RESULT, IsTrainerRegistered - compare VAR_RESULT, FALSE - goto_if_eq Route102_EventScript_CalvinTryRegister + goto_if_eq VAR_RESULT, FALSE, Route102_EventScript_CalvinTryRegister msgbox Route102_Text_CalvinPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route103/scripts.inc b/data/maps/Route103/scripts.inc index 4553f431c0..e2b75e0c3d 100644 --- a/data/maps/Route103/scripts.inc +++ b/data/maps/Route103/scripts.inc @@ -15,17 +15,15 @@ Route103_OnLoad: end Route103_EventScript_OpenAlteringCave:: - setmetatile 45, 5, METATILE_General_CaveEntrance_Top, 1 - setmetatile 45, 6, METATILE_General_CaveEntrance_Bottom, 0 + setmetatile 45, 5, METATILE_General_CaveEntrance_Top, TRUE + setmetatile 45, 6, METATILE_General_CaveEntrance_Bottom, FALSE return Route103_EventScript_Rival:: lockall checkplayergender - compare VAR_RESULT, MALE - goto_if_eq Route103_EventScript_RivalMay - compare VAR_RESULT, FEMALE - goto_if_eq Route103_EventScript_RivalBrendan + goto_if_eq VAR_RESULT, MALE, Route103_EventScript_RivalMay + goto_if_eq VAR_RESULT, FEMALE, Route103_EventScript_RivalBrendan end Route103_EventScript_RivalMay:: @@ -211,8 +209,7 @@ Route103_EventScript_Daisy:: Route103_EventScript_Amy:: trainerbattle_double TRAINER_AMY_AND_LIV_1, Route103_Text_AmyIntro, Route103_Text_AmyDefeated, Route103_Text_AmyNotEnoughPokemon, Route102_EventScript_AmyRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route102_EventScript_AmyRematch + goto_if_eq VAR_RESULT, TRUE, Route102_EventScript_AmyRematch msgbox Route103_Text_AmyPostBattle, MSGBOX_AUTOCLOSE end @@ -230,8 +227,7 @@ Route102_EventScript_AmyRematch:: Route103_EventScript_Liv:: trainerbattle_double TRAINER_AMY_AND_LIV_1, Route103_Text_LivIntro, Route103_Text_LivDefeated, Route103_Text_LivNotEnoughPokemon, Route102_EventScript_LivRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route102_EventScript_LivRematch + goto_if_eq VAR_RESULT, TRUE, Route102_EventScript_LivRematch msgbox Route103_Text_LivPostBattle, MSGBOX_AUTOCLOSE end @@ -254,8 +250,7 @@ Route103_EventScript_Andrew:: Route103_EventScript_Miguel:: trainerbattle_single TRAINER_MIGUEL_1, Route103_Text_MiguelIntro, Route103_Text_MiguelDefeated, Route102_EventScript_MiguelRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route103_EventScript_MiguelRematch + goto_if_eq VAR_RESULT, TRUE, Route103_EventScript_MiguelRematch msgbox Route103_Text_MiguelPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route104/scripts.inc b/data/maps/Route104/scripts.inc index d58bc50600..68aeb0a212 100644 --- a/data/maps/Route104/scripts.inc +++ b/data/maps/Route104/scripts.inc @@ -33,8 +33,7 @@ Route104_EventScript_HideWhiteHerbFlorist:: return Route104_EventScript_TrySetRivalPos:: - compare VAR_BOARD_BRINEY_BOAT_STATE, 1 - goto_if_ge Route104_EventScript_DontSetRivalPos + goto_if_ge VAR_BOARD_BRINEY_BOAT_STATE, 1, Route104_EventScript_DontSetRivalPos goto_if_set FLAG_MET_RIVAL_RUSTBORO, Route104_EventScript_DontSetRivalPos goto_if_unset FLAG_REGISTER_RIVAL_POKENAV, Route104_EventScript_DontSetRivalPos setobjectxyperm LOCALID_RIVAL, 17, 52 @@ -77,10 +76,8 @@ Route104_EventScript_RivalTrigger:: @ Unused, shares script with Rustboro encounter instead Route104_EventScript_PlayRivalMusic:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq Route104_EventScript_PlayMayMusic - compare VAR_RESULT, FEMALE - goto_if_eq Route104_EventScript_PlayBrendanMusic + goto_if_eq VAR_RESULT, MALE, Route104_EventScript_PlayMayMusic + goto_if_eq VAR_RESULT, FEMALE, Route104_EventScript_PlayBrendanMusic return Route104_EventScript_PlayMayMusic:: @@ -93,10 +90,8 @@ Route104_EventScript_PlayBrendanMusic:: Route104_EventScript_RivalEncounter:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq Route104_EventScript_MayEncounter - compare VAR_RESULT, FEMALE - goto_if_eq Route104_EventScript_BrendanEncounter + goto_if_eq VAR_RESULT, MALE, Route104_EventScript_MayEncounter + goto_if_eq VAR_RESULT, FEMALE, Route104_EventScript_BrendanEncounter end Route104_EventScript_MayEncounter:: @@ -121,8 +116,7 @@ Route104_EventScript_MayEncounter:: waitmovement 0 copyobjectxytoperm LOCALID_RIVAL msgbox Route104_Text_MayMinesDecentLetsBattle, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route104_EventScript_BattleMay + goto_if_eq VAR_RESULT, YES, Route104_EventScript_BattleMay msgbox Route104_Text_MayHaventRaisedPokemon, MSGBOX_DEFAULT call Route104_EventScript_RestoreMusic releaseall @@ -144,8 +138,7 @@ Route104_Movement_PlayerFaceRival: Route104_EventScript_MayAskToBattle:: msgbox Route104_Text_MayLetsBattle, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route104_EventScript_BattleMay + goto_if_eq VAR_RESULT, YES, Route104_EventScript_BattleMay msgbox Route104_Text_MayHaventRaisedPokemon, MSGBOX_DEFAULT releaseall end @@ -160,8 +153,7 @@ Route104_EventScript_BattleMay:: Route104_EventScript_MayDefeated:: msgbox Route104_Text_MayPostBattle, MSGBOX_DEFAULT - compare VAR_0x8008, 0 - call_if_eq Route104_EventScript_RestoreMusic + call_if_eq VAR_0x8008, 0, Route104_EventScript_RestoreMusic releaseall end @@ -210,8 +202,7 @@ Route104_EventScript_BrendanEncounter:: waitmovement 0 copyobjectxytoperm LOCALID_RIVAL msgbox Route104_Text_BrendanDoingGreatLetsBattle, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route104_EventScript_BattleBrendan + goto_if_eq VAR_RESULT, YES, Route104_EventScript_BattleBrendan msgbox Route104_Text_BrendanNoConfidence, MSGBOX_DEFAULT call Route104_EventScript_RestoreMusic releaseall @@ -219,8 +210,7 @@ Route104_EventScript_BrendanEncounter:: Route104_EventScript_BrendanAskToBattle:: msgbox Route104_Text_BrendanLetsBattle, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route104_EventScript_BattleBrendan + goto_if_eq VAR_RESULT, YES, Route104_EventScript_BattleBrendan msgbox Route104_Text_BrendanNoConfidence, MSGBOX_DEFAULT releaseall end @@ -235,8 +225,7 @@ Route104_EventScript_BattleBrendan:: Route104_EventScript_BrendanDefeated:: msgbox Route104_Text_BrendanPostBattle, MSGBOX_DEFAULT - compare VAR_0x8008, 0 - call_if_eq Route104_EventScript_RestoreMusic + call_if_eq VAR_0x8008, 0, Route104_EventScript_RestoreMusic releaseall end @@ -274,8 +263,7 @@ Route104_EventScript_ExpertF:: goto_if_set FLAG_RECEIVED_CHESTO_BERRY_ROUTE_104, Route104_EventScript_ReceivedBerry msgbox Route104_Text_PlantBerriesInSoilTakeThis, MSGBOX_DEFAULT giveitem ITEM_CHESTO_BERRY - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_CHESTO_BERRY_ROUTE_104 msgbox Route104_Text_TrainersOftenMakeMonHoldBerries, MSGBOX_DEFAULT release @@ -292,8 +280,7 @@ Route104_EventScript_WhiteHerbFlorist:: goto_if_set FLAG_RECEIVED_WHITE_HERB, Route104_EventScript_ReceivedWhiteHerb msgbox Route104_Text_DontNeedThisTakeIt, MSGBOX_DEFAULT giveitem ITEM_WHITE_HERB - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_WHITE_HERB release end @@ -345,8 +332,7 @@ Route104_EventScript_Boy2:: goto_if_set FLAG_RECEIVED_TM09, Route104_EventScript_ReceivedBulletSeed msgbox Route104_Text_LikeFillingMouthWithSeedsTakeThis, MSGBOX_DEFAULT giveitem ITEM_TM09 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM09 release end @@ -361,8 +347,8 @@ Route104_EventScript_Girl2:: end Route104_EventScript_SailToDewford:: - setobjectpriority LOCALID_BRINEY_R104, MAP_ROUTE104, 0 - setobjectpriority OBJ_EVENT_ID_PLAYER, MAP_ROUTE104, 0 + setobjectsubpriority LOCALID_BRINEY_R104, MAP_ROUTE104, 0 + setobjectsubpriority OBJ_EVENT_ID_PLAYER, MAP_ROUTE104, 0 applymovement LOCALID_BRINEY_R104, Route104_Movement_BrineyBoardBoat waitmovement 0 removeobject LOCALID_BRINEY_R104 @@ -409,7 +395,7 @@ Route104_EventScript_ArriveInDewford:: waitmovement 0 setobjectxyperm LOCALID_BRINEY_DEWFORD, 12, 8 addobject LOCALID_BRINEY_DEWFORD - setobjectpriority LOCALID_BRINEY_DEWFORD, MAP_DEWFORD_TOWN, 0 + setobjectsubpriority LOCALID_BRINEY_DEWFORD, MAP_DEWFORD_TOWN, 0 clearflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN applymovement LOCALID_BRINEY_DEWFORD, Route104_Movement_BrineyExitBoat waitmovement 0 @@ -419,8 +405,8 @@ Route104_EventScript_ArriveInDewford:: setflag FLAG_HIDE_ROUTE_104_MR_BRINEY_BOAT hideobjectat LOCALID_BOAT_R104, MAP_ROUTE104 copyvar VAR_BRINEY_LOCATION, VAR_0x8008 - resetobjectpriority OBJ_EVENT_ID_PLAYER, MAP_ROUTE104 - resetobjectpriority LOCALID_BRINEY_DEWFORD, MAP_DEWFORD_TOWN + resetobjectsubpriority OBJ_EVENT_ID_PLAYER, MAP_ROUTE104 + resetobjectsubpriority LOCALID_BRINEY_DEWFORD, MAP_DEWFORD_TOWN copyobjectxytoperm LOCALID_BRINEY_DEWFORD setvar VAR_BOARD_BRINEY_BOAT_STATE, 0 goto_if_unset FLAG_DELIVERED_STEVEN_LETTER, Route104_EventScript_DeliverLetterReminder @@ -873,12 +859,10 @@ Route104_EventScript_Billy:: Route104_EventScript_Haley:: trainerbattle_single TRAINER_HALEY_1, Route104_Text_HaleyIntro, Route104_Text_HaleyDefeat, Route104_EventScript_TryRegisterHaleyAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route104_EventScript_RematchHaley + goto_if_eq VAR_RESULT, TRUE, Route104_EventScript_RematchHaley setvar VAR_0x8004, TRAINER_HALEY_1 specialvar VAR_RESULT, IsTrainerRegistered - compare VAR_RESULT, FALSE - goto_if_eq Route104_EventScript_TryRegisterHaley + goto_if_eq VAR_RESULT, FALSE, Route104_EventScript_TryRegisterHaley msgbox Route104_Text_HaleyPostBattle, MSGBOX_DEFAULT release end @@ -916,12 +900,10 @@ Route104_EventScript_RematchHaley:: Route104_EventScript_Winston:: trainerbattle_single TRAINER_WINSTON_1, Route104_Text_WinstonIntro, Route104_Text_WinstonDefeat, Route104_EventScript_TryRegisterWinstonAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route104_EventScript_RematchWinston + goto_if_eq VAR_RESULT, TRUE, Route104_EventScript_RematchWinston setvar VAR_0x8004, TRAINER_WINSTON_1 specialvar VAR_RESULT, IsTrainerRegistered - compare VAR_RESULT, FALSE - goto_if_eq Route104_EventScript_TryRegisterWinston + goto_if_eq VAR_RESULT, FALSE, Route104_EventScript_TryRegisterWinston msgbox Route104_Text_WinstonPostBattle, MSGBOX_DEFAULT release end @@ -959,12 +941,10 @@ Route104_EventScript_RematchWinston:: Route104_EventScript_Cindy:: trainerbattle_single TRAINER_CINDY_1, Route104_Text_CindyIntro, Route104_Text_CindyDefeat, Route104_EventScript_TryRegisterCindyAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route104_EventScript_RematchCindy + goto_if_eq VAR_RESULT, TRUE, Route104_EventScript_RematchCindy setvar VAR_0x8004, TRAINER_CINDY_1 specialvar VAR_RESULT, IsTrainerRegistered - compare VAR_RESULT, FALSE - goto_if_eq Route104_EventScript_TryRegisterCindy + goto_if_eq VAR_RESULT, FALSE, Route104_EventScript_TryRegisterCindy msgbox Route104_Text_CindyPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route104_MrBrineysHouse/scripts.inc b/data/maps/Route104_MrBrineysHouse/scripts.inc index f2e169d105..4c693cb4fa 100644 --- a/data/maps/Route104_MrBrineysHouse/scripts.inc +++ b/data/maps/Route104_MrBrineysHouse/scripts.inc @@ -7,8 +7,7 @@ Route104_MrBrineysHouse_MapScripts:: Route104_MrBrineysHouse_OnTransition: setflag FLAG_LANDMARK_MR_BRINEY_HOUSE - compare VAR_BRINEY_HOUSE_STATE, 1 - call_if_eq Route104_MrBrineysHouse_EventScript_SetBrineyPeekoPos + call_if_eq VAR_BRINEY_HOUSE_STATE, 1, Route104_MrBrineysHouse_EventScript_SetBrineyPeekoPos call_if_set FLAG_RECEIVED_POKENAV, Route104_MrBrineysHouse_EventScript_HideRustboroRival end @@ -36,8 +35,7 @@ Route104_MrBrineysHouse_EventScript_SailingIntro:: setflag FLAG_MR_BRINEY_SAILING_INTRO msgbox Route104_MrBrineysHouse_Text_WaitUpPeeko, MSGBOX_DEFAULT msgbox Route104_MrBrineysHouse_Text_ItsYouLetsSailToDewford, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq Route104_MrBrineysHouse_EventScript_DeclineDeliverySailing + goto_if_eq VAR_RESULT, NO, Route104_MrBrineysHouse_EventScript_DeclineDeliverySailing goto Route104_MrBrineysHouse_EventScript_SailToDewford end @@ -53,15 +51,13 @@ Route104_MrBrineysHouse_EventScript_WhereAreWeBound:: Route104_MrBrineysHouse_EventScript_SailBothDeliveries:: msgbox Route104_MrBrineysHouse_Text_NeedToMakeDeliveriesSailToDewford, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq Route104_MrBrineysHouse_EventScript_DeclineDeliverySailing + goto_if_eq VAR_RESULT, NO, Route104_MrBrineysHouse_EventScript_DeclineDeliverySailing goto Route104_MrBrineysHouse_EventScript_SailToDewford end Route104_MrBrineysHouse_EventScript_SailDeliverPackage:: msgbox Route104_MrBrineysHouse_Text_NeedToDeliverPackageSailToDewford, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq Route104_MrBrineysHouse_EventScript_DeclineDeliverySailing + goto_if_eq VAR_RESULT, NO, Route104_MrBrineysHouse_EventScript_DeclineDeliverySailing goto Route104_MrBrineysHouse_EventScript_SailToDewford end @@ -86,7 +82,7 @@ Route104_MrBrineysHouse_EventScript_SailToDewford:: setvar VAR_ROUTE104_STATE, 2 setflag FLAG_HIDE_RUSTBORO_CITY_RIVAL setflag FLAG_HIDE_ROUTE_104_RIVAL - warp MAP_ROUTE104, 255, 13, 51 + warp MAP_ROUTE104, 13, 51 waitstate releaseall end diff --git a/data/maps/Route104_PrettyPetalFlowerShop/scripts.inc b/data/maps/Route104_PrettyPetalFlowerShop/scripts.inc index 34f5ba42c4..5f0ec28fa5 100644 --- a/data/maps/Route104_PrettyPetalFlowerShop/scripts.inc +++ b/data/maps/Route104_PrettyPetalFlowerShop/scripts.inc @@ -23,19 +23,15 @@ Route104_PrettyPetalFlowerShop_EventScript_ShopOwner:: goto_if_set FLAG_MET_PRETTY_PETAL_SHOP_OWNER, Route104_PrettyPetalFlowerShop_EventScript_AlreadyMet setflag FLAG_MET_PRETTY_PETAL_SHOP_OWNER msgbox Route104_PrettyPetalFlowerShop_Text_IntroLearnAboutBerries, MSGBOX_YESNO - compare VAR_RESULT, YES - call_if_eq Route104_PrettyPetalFlowerShop_EventScript_ExplainBerries - compare VAR_RESULT, NO - call_if_eq Route104_PrettyPetalFlowerShop_EventScript_DontExplainBerries + call_if_eq VAR_RESULT, YES, Route104_PrettyPetalFlowerShop_EventScript_ExplainBerries + call_if_eq VAR_RESULT, NO, Route104_PrettyPetalFlowerShop_EventScript_DontExplainBerries release end Route104_PrettyPetalFlowerShop_EventScript_AlreadyMet:: msgbox Route104_PrettyPetalFlowerShop_Text_LearnAboutBerries, MSGBOX_YESNO - compare VAR_RESULT, YES - call_if_eq Route104_PrettyPetalFlowerShop_EventScript_ExplainBerries - compare VAR_RESULT, NO - call_if_eq Route104_PrettyPetalFlowerShop_EventScript_DontExplainBerries + call_if_eq VAR_RESULT, YES, Route104_PrettyPetalFlowerShop_EventScript_ExplainBerries + call_if_eq VAR_RESULT, NO, Route104_PrettyPetalFlowerShop_EventScript_DontExplainBerries release end @@ -92,8 +88,7 @@ Route104_PrettyPetalFlowerShop_EventScript_RandomBerryGirl:: random 8 addvar VAR_RESULT, FIRST_BERRY_INDEX giveitem VAR_RESULT - compare VAR_RESULT, 0 - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, 0, Common_EventScript_ShowBagIsFull setflag FLAG_DAILY_FLOWER_SHOP_RECEIVED_BERRY msgbox Route104_PrettyPetalFlowerShop_Text_MachineMixesBerries, MSGBOX_DEFAULT release diff --git a/data/maps/Route105/scripts.inc b/data/maps/Route105/scripts.inc index b60cd181fa..bfad0daaae 100644 --- a/data/maps/Route105/scripts.inc +++ b/data/maps/Route105/scripts.inc @@ -6,24 +6,19 @@ Route105_MapScripts:: Route105_OnLoad: call_if_unset FLAG_REGI_DOORS_OPENED, Route105_CloseRegiEntrance - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_105_NORTH - call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute105North - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_105_SOUTH - call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute105South + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_105_NORTH, AbnormalWeather_EventScript_PlaceTilesRoute105North + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_105_SOUTH, AbnormalWeather_EventScript_PlaceTilesRoute105South end Route105_CloseRegiEntrance:: - setmetatile 9, 19, METATILE_General_RockWall_RockBase, 1 - setmetatile 9, 20, METATILE_General_RockWall_SandBase, 1 + setmetatile 9, 19, METATILE_General_RockWall_RockBase, TRUE + setmetatile 9, 20, METATILE_General_RockWall_SandBase, TRUE return Route105_OnTransition: - compare VAR_SHOULD_END_ABNORMAL_WEATHER, 1 - call_if_eq AbnormalWeather_EventScript_HideMapNamePopup - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_105_NORTH - call_if_eq AbnormalWeather_StartKyogreWeather - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_105_SOUTH - call_if_eq AbnormalWeather_StartKyogreWeather + call_if_eq VAR_SHOULD_END_ABNORMAL_WEATHER, 1, AbnormalWeather_EventScript_HideMapNamePopup + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_105_NORTH, AbnormalWeather_StartKyogreWeather + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_105_SOUTH, AbnormalWeather_StartKyogreWeather end Route105_OnFrame: @@ -63,8 +58,7 @@ Route105_EventScript_Josue:: Route105_EventScript_Andres:: trainerbattle_single TRAINER_ANDRES_1, Route105_Text_AndresIntro, Route105_Text_AndresDefeated, Route105_EventScript_AndresRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route105_EventScript_AndresRematch + goto_if_eq VAR_RESULT, TRUE, Route105_EventScript_AndresRematch msgbox Route105_Text_AndresPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route106/scripts.inc b/data/maps/Route106/scripts.inc index 2107ce1c3b..0202f57f01 100644 --- a/data/maps/Route106/scripts.inc +++ b/data/maps/Route106/scripts.inc @@ -18,8 +18,7 @@ Route106_EventScript_Kyla:: Route106_EventScript_Elliot:: trainerbattle_single TRAINER_ELLIOT_1, Route106_Text_ElliotIntro, Route106_Text_ElliotDefeated, Route106_EventScript_ElliotRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route106_EventScript_ElliotRematch + goto_if_eq VAR_RESULT, TRUE, Route106_EventScript_ElliotRematch msgbox Route106_Text_ElliotPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route107/scripts.inc b/data/maps/Route107/scripts.inc index cffeafb08f..b61e3e705e 100644 --- a/data/maps/Route107/scripts.inc +++ b/data/maps/Route107/scripts.inc @@ -9,8 +9,7 @@ Route107_EventScript_Darrin:: Route107_EventScript_Tony:: trainerbattle_single TRAINER_TONY_1, Route107_Text_TonyIntro, Route107_Text_TonyDefeated, Route107_EventScript_TonyRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route107_EventScript_TonyRematch + goto_if_eq VAR_RESULT, TRUE, Route107_EventScript_TonyRematch msgbox Route107_Text_TonyPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route108/scripts.inc b/data/maps/Route108/scripts.inc index 8663915545..cc2a3e9c3d 100644 --- a/data/maps/Route108/scripts.inc +++ b/data/maps/Route108/scripts.inc @@ -29,8 +29,7 @@ Route108_EventScript_Carolina:: Route108_EventScript_Cory:: trainerbattle_single TRAINER_CORY_1, Route108_Text_CoryIntro, Route108_Text_CoryDefeated, Route108_EventScript_CoryRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route108_EventScript_CoryRematch + goto_if_eq VAR_RESULT, TRUE, Route108_EventScript_CoryRematch msgbox Route108_Text_CoryPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route109/scripts.inc b/data/maps/Route109/scripts.inc index 37852c873f..f0353fef4d 100644 --- a/data/maps/Route109/scripts.inc +++ b/data/maps/Route109/scripts.inc @@ -6,8 +6,8 @@ Route109_MapScripts:: Route109_EventScript_StartDepartForDewford:: call EventScript_BackupMrBrineyLocation - setobjectpriority LOCALID_BRINEY_R109, MAP_ROUTE109, 0 - setobjectpriority OBJ_EVENT_ID_PLAYER, MAP_ROUTE109, 0 + setobjectsubpriority LOCALID_BRINEY_R109, MAP_ROUTE109, 0 + setobjectsubpriority OBJ_EVENT_ID_PLAYER, MAP_ROUTE109, 0 applymovement LOCALID_BRINEY_R109, Route109_Movement_BrineyEnterBoat waitmovement 0 removeobject LOCALID_BRINEY_R109 @@ -50,7 +50,7 @@ Route109_EventScript_DoSailToDewford:: clearflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD_TOWN setobjectxyperm LOCALID_BRINEY_DEWFORD, 12, 8 addobject LOCALID_BRINEY_DEWFORD - setobjectpriority LOCALID_BRINEY_DEWFORD, MAP_DEWFORD_TOWN, 0 + setobjectsubpriority LOCALID_BRINEY_DEWFORD, MAP_DEWFORD_TOWN, 0 applymovement LOCALID_BRINEY_DEWFORD, Route109_Movement_BrineyExitBoat waitmovement 0 clearflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN @@ -59,8 +59,8 @@ Route109_EventScript_DoSailToDewford:: msgbox DewfordTown_Text_BrineyLandedInDewford, MSGBOX_DEFAULT closemessage copyvar VAR_BRINEY_LOCATION, VAR_0x8008 - resetobjectpriority OBJ_EVENT_ID_PLAYER, MAP_ROUTE109 - resetobjectpriority LOCALID_BRINEY_DEWFORD, MAP_DEWFORD_TOWN + resetobjectsubpriority OBJ_EVENT_ID_PLAYER, MAP_ROUTE109 + resetobjectsubpriority LOCALID_BRINEY_DEWFORD, MAP_DEWFORD_TOWN copyobjectxytoperm LOCALID_BRINEY_DEWFORD release end @@ -282,8 +282,7 @@ Route109_EventScript_MrBriney:: Route109_EventScript_HaveNotDeliveredDevonGood:: message Route109_Text_BrineySailToDewfordQuestion msgbox Route109_Text_BrineySailToDewfordQuestion, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq Route109_EventScript_StayHere + goto_if_eq VAR_RESULT, NO, Route109_EventScript_StayHere goto Route109_EventScript_SailToDewford end @@ -334,8 +333,7 @@ Route109_EventScript_SoftSandGirl:: goto_if_set FLAG_RECEIVED_SOFT_SAND, Route109_EventScript_AlreadyReceivedSoftSand msgbox Route109_Text_YouCanHaveThis, MSGBOX_DEFAULT giveitem ITEM_SOFT_SAND - compare VAR_RESULT, 0 - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, 0, Common_EventScript_ShowBagIsFull closemessage applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection waitmovement 0 @@ -399,8 +397,7 @@ Route109_EventScript_Edmond:: Route109_EventScript_Ricky:: trainerbattle_single TRAINER_RICKY_1, Route109_Text_RickyIntro, Route109_Text_RickyDefeated, Route109_EventScript_RickyRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route109_EventScript_RickyRematch + goto_if_eq VAR_RESULT, TRUE, Route109_EventScript_RickyRematch msgbox Route109_Text_RickyPostBattle, MSGBOX_DEFAULT release end @@ -421,8 +418,7 @@ Route109_EventScript_RickyRematch:: Route109_EventScript_Lola:: trainerbattle_single TRAINER_LOLA_1, Route109_Text_LolaIntro, Route109_Text_LolaDefeated, Route109_EventScript_LolaRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route109_EventScript_LolaRematch + goto_if_eq VAR_RESULT, TRUE, Route109_EventScript_LolaRematch msgbox Route109_Text_LolaPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route109_SeashoreHouse/scripts.inc b/data/maps/Route109_SeashoreHouse/scripts.inc index c4cfd1576e..afb2a4aa0d 100644 --- a/data/maps/Route109_SeashoreHouse/scripts.inc +++ b/data/maps/Route109_SeashoreHouse/scripts.inc @@ -25,8 +25,7 @@ Route109_SeashoreHouse_EventScript_AlreadyGaveIntroduction:: Route109_SeashoreHouse_EventScript_DefeatedTrainers:: msgbox Route109_SeashoreHouse_Text_TakeTheseSodaPopBottles, MSGBOX_DEFAULT giveitem ITEM_SODA_POP, 6 - compare VAR_RESULT, FALSE - goto_if_eq Route109_SeashoreHouse_EventScript_BagFull + goto_if_eq VAR_RESULT, FALSE, Route109_SeashoreHouse_EventScript_BagFull setflag FLAG_RECEIVED_6_SODA_POP release end @@ -37,25 +36,22 @@ Route109_SeashoreHouse_EventScript_BagFull:: end Route109_SeashoreHouse_EventScript_AlreadyReceivedSodaPop:: - showmoneybox 0, 0, 0 + showmoneybox 0, 0 msgbox Route109_SeashoreHouse_Text_WantToBuySodaPop, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route109_SeashoreHouse_EventScript_BuySodaPop + goto_if_eq VAR_RESULT, YES, Route109_SeashoreHouse_EventScript_BuySodaPop msgbox Route109_SeashoreHouse_Text_ThatsTooBad, MSGBOX_DEFAULT hidemoneybox release end Route109_SeashoreHouse_EventScript_BuySodaPop:: - checkmoney 300, 0 - compare VAR_RESULT, FALSE - goto_if_eq Route109_SeashoreHouse_EventScript_NotEnoughMoney - checkitemspace ITEM_SODA_POP, 1 - compare VAR_RESULT, FALSE - goto_if_eq Route109_SeashoreHouse_EventScript_NotEnoughSpace + checkmoney 300 + goto_if_eq VAR_RESULT, FALSE, Route109_SeashoreHouse_EventScript_NotEnoughMoney + checkitemspace ITEM_SODA_POP + goto_if_eq VAR_RESULT, FALSE, Route109_SeashoreHouse_EventScript_NotEnoughSpace msgbox Route109_SeashoreHouse_Text_HereYouGo, MSGBOX_DEFAULT - removemoney 300, 0 - updatemoneybox 0, 0 + removemoney 300 + updatemoneybox giveitem ITEM_SODA_POP hidemoneybox release diff --git a/data/maps/Route110/scripts.inc b/data/maps/Route110/scripts.inc index abb42cc127..7d16c8b10c 100644 --- a/data/maps/Route110/scripts.inc +++ b/data/maps/Route110/scripts.inc @@ -16,8 +16,7 @@ Route110_OnResume: Route110_OnTransition: call Common_EventScript_SetupRivalGfxId call Common_EventScript_SetupRivalOnBikeGfxId - compare VAR_CYCLING_CHALLENGE_STATE, 1 - call_if_eq Route110_EventScript_SaveCyclingMusic + call_if_eq VAR_CYCLING_CHALLENGE_STATE, 1, Route110_EventScript_SaveCyclingMusic end Route110_EventScript_SaveCyclingMusic:: @@ -136,8 +135,7 @@ Route110_EventScript_TrickHouseSign:: Route110_EventScript_CyclingRoadResultsSign:: lockall specialvar VAR_RESULT, GetRecordedCyclingRoadResults - compare VAR_RESULT, FALSE - goto_if_eq Route110_EventScript_NoRecordSet + goto_if_eq VAR_RESULT, FALSE, Route110_EventScript_NoRecordSet msgbox Route110_Text_BestRecord, MSGBOX_DEFAULT releaseall end @@ -151,10 +149,8 @@ Route110_EventScript_ChallengeGuy:: lock faceplayer specialvar VAR_RESULT, GetPlayerAvatarBike - compare VAR_RESULT, 1 - goto_if_eq Route110_EventScript_PlayerRidingAcroBike - compare VAR_CYCLING_CHALLENGE_STATE, 0 - goto_if_eq Route110_EventScript_PlayerNotRidingBike + goto_if_eq VAR_RESULT, 1, Route110_EventScript_PlayerRidingAcroBike + goto_if_eq VAR_CYCLING_CHALLENGE_STATE, 0, Route110_EventScript_PlayerNotRidingBike msgbox Route110_Text_AlwaysAimHigher, MSGBOX_DEFAULT release end @@ -182,8 +178,7 @@ Route110_EventScript_Jaclyn:: Route110_EventScript_Edwin:: trainerbattle_single TRAINER_EDWIN_1, Route110_Text_EdwinIntro, Route110_Text_EdwinDefeated, Route110_EventScript_EdwinRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route110_EventScript_EdwinRematch + goto_if_eq VAR_RESULT, TRUE, Route110_EventScript_EdwinRematch msgbox Route110_Text_EdwinPostBattle, MSGBOX_DEFAULT release end @@ -219,8 +214,7 @@ Route110_EventScript_Anthony:: Route110_EventScript_Benjamin:: trainerbattle_single TRAINER_BENJAMIN_1, Route110_Text_BenjaminIntro, Route110_Text_BenjaminDefeated, Route110_EventScript_BenjaminRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route110_EventScript_BenjaminRematch + goto_if_eq VAR_RESULT, TRUE, Route110_EventScript_BenjaminRematch msgbox Route110_Text_BenjaminPostBattle, MSGBOX_DEFAULT release end @@ -246,8 +240,7 @@ Route110_EventScript_Jasmine:: Route110_EventScript_Abigail:: trainerbattle_single TRAINER_ABIGAIL_1, Route110_Text_AbigailIntro, Route110_Text_AbigailDefeated, Route110_EventScript_AbigailRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route110_EventScript_AbigailRematch + goto_if_eq VAR_RESULT, TRUE, Route110_EventScript_AbigailRematch msgbox Route110_Text_AbigailPostBattle, MSGBOX_DEFAULT release end @@ -268,8 +261,7 @@ Route110_EventScript_AbigailRematch:: Route110_EventScript_Isabel:: trainerbattle_single TRAINER_ISABEL_1, Route110_Text_IsabelIntro, Route110_Text_IsabelDefeated, Route110_EventScript_IsabelRegisterMatchCallAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route110_EventScript_IsabelRematch + goto_if_eq VAR_RESULT, TRUE, Route110_EventScript_IsabelRematch msgbox Route110_Text_IsabelPostBattle, MSGBOX_DEFAULT release end @@ -384,10 +376,8 @@ Route110_EventScript_RivalTrigger3:: Route110_EventScript_RivalScene:: lockall checkplayergender - compare VAR_RESULT, MALE - call_if_eq Route110_EventScript_PlayMayMusic - compare VAR_RESULT, FEMALE - call_if_eq Route110_EventScript_PlayBrendanMusic + call_if_eq VAR_RESULT, MALE, Route110_EventScript_PlayMayMusic + call_if_eq VAR_RESULT, FEMALE, Route110_EventScript_PlayBrendanMusic applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterDown waitmovement 0 applymovement LOCALID_RIVAL, Common_Movement_ExclamationMark @@ -395,17 +385,12 @@ Route110_EventScript_RivalScene:: applymovement LOCALID_RIVAL, Common_Movement_Delay48 waitmovement 0 delay 30 - compare VAR_0x8008, 1 - call_if_eq Route110_EventScript_RivalApproachPlayer1 - compare VAR_0x8008, 2 - call_if_eq Route110_EventScript_RivalApproachPlayer2 - compare VAR_0x8008, 3 - call_if_eq Route110_EventScript_RivalApproachPlayer3 + call_if_eq VAR_0x8008, 1, Route110_EventScript_RivalApproachPlayer1 + call_if_eq VAR_0x8008, 2, Route110_EventScript_RivalApproachPlayer2 + call_if_eq VAR_0x8008, 3, Route110_EventScript_RivalApproachPlayer3 checkplayergender - compare VAR_RESULT, MALE - goto_if_eq Route110_EventScript_MayBattle - compare VAR_RESULT, FEMALE - goto_if_eq Route110_EventScript_BrendanBattle + goto_if_eq VAR_RESULT, MALE, Route110_EventScript_MayBattle + goto_if_eq VAR_RESULT, FEMALE, Route110_EventScript_BrendanBattle releaseall end @@ -483,23 +468,17 @@ Route110_EventScript_GiveItemfinder:: Route110_EventScript_RivalExit:: closemessage - compare VAR_0x8008, 1 - call_if_eq Route110_EventScript_MoveRival1 - compare VAR_0x8008, 2 - call_if_eq Route110_EventScript_MoveRival2 - compare VAR_0x8008, 3 - call_if_eq Route110_EventScript_MoveRival3 + call_if_eq VAR_0x8008, 1, Route110_EventScript_MoveRival1 + call_if_eq VAR_0x8008, 2, Route110_EventScript_MoveRival2 + call_if_eq VAR_0x8008, 3, Route110_EventScript_MoveRival3 setobjectmovementtype LOCALID_RIVAL, MOVEMENT_TYPE_FACE_RIGHT setobjectmovementtype LOCALID_RIVAL_ON_BIKE, MOVEMENT_TYPE_FACE_RIGHT removeobject LOCALID_RIVAL addobject LOCALID_RIVAL_ON_BIKE delay 45 - compare VAR_0x8008, 1 - call_if_eq Route110_EventScript_RivalExit1 - compare VAR_0x8008, 2 - call_if_eq Route110_EventScript_RivalExit2 - compare VAR_0x8008, 3 - call_if_eq Route110_EventScript_RivalExit3 + call_if_eq VAR_0x8008, 1, Route110_EventScript_RivalExit1 + call_if_eq VAR_0x8008, 2, Route110_EventScript_RivalExit2 + call_if_eq VAR_0x8008, 3, Route110_EventScript_RivalExit3 removeobject LOCALID_RIVAL_ON_BIKE setvar VAR_ROUTE110_STATE, 1 savebgm MUS_DUMMY @@ -625,14 +604,10 @@ Route110_EventScript_BirchScene:: waitmovement 0 applymovement LOCALID_BIRCH, Common_Movement_Delay48 waitmovement 0 - compare VAR_0x8008, 1 - call_if_eq Route110_EventScript_BirchApproachPlayer1 - compare VAR_0x8008, 2 - call_if_eq Route110_EventScript_BirchApproachPlayer2 - compare VAR_0x8008, 3 - call_if_eq Route110_EventScript_BirchApproachPlayer3 - compare VAR_0x8008, 4 - call_if_eq Route110_EventScript_BirchApproachPlayer4 + call_if_eq VAR_0x8008, 1, Route110_EventScript_BirchApproachPlayer1 + call_if_eq VAR_0x8008, 2, Route110_EventScript_BirchApproachPlayer2 + call_if_eq VAR_0x8008, 3, Route110_EventScript_BirchApproachPlayer3 + call_if_eq VAR_0x8008, 4, Route110_EventScript_BirchApproachPlayer4 msgbox Route110_Text_ImagineSeeingYouHere, MSGBOX_DEFAULT closemessage delay 20 @@ -656,14 +631,10 @@ Route110_EventScript_BirchScene:: setflag FLAG_ENABLE_PROF_BIRCH_MATCH_CALL msgbox Route110_Text_KeepAnEyeOutForRival, MSGBOX_DEFAULT closemessage - compare VAR_0x8008, 1 - call_if_eq Route110_EventScript_BirchExit1 - compare VAR_0x8008, 2 - call_if_eq Route110_EventScript_BirchExit2 - compare VAR_0x8008, 3 - call_if_eq Route110_EventScript_BirchExit3 - compare VAR_0x8008, 4 - call_if_eq Route110_EventScript_BirchExit4 + call_if_eq VAR_0x8008, 1, Route110_EventScript_BirchExit1 + call_if_eq VAR_0x8008, 2, Route110_EventScript_BirchExit2 + call_if_eq VAR_0x8008, 3, Route110_EventScript_BirchExit3 + call_if_eq VAR_0x8008, 4, Route110_EventScript_BirchExit4 removeobject LOCALID_BIRCH setvar VAR_REGISTER_BIRCH_STATE, 2 releaseall diff --git a/data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc b/data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc index 4bad754c4d..5eb1f3dea2 100644 --- a/data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc +++ b/data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc @@ -11,8 +11,7 @@ Route110_SeasideCyclingRoadNorthEntrance_EventScript_Clerk:: Route110_SeasideCyclingRoadNorthEntrance_EventScript_BikeCheck:: lockall specialvar VAR_RESULT, GetPlayerAvatarBike - compare VAR_RESULT, 0 - goto_if_eq Route110_SeasideCyclingRoadNorthEntrance_EventScript_NoBike + goto_if_eq VAR_RESULT, 0, Route110_SeasideCyclingRoadNorthEntrance_EventScript_NoBike setflag FLAG_SYS_CYCLING_ROAD setvar VAR_TEMP_1, 1 releaseall diff --git a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc index 92b4b3e44c..df53f55ccf 100644 --- a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc +++ b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc @@ -3,10 +3,8 @@ Route110_SeasideCyclingRoadSouthEntrance_MapScripts:: .byte 0 Route110_SeasideCyclingRoadSouthEntrance_OnTransition: - compare VAR_CYCLING_CHALLENGE_STATE, 3 - call_if_eq Route110_SeasideCyclingRoadSouthEntrance_EventScript_RestartChallenge - compare VAR_CYCLING_CHALLENGE_STATE, 2 - call_if_eq Route110_SeasideCyclingRoadSouthEntrance_EventScript_RestartChallenge + call_if_eq VAR_CYCLING_CHALLENGE_STATE, 3, Route110_SeasideCyclingRoadSouthEntrance_EventScript_RestartChallenge + call_if_eq VAR_CYCLING_CHALLENGE_STATE, 2, Route110_SeasideCyclingRoadSouthEntrance_EventScript_RestartChallenge end Route110_SeasideCyclingRoadSouthEntrance_EventScript_RestartChallenge:: @@ -23,10 +21,8 @@ Route110_SeasideCyclingRoadSouthEntrance_EventScript_Clerk:: Route110_SeasideCyclingRoadSouthEntrance_EventScript_BikeCheck:: lockall specialvar VAR_RESULT, GetPlayerAvatarBike - compare VAR_RESULT, 2 - call_if_eq Route110_SeasideCyclingRoadSouthEntrance_EventScript_OnMachBike - compare VAR_RESULT, 0 - goto_if_eq Route110_SeasideCyclingRoadSouthEntrance_EventScript_NoBike + call_if_eq VAR_RESULT, 2, Route110_SeasideCyclingRoadSouthEntrance_EventScript_OnMachBike + goto_if_eq VAR_RESULT, 0, Route110_SeasideCyclingRoadSouthEntrance_EventScript_NoBike setflag FLAG_SYS_CYCLING_ROAD setvar VAR_TEMP_1, 1 releaseall diff --git a/data/maps/Route110_TrickHouseEnd/scripts.inc b/data/maps/Route110_TrickHouseEnd/scripts.inc index f30d74f01c..be8f75e961 100644 --- a/data/maps/Route110_TrickHouseEnd/scripts.inc +++ b/data/maps/Route110_TrickHouseEnd/scripts.inc @@ -8,8 +8,7 @@ Route110_TrickHouseEnd_MapScripts:: .byte 0 Route110_TrickHouseEnd_OnResume: - compare VAR_TEMP_1, 1 - call_if_eq Route110_TrickHouseEnd_EventScript_SetDoorClosedMetatile + call_if_eq VAR_TEMP_1, 1, Route110_TrickHouseEnd_EventScript_SetDoorClosedMetatile end Route110_TrickHouseEnd_OnTransition: @@ -39,7 +38,7 @@ Route110_TrickHouseEnd_EventScript_CloseDoor:: end Route110_TrickHouseEnd_EventScript_SetDoorClosedMetatile:: - setmetatile 10, 1, METATILE_GenericBuilding_TrickHouse_Door_Closed, 1 + setmetatile 10, 1, METATILE_GenericBuilding_TrickHouse_Door_Closed, TRUE return Route110_TrickHouseEnd_EventScript_TrickMaster:: @@ -63,8 +62,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle1:: msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 giveitem ITEM_RARE_CANDY - compare VAR_RESULT, FALSE - call_if_eq Route110_TrickHouseEnd_EventScript_BagFull + call_if_eq VAR_RESULT, FALSE, Route110_TrickHouseEnd_EventScript_BagFull msgbox Route110_TrickHouseEnd_Text_MakeNewTricksToStumpYou, MSGBOX_DEFAULT closemessage call Route110_TrickHouseEnd_EventScript_TrickMasterExit @@ -76,8 +74,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle2:: msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 giveitem ITEM_TIMER_BALL - compare VAR_RESULT, FALSE - call_if_eq Route110_TrickHouseEnd_EventScript_BagFull + call_if_eq VAR_RESULT, FALSE, Route110_TrickHouseEnd_EventScript_BagFull msgbox Route110_TrickHouseEnd_Text_MakeNewTricksToStumpYou, MSGBOX_DEFAULT closemessage call Route110_TrickHouseEnd_EventScript_TrickMasterExit @@ -89,8 +86,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle3:: msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 giveitem ITEM_HARD_STONE - compare VAR_RESULT, FALSE - call_if_eq Route110_TrickHouseEnd_EventScript_BagFull + call_if_eq VAR_RESULT, FALSE, Route110_TrickHouseEnd_EventScript_BagFull msgbox Route110_TrickHouseEnd_Text_MakeNewTricksToStumpYou, MSGBOX_DEFAULT closemessage call Route110_TrickHouseEnd_EventScript_TrickMasterExit @@ -102,8 +98,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle4:: msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 giveitem ITEM_SMOKE_BALL - compare VAR_RESULT, FALSE - call_if_eq Route110_TrickHouseEnd_EventScript_BagFull + call_if_eq VAR_RESULT, FALSE, Route110_TrickHouseEnd_EventScript_BagFull msgbox Route110_TrickHouseEnd_Text_MakeNewTricksToStumpYou, MSGBOX_DEFAULT closemessage call Route110_TrickHouseEnd_EventScript_TrickMasterExit @@ -115,8 +110,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle5:: msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 giveitem ITEM_TM12 - compare VAR_RESULT, FALSE - call_if_eq Route110_TrickHouseEnd_EventScript_BagFull + call_if_eq VAR_RESULT, FALSE, Route110_TrickHouseEnd_EventScript_BagFull msgbox Route110_TrickHouseEnd_Text_MakeNewTricksToStumpYou, MSGBOX_DEFAULT closemessage call Route110_TrickHouseEnd_EventScript_TrickMasterExit @@ -128,8 +122,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle6:: msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 giveitem ITEM_MAGNET - compare VAR_RESULT, FALSE - call_if_eq Route110_TrickHouseEnd_EventScript_BagFull + call_if_eq VAR_RESULT, FALSE, Route110_TrickHouseEnd_EventScript_BagFull msgbox Route110_TrickHouseEnd_Text_MakeNewTricksToStumpYou, MSGBOX_DEFAULT closemessage call Route110_TrickHouseEnd_EventScript_TrickMasterExit @@ -141,8 +134,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle7:: msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 giveitem ITEM_PP_MAX - compare VAR_RESULT, FALSE - call_if_eq Route110_TrickHouseEnd_EventScript_BagFull + call_if_eq VAR_RESULT, FALSE, Route110_TrickHouseEnd_EventScript_BagFull msgbox Route110_TrickHouseEnd_Text_MakeNewTricksToStumpYou, MSGBOX_DEFAULT closemessage call Route110_TrickHouseEnd_EventScript_TrickMasterExit @@ -152,14 +144,10 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle7:: Route110_TrickHouseEnd_EventScript_CompletedPuzzle8:: msgbox Route110_TrickHouseEnd_Text_AllNightPolishingFloors, MSGBOX_DEFAULT closemessage - compare VAR_FACING, DIR_SOUTH - call_if_eq Route110_TrickHouseEnd_EventScript_TrickMasterFaceAwaySouth - compare VAR_FACING, DIR_NORTH - call_if_eq Route110_TrickHouseEnd_EventScript_TrickMasterFaceAwayNorth - compare VAR_FACING, DIR_WEST - call_if_eq Route110_TrickHouseEnd_EventScript_TrickMasterFaceAwayWest - compare VAR_FACING, DIR_EAST - call_if_eq Route110_TrickHouseEnd_EventScript_TrickMasterFaceAwayEast + call_if_eq VAR_FACING, DIR_SOUTH, Route110_TrickHouseEnd_EventScript_TrickMasterFaceAwaySouth + call_if_eq VAR_FACING, DIR_NORTH, Route110_TrickHouseEnd_EventScript_TrickMasterFaceAwayNorth + call_if_eq VAR_FACING, DIR_WEST, Route110_TrickHouseEnd_EventScript_TrickMasterFaceAwayWest + call_if_eq VAR_FACING, DIR_EAST, Route110_TrickHouseEnd_EventScript_TrickMasterFaceAwayEast delay 30 msgbox Route110_TrickHouseEnd_Text_FountainOfIdeasRunDry, MSGBOX_DEFAULT closemessage @@ -169,8 +157,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle8:: msgbox Route110_TrickHouseEnd_Text_DefeatedMePreferWhichTent, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 call Route110_TrickHouseEnd_EventScript_ChooseTent - compare VAR_RESULT, FALSE - call_if_eq Route110_TrickHouseEnd_EventScript_NoRoomForTent + call_if_eq VAR_RESULT, FALSE, Route110_TrickHouseEnd_EventScript_NoRoomForTent msgbox Route110_TrickHouseEnd_Text_LeavingOnJourney, MSGBOX_DEFAULT call Route110_TrickHouseEnd_EventScript_TrickMasterExit special ResetTrickHouseNuggetFlag diff --git a/data/maps/Route110_TrickHouseEntrance/scripts.inc b/data/maps/Route110_TrickHouseEntrance/scripts.inc index e756feadca..44dda8c5c1 100644 --- a/data/maps/Route110_TrickHouseEntrance/scripts.inc +++ b/data/maps/Route110_TrickHouseEntrance/scripts.inc @@ -17,18 +17,12 @@ Route110_TrickHouseEntrance_MapScripts:: Route110_TrickHouseEntrance_OnTransition: setflag FLAG_LANDMARK_TRICK_HOUSE - compare VAR_TRICK_HOUSE_ENTER_FROM_CORRIDOR, 1 - goto_if_eq Route110_TrickHouseEntrance_EventScript_EnterFromCorridor - compare VAR_TRICK_HOUSE_PRIZE_PICKUP, 1 - goto_if_eq Route110_TrickHouseEntrance_EventScript_SetReadyToGiveReward - compare VAR_TRICK_HOUSE_FOUND_TRICK_MASTER, 1 - goto_if_eq Route110_TrickHouseEntrance_EventScript_MoveTrickMasterToDoor - compare VAR_TRICK_HOUSE_ENTRANCE_STATE, 5 - call_if_eq Route110_TrickHouseEntrance_EventScript_CheckReadyForNextPuzzle - compare VAR_TRICK_HOUSE_ENTRANCE_STATE, 3 - call_if_eq Route110_TrickHouseEntrance_EventScript_CheckReadyForNextPuzzle - compare VAR_TRICK_HOUSE_ENTRANCE_STATE, 0 - call_if_eq Route110_TrickHouseEntrance_EventScript_CheckReadyForNextPuzzle + goto_if_eq VAR_TRICK_HOUSE_ENTER_FROM_CORRIDOR, 1, Route110_TrickHouseEntrance_EventScript_EnterFromCorridor + goto_if_eq VAR_TRICK_HOUSE_PRIZE_PICKUP, 1, Route110_TrickHouseEntrance_EventScript_SetReadyToGiveReward + goto_if_eq VAR_TRICK_HOUSE_FOUND_TRICK_MASTER, 1, Route110_TrickHouseEntrance_EventScript_MoveTrickMasterToDoor + call_if_eq VAR_TRICK_HOUSE_ENTRANCE_STATE, 5, Route110_TrickHouseEntrance_EventScript_CheckReadyForNextPuzzle + call_if_eq VAR_TRICK_HOUSE_ENTRANCE_STATE, 3, Route110_TrickHouseEntrance_EventScript_CheckReadyForNextPuzzle + call_if_eq VAR_TRICK_HOUSE_ENTRANCE_STATE, 0, Route110_TrickHouseEntrance_EventScript_CheckReadyForNextPuzzle switch VAR_TRICK_HOUSE_ENTRANCE_STATE case 0, Route110_TrickHouseEntrance_EventScript_ReadyBeingWatchedTrigger case 1, Route110_TrickHouseEntrance_EventScript_SetNotBeingWatched1 @@ -38,8 +32,7 @@ Route110_TrickHouseEntrance_OnTransition: Route110_TrickHouseEntrance_EventScript_SetReadyToGiveReward:: setvar VAR_TRICK_HOUSE_BEING_WATCHED_STATE, 1 - compare VAR_TRICK_HOUSE_LEVEL, 8 - goto_if_eq Route110_TrickHouseEntrance_EventScript_ReadyToGiveTentReward + goto_if_eq VAR_TRICK_HOUSE_LEVEL, 8, Route110_TrickHouseEntrance_EventScript_ReadyToGiveTentReward setvar VAR_TRICK_HOUSE_ENTRANCE_STATE, 2 end @@ -55,22 +48,14 @@ Route110_TrickHouseEntrance_EventScript_EnterFromCorridor:: Route110_TrickHouseEntrance_EventScript_CheckReadyForNextPuzzle:: setvar VAR_TRICK_HOUSE_ENTRANCE_STATE, 0 - compare VAR_TRICK_HOUSE_LEVEL, 1 - call_if_eq Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle2 - compare VAR_TRICK_HOUSE_LEVEL, 2 - call_if_eq Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle3 - compare VAR_TRICK_HOUSE_LEVEL, 3 - call_if_eq Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle4 - compare VAR_TRICK_HOUSE_LEVEL, 4 - call_if_eq Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle5 - compare VAR_TRICK_HOUSE_LEVEL, 5 - call_if_eq Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle6 - compare VAR_TRICK_HOUSE_LEVEL, 6 - call_if_eq Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle7 - compare VAR_TRICK_HOUSE_LEVEL, 7 - call_if_eq Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle8 - compare VAR_TRICK_HOUSE_LEVEL, 8 - call_if_eq Route110_TrickHouseEntrance_EventScript_FinishedPuzzles + call_if_eq VAR_TRICK_HOUSE_LEVEL, 1, Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle2 + call_if_eq VAR_TRICK_HOUSE_LEVEL, 2, Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle3 + call_if_eq VAR_TRICK_HOUSE_LEVEL, 3, Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle4 + call_if_eq VAR_TRICK_HOUSE_LEVEL, 4, Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle5 + call_if_eq VAR_TRICK_HOUSE_LEVEL, 5, Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle6 + call_if_eq VAR_TRICK_HOUSE_LEVEL, 6, Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle7 + call_if_eq VAR_TRICK_HOUSE_LEVEL, 7, Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle8 + call_if_eq VAR_TRICK_HOUSE_LEVEL, 8, Route110_TrickHouseEntrance_EventScript_FinishedPuzzles return Route110_TrickHouseEntrance_EventScript_CheckReadyForPuzzle2:: @@ -216,8 +201,7 @@ Route110_TrickHouseEntrance_OnFrame: Route110_TrickHouseEntrance_EventScript_BeginChallenge:: lockall delay 20 - compare VAR_TRICK_HOUSE_LEVEL, 0 - call_if_eq Route110_TrickHouseEntrance_EventScript_MeetTrickMaster + call_if_eq VAR_TRICK_HOUSE_LEVEL, 0, Route110_TrickHouseEntrance_EventScript_MeetTrickMaster msgbox Route110_TrickHouseEntrance_Text_ComeToChallengeTrickHouse, MSGBOX_DEFAULT closemessage delay 20 @@ -251,25 +235,17 @@ Route110_TrickHouseEntrance_EventScript_FoundTrickMaster:: waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_Delay48 waitmovement 0 - compare VAR_TRICK_HOUSE_LEVEL, 0 - call_if_eq Route110_TrickHouseEntrance_EventScript_FoundBeneathDesk - compare VAR_TRICK_HOUSE_LEVEL, 1 - call_if_eq Route110_TrickHouseEntrance_EventScript_FoundBehindTree - compare VAR_TRICK_HOUSE_LEVEL, 2 - call_if_eq Route110_TrickHouseEntrance_EventScript_FoundInDresser - compare VAR_TRICK_HOUSE_LEVEL, 3 - call_if_eq Route110_TrickHouseEntrance_EventScript_FoundBeyondWindow - compare VAR_TRICK_HOUSE_LEVEL, 4 - call_if_eq Route110_TrickHouseEntrance_EventScript_FoundInPlanter - compare VAR_TRICK_HOUSE_LEVEL, 5 - call_if_eq Route110_TrickHouseEntrance_EventScript_FoundInCupboard - compare VAR_TRICK_HOUSE_LEVEL, 6 - call_if_eq Route110_TrickHouseEntrance_EventScript_FoundBehindWindow - compare VAR_TRICK_HOUSE_LEVEL, 7 - call_if_eq Route110_TrickHouseEntrance_EventScript_FoundBeneathCushion + call_if_eq VAR_TRICK_HOUSE_LEVEL, 0, Route110_TrickHouseEntrance_EventScript_FoundBeneathDesk + call_if_eq VAR_TRICK_HOUSE_LEVEL, 1, Route110_TrickHouseEntrance_EventScript_FoundBehindTree + call_if_eq VAR_TRICK_HOUSE_LEVEL, 2, Route110_TrickHouseEntrance_EventScript_FoundInDresser + call_if_eq VAR_TRICK_HOUSE_LEVEL, 3, Route110_TrickHouseEntrance_EventScript_FoundBeyondWindow + call_if_eq VAR_TRICK_HOUSE_LEVEL, 4, Route110_TrickHouseEntrance_EventScript_FoundInPlanter + call_if_eq VAR_TRICK_HOUSE_LEVEL, 5, Route110_TrickHouseEntrance_EventScript_FoundInCupboard + call_if_eq VAR_TRICK_HOUSE_LEVEL, 6, Route110_TrickHouseEntrance_EventScript_FoundBehindWindow + call_if_eq VAR_TRICK_HOUSE_LEVEL, 7, Route110_TrickHouseEntrance_EventScript_FoundBeneathCushion closemessage setvar VAR_TRICK_HOUSE_FOUND_TRICK_MASTER, 1 - warpsilent MAP_ROUTE110_TRICK_HOUSE_ENTRANCE, 255, 6, 2 + warpsilent MAP_ROUTE110_TRICK_HOUSE_ENTRANCE, 6, 2 waitstate releaseall end @@ -352,88 +328,67 @@ Route110_TrickHouseEntrance_EventScript_GiveReward:: applymovement LOCALID_TRICK_MASTER, Common_Movement_FacePlayer waitmovement 0 msgbox Route110_TrickHouseEntrance_Text_YoureHereToAcceptReward, MSGBOX_DEFAULT - compare VAR_TRICK_HOUSE_LEVEL, 1 - goto_if_eq Route110_TrickHouseEntrance_EventScript_GivePuzzle1Reward - compare VAR_TRICK_HOUSE_LEVEL, 2 - goto_if_eq Route110_TrickHouseEntrance_EventScript_GivePuzzle2Reward - compare VAR_TRICK_HOUSE_LEVEL, 3 - goto_if_eq Route110_TrickHouseEntrance_EventScript_GivePuzzle3Reward - compare VAR_TRICK_HOUSE_LEVEL, 4 - goto_if_eq Route110_TrickHouseEntrance_EventScript_GivePuzzle4Reward - compare VAR_TRICK_HOUSE_LEVEL, 5 - goto_if_eq Route110_TrickHouseEntrance_EventScript_GivePuzzle5Reward - compare VAR_TRICK_HOUSE_LEVEL, 6 - goto_if_eq Route110_TrickHouseEntrance_EventScript_GivePuzzle6Reward - compare VAR_TRICK_HOUSE_LEVEL, 7 - goto_if_eq Route110_TrickHouseEntrance_EventScript_GivePuzzle7Reward + goto_if_eq VAR_TRICK_HOUSE_LEVEL, 1, Route110_TrickHouseEntrance_EventScript_GivePuzzle1Reward + goto_if_eq VAR_TRICK_HOUSE_LEVEL, 2, Route110_TrickHouseEntrance_EventScript_GivePuzzle2Reward + goto_if_eq VAR_TRICK_HOUSE_LEVEL, 3, Route110_TrickHouseEntrance_EventScript_GivePuzzle3Reward + goto_if_eq VAR_TRICK_HOUSE_LEVEL, 4, Route110_TrickHouseEntrance_EventScript_GivePuzzle4Reward + goto_if_eq VAR_TRICK_HOUSE_LEVEL, 5, Route110_TrickHouseEntrance_EventScript_GivePuzzle5Reward + goto_if_eq VAR_TRICK_HOUSE_LEVEL, 6, Route110_TrickHouseEntrance_EventScript_GivePuzzle6Reward + goto_if_eq VAR_TRICK_HOUSE_LEVEL, 7, Route110_TrickHouseEntrance_EventScript_GivePuzzle7Reward end Route110_TrickHouseEntrance_EventScript_GivePuzzle1Reward:: giveitem ITEM_RARE_CANDY - compare VAR_RESULT, TRUE - goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward - compare VAR_RESULT, FALSE - call_if_eq Common_EventScript_BagIsFull + goto_if_eq VAR_RESULT, TRUE, Route110_TrickHouseEntrance_EventScript_GotReward + call_if_eq VAR_RESULT, FALSE, Common_EventScript_BagIsFull msgbox Route110_TrickHouseEntrance_Text_DidYouNotComeToClaimReward, MSGBOX_DEFAULT releaseall end Route110_TrickHouseEntrance_EventScript_GivePuzzle2Reward:: giveitem ITEM_TIMER_BALL - compare VAR_RESULT, TRUE - goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward - compare VAR_RESULT, FALSE - call_if_eq Common_EventScript_BagIsFull + goto_if_eq VAR_RESULT, TRUE, Route110_TrickHouseEntrance_EventScript_GotReward + call_if_eq VAR_RESULT, FALSE, Common_EventScript_BagIsFull msgbox Route110_TrickHouseEntrance_Text_DidYouNotComeToClaimReward, MSGBOX_DEFAULT releaseall end Route110_TrickHouseEntrance_EventScript_GivePuzzle3Reward:: giveitem ITEM_HARD_STONE - compare VAR_RESULT, TRUE - goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward - compare VAR_RESULT, FALSE - call_if_eq Common_EventScript_BagIsFull + goto_if_eq VAR_RESULT, TRUE, Route110_TrickHouseEntrance_EventScript_GotReward + call_if_eq VAR_RESULT, FALSE, Common_EventScript_BagIsFull msgbox Route110_TrickHouseEntrance_Text_DidYouNotComeToClaimReward, MSGBOX_DEFAULT releaseall end Route110_TrickHouseEntrance_EventScript_GivePuzzle4Reward:: giveitem ITEM_SMOKE_BALL - compare VAR_RESULT, TRUE - goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward - compare VAR_RESULT, FALSE - call_if_eq Common_EventScript_BagIsFull + goto_if_eq VAR_RESULT, TRUE, Route110_TrickHouseEntrance_EventScript_GotReward + call_if_eq VAR_RESULT, FALSE, Common_EventScript_BagIsFull msgbox Route110_TrickHouseEntrance_Text_DidYouNotComeToClaimReward, MSGBOX_DEFAULT releaseall end Route110_TrickHouseEntrance_EventScript_GivePuzzle5Reward:: giveitem ITEM_TM12 - compare VAR_RESULT, TRUE - goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward - compare VAR_RESULT, FALSE - call_if_eq Common_EventScript_BagIsFull + goto_if_eq VAR_RESULT, TRUE, Route110_TrickHouseEntrance_EventScript_GotReward + call_if_eq VAR_RESULT, FALSE, Common_EventScript_BagIsFull msgbox Route110_TrickHouseEntrance_Text_DidYouNotComeToClaimReward, MSGBOX_DEFAULT releaseall end Route110_TrickHouseEntrance_EventScript_GivePuzzle6Reward:: giveitem ITEM_MAGNET - compare VAR_RESULT, TRUE - goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward - compare VAR_RESULT, FALSE - call_if_eq Common_EventScript_BagIsFull + goto_if_eq VAR_RESULT, TRUE, Route110_TrickHouseEntrance_EventScript_GotReward + call_if_eq VAR_RESULT, FALSE, Common_EventScript_BagIsFull msgbox Route110_TrickHouseEntrance_Text_DidYouNotComeToClaimReward, MSGBOX_DEFAULT releaseall end Route110_TrickHouseEntrance_EventScript_GivePuzzle7Reward:: giveitem ITEM_PP_MAX - compare VAR_RESULT, TRUE - goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward - compare VAR_RESULT, FALSE - call_if_eq Common_EventScript_BagIsFull + goto_if_eq VAR_RESULT, TRUE, Route110_TrickHouseEntrance_EventScript_GotReward + call_if_eq VAR_RESULT, FALSE, Common_EventScript_BagIsFull msgbox Route110_TrickHouseEntrance_Text_DidYouNotComeToClaimReward, MSGBOX_DEFAULT releaseall end @@ -451,10 +406,8 @@ Route110_TrickHouseEntrance_EventScript_MechadollReward:: waitmovement 0 msgbox Route110_TrickHouseEntrance_Text_MechadollWhichTent, MSGBOX_DEFAULT call Route110_TrickHouseEntrance_EventScript_ChooseTent - compare VAR_RESULT, TRUE - goto_if_eq Route110_TrickHouseEntrance_EventScript_ReceivedTent - compare VAR_RESULT, FALSE - call_if_eq Common_EventScript_NoRoomForDecor + goto_if_eq VAR_RESULT, TRUE, Route110_TrickHouseEntrance_EventScript_ReceivedTent + call_if_eq VAR_RESULT, FALSE, Common_EventScript_NoRoomForDecor msgbox Route110_TrickHouseEntrance_Text_PCFullAgain, MSGBOX_DEFAULT releaseall end @@ -506,13 +459,12 @@ Route110_TrickHouseEntrance_EventScript_ItsAScroll:: Route110_TrickHouseEntrance_EventScript_GoInHolePrompt:: msgbox Route110_TrickHouseEntrance_Text_GoInHoleBehindScroll, MSGBOX_YESNO closemessage - compare VAR_RESULT, YES - goto_if_eq Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom + goto_if_eq VAR_RESULT, YES, Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom releaseall end Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom:: - setmetatile 5, 1, METATILE_GenericBuilding_TrickHouse_Stairs_Down, 0 + setmetatile 5, 1, METATILE_GenericBuilding_TrickHouse_Stairs_Down, FALSE special DrawWholeMapView delay 20 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkUp @@ -535,49 +487,49 @@ Route110_TrickHouseEntrance_Movement_EnterRoom: step_end Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom1:: - warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE1, 255, 0, 21 + warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE1, 0, 21 waitstate releaseall end Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom2:: - warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE2, 255, 0, 21 + warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE2, 0, 21 waitstate releaseall end Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom3:: - warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE3, 255, 0, 21 + warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE3, 0, 21 waitstate releaseall end Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom4:: - warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE4, 255, 0, 21 + warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE4, 0, 21 waitstate releaseall end Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom5:: - warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE5, 255, 0, 21 + warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE5, 0, 21 waitstate releaseall end Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom6:: - warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE6, 255, 0, 21 + warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE6, 0, 21 waitstate releaseall end Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom7:: - warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE7, 255, 0, 21 + warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE7, 0, 21 waitstate releaseall end Route110_TrickHouseEntrance_EventScript_EnterPuzzleRoom8:: - warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE8, 255, 0, 21 + warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE8, 0, 21 waitstate releaseall end @@ -588,8 +540,7 @@ Route110_TrickHouseEntrance_EventScript_LeftOnJourneyNote:: end Route110_TrickHouseEntrance_EventScript_CheckLevelForMessage:: - compare VAR_TRICK_HOUSE_LEVEL, 8 - goto_if_eq Route110_TrickHouseEntrance_EventScript_LeftOnJourneyNote2 + goto_if_eq VAR_TRICK_HOUSE_LEVEL, 8, Route110_TrickHouseEntrance_EventScript_LeftOnJourneyNote2 msgbox Route110_TrickHouseEntrance_Text_ItsAScroll, MSGBOX_DEFAULT releaseall end @@ -613,89 +564,81 @@ Route110_TrickHousePuzzle_EventScript_Door:: end Route110_TrickHousePuzzle1_EventScript_Door:: - compare VAR_TRICK_HOUSE_PUZZLE_1_STATE, 0 - goto_if_eq Route110_TrickHousePuzzle_EventScript_DoorLocked + goto_if_eq VAR_TRICK_HOUSE_PUZZLE_1_STATE, 0, Route110_TrickHousePuzzle_EventScript_DoorLocked msgbox Route110_TrickHousePuzzle1_Text_WroteSecretCodeLockOpened, MSGBOX_DEFAULT playse SE_PIN setvar VAR_TRICK_HOUSE_PUZZLE_1_STATE, 2 - setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, 0 + setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, FALSE special DrawWholeMapView releaseall end Route110_TrickHousePuzzle2_EventScript_Door:: - compare VAR_TRICK_HOUSE_PUZZLE_2_STATE, 0 - goto_if_eq Route110_TrickHousePuzzle_EventScript_DoorLocked + goto_if_eq VAR_TRICK_HOUSE_PUZZLE_2_STATE, 0, Route110_TrickHousePuzzle_EventScript_DoorLocked msgbox Route110_TrickHousePuzzle2_Text_WroteSecretCodeLockOpened, MSGBOX_DEFAULT playse SE_PIN setvar VAR_TRICK_HOUSE_PUZZLE_2_STATE, 2 - setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, 0 + setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, FALSE special DrawWholeMapView releaseall end Route110_TrickHousePuzzle3_EventScript_Door:: - compare VAR_TRICK_HOUSE_PUZZLE_3_STATE, 0 - goto_if_eq Route110_TrickHousePuzzle_EventScript_DoorLocked + goto_if_eq VAR_TRICK_HOUSE_PUZZLE_3_STATE, 0, Route110_TrickHousePuzzle_EventScript_DoorLocked msgbox Route110_TrickHousePuzzle3_Text_WroteSecretCodeLockOpened, MSGBOX_DEFAULT playse SE_PIN setvar VAR_TRICK_HOUSE_PUZZLE_3_STATE, 2 - setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, 0 + setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, FALSE special DrawWholeMapView releaseall end Route110_TrickHousePuzzle4_EventScript_Door:: - compare VAR_TRICK_HOUSE_PUZZLE_4_STATE, 0 - goto_if_eq Route110_TrickHousePuzzle_EventScript_DoorLocked + goto_if_eq VAR_TRICK_HOUSE_PUZZLE_4_STATE, 0, Route110_TrickHousePuzzle_EventScript_DoorLocked msgbox Route110_TrickHousePuzzle4_Text_WroteSecretCodeLockOpened, MSGBOX_DEFAULT playse SE_PIN setvar VAR_TRICK_HOUSE_PUZZLE_4_STATE, 2 - setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, 0 + setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, FALSE special DrawWholeMapView releaseall end Route110_TrickHousePuzzle5_EventScript_Door:: - compare VAR_TRICK_HOUSE_PUZZLE_5_STATE, 0 - goto_if_eq Route110_TrickHousePuzzle_EventScript_DoorLocked + goto_if_eq VAR_TRICK_HOUSE_PUZZLE_5_STATE, 0, Route110_TrickHousePuzzle_EventScript_DoorLocked msgbox Route110_TrickHousePuzzle5_Text_WroteSecretCodeLockOpened, MSGBOX_DEFAULT playse SE_PIN setvar VAR_TRICK_HOUSE_PUZZLE_5_STATE, 2 - setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, 0 + setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, FALSE special DrawWholeMapView releaseall end Route110_TrickHousePuzzle6_EventScript_Door:: - compare VAR_TRICK_HOUSE_PUZZLE_6_STATE, 0 - goto_if_eq Route110_TrickHousePuzzle_EventScript_DoorLocked + goto_if_eq VAR_TRICK_HOUSE_PUZZLE_6_STATE, 0, Route110_TrickHousePuzzle_EventScript_DoorLocked msgbox Route110_TrickHousePuzzle6_Text_WroteSecretCodeLockOpened, MSGBOX_DEFAULT playse SE_PIN setvar VAR_TRICK_HOUSE_PUZZLE_6_STATE, 2 - setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, 0 + setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, FALSE special DrawWholeMapView releaseall end Route110_TrickHousePuzzle7_EventScript_Door:: - compare VAR_TRICK_HOUSE_PUZZLE_7_STATE, 0 - goto_if_eq Route110_TrickHousePuzzle_EventScript_DoorLocked + goto_if_eq VAR_TRICK_HOUSE_PUZZLE_7_STATE, 0, Route110_TrickHousePuzzle_EventScript_DoorLocked msgbox Route110_TrickHousePuzzle7_EventScript_WroteSecretCodeLockOpened, MSGBOX_DEFAULT playse SE_PIN setvar VAR_TRICK_HOUSE_PUZZLE_7_STATE, 2 - setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, 0 + setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, FALSE special DrawWholeMapView releaseall end Route110_TrickHousePuzzle8_EventScript_Door:: - compare VAR_TRICK_HOUSE_PUZZLE_8_STATE, 0 - goto_if_eq Route110_TrickHousePuzzle_EventScript_DoorLocked + goto_if_eq VAR_TRICK_HOUSE_PUZZLE_8_STATE, 0, Route110_TrickHousePuzzle_EventScript_DoorLocked msgbox Route110_TrickHousePuzzle8_EventScript_WroteSecretCodeLockOpened, MSGBOX_DEFAULT playse SE_PIN setvar VAR_TRICK_HOUSE_PUZZLE_8_STATE, 2 - setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, 0 + setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, FALSE special DrawWholeMapView releaseall end @@ -722,12 +665,9 @@ Route110_TrickHouseEntrance_EventScript_TrickMasterHiding:: lockall msgbox Route110_TrickHouseEntrance_Text_YoureBeingWatched, MSGBOX_DEFAULT releaseall - compare VAR_TRICK_HOUSE_LEVEL, 0 - call_if_eq Route110_TrickHouseEntrance_EventScript_DoHidingSpotSparkle1 - compare VAR_TRICK_HOUSE_LEVEL, 1 - call_if_eq Route110_TrickHouseEntrance_EventScript_DoHidingSpotSparkle2 - compare VAR_TRICK_HOUSE_LEVEL, 2 - call_if_eq Route110_TrickHouseEntrance_EventScript_DoHidingSpotSparkle3 + call_if_eq VAR_TRICK_HOUSE_LEVEL, 0, Route110_TrickHouseEntrance_EventScript_DoHidingSpotSparkle1 + call_if_eq VAR_TRICK_HOUSE_LEVEL, 1, Route110_TrickHouseEntrance_EventScript_DoHidingSpotSparkle2 + call_if_eq VAR_TRICK_HOUSE_LEVEL, 2, Route110_TrickHouseEntrance_EventScript_DoHidingSpotSparkle3 setvar VAR_TRICK_HOUSE_BEING_WATCHED_STATE, 1 end diff --git a/data/maps/Route110_TrickHousePuzzle1/scripts.inc b/data/maps/Route110_TrickHousePuzzle1/scripts.inc index 6fc6adcd56..2ed769167a 100644 --- a/data/maps/Route110_TrickHousePuzzle1/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle1/scripts.inc @@ -3,18 +3,16 @@ Route110_TrickHousePuzzle1_MapScripts:: .byte 0 Route110_TrickHousePuzzle1_OnLoad: - compare VAR_TRICK_HOUSE_PUZZLE_1_STATE, 2 - goto_if_eq Route110_TrickHousePuzzle1_EventScript_OpenDoor + goto_if_eq VAR_TRICK_HOUSE_PUZZLE_1_STATE, 2, Route110_TrickHousePuzzle1_EventScript_OpenDoor end Route110_TrickHousePuzzle1_EventScript_OpenDoor:: - setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, 0 + setmetatile 13, 1, METATILE_TrickHousePuzzle_Stairs_Down, FALSE end Route110_TrickHousePuzzle1_EventScript_Scroll:: lockall - compare VAR_TRICK_HOUSE_PUZZLE_1_STATE, 0 - goto_if_eq Route110_TrickHousePuzzle1_EventScript_FoundScroll + goto_if_eq VAR_TRICK_HOUSE_PUZZLE_1_STATE, 0, Route110_TrickHousePuzzle1_EventScript_FoundScroll goto Route110_TrickHousePuzzle_EventScript_ReadScrollAgain end diff --git a/data/maps/Route110_TrickHousePuzzle2/scripts.inc b/data/maps/Route110_TrickHousePuzzle2/scripts.inc index a0222733a9..012a62d93d 100644 --- a/data/maps/Route110_TrickHousePuzzle2/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle2/scripts.inc @@ -4,14 +4,10 @@ Route110_TrickHousePuzzle2_MapScripts:: .byte 0 Route110_TrickHousePuzzle2_OnResume: - compare VAR_TEMP_1, 1 - call_if_eq Route110_TrickHousePuzzle2_EventScript_PressButton1 - compare VAR_TEMP_2, 1 - call_if_eq Route110_TrickHousePuzzle2_EventScript_PressButton2 - compare VAR_TEMP_3, 1 - call_if_eq Route110_TrickHousePuzzle2_EventScript_PressButton3 - compare VAR_TEMP_4, 1 - call_if_eq Route110_TrickHousePuzzle2_EventScript_PressButton4 + call_if_eq VAR_TEMP_1, 1, Route110_TrickHousePuzzle2_EventScript_PressButton1 + call_if_eq VAR_TEMP_2, 1, Route110_TrickHousePuzzle2_EventScript_PressButton2 + call_if_eq VAR_TEMP_3, 1, Route110_TrickHousePuzzle2_EventScript_PressButton3 + call_if_eq VAR_TEMP_4, 1, Route110_TrickHousePuzzle2_EventScript_PressButton4 end Route110_TrickHousePuzzle2_OnTransition: @@ -23,8 +19,7 @@ Route110_TrickHousePuzzle2_OnTransition: Route110_TrickHousePuzzle2_EventScript_Scroll:: lockall - compare VAR_TRICK_HOUSE_PUZZLE_2_STATE, 0 - goto_if_eq Route110_TrickHousePuzzle2_EventScript_FoundScroll + goto_if_eq VAR_TRICK_HOUSE_PUZZLE_2_STATE, 0, Route110_TrickHousePuzzle2_EventScript_FoundScroll goto Route110_TrickHousePuzzle_EventScript_ReadScrollAgain end @@ -70,23 +65,23 @@ Route110_TrickHousePuzzle2_EventScript_Button4:: end Route110_TrickHousePuzzle2_EventScript_PressButton1:: - setmetatile 11, 12, METATILE_TrickHousePuzzle_Button_Pressed, 0 - setmetatile 1, 13, METATILE_TrickHousePuzzle_Door_Shuttered, 0 + setmetatile 11, 12, METATILE_TrickHousePuzzle_Button_Pressed, FALSE + setmetatile 1, 13, METATILE_TrickHousePuzzle_Door_Shuttered, FALSE return Route110_TrickHousePuzzle2_EventScript_PressButton2:: - setmetatile 0, 4, METATILE_TrickHousePuzzle_Button_Pressed, 0 - setmetatile 5, 6, METATILE_TrickHousePuzzle_Door_Shuttered, 0 + setmetatile 0, 4, METATILE_TrickHousePuzzle_Button_Pressed, FALSE + setmetatile 5, 6, METATILE_TrickHousePuzzle_Door_Shuttered, FALSE return Route110_TrickHousePuzzle2_EventScript_PressButton3:: - setmetatile 14, 5, METATILE_TrickHousePuzzle_Button_Pressed, 0 - setmetatile 7, 15, METATILE_TrickHousePuzzle_Door_Shuttered, 0 + setmetatile 14, 5, METATILE_TrickHousePuzzle_Button_Pressed, FALSE + setmetatile 7, 15, METATILE_TrickHousePuzzle_Door_Shuttered, FALSE return Route110_TrickHousePuzzle2_EventScript_PressButton4:: - setmetatile 7, 11, METATILE_TrickHousePuzzle_Button_Pressed, 0 - setmetatile 14, 12, METATILE_TrickHousePuzzle_Door_Shuttered, 0 + setmetatile 7, 11, METATILE_TrickHousePuzzle_Button_Pressed, FALSE + setmetatile 14, 12, METATILE_TrickHousePuzzle_Door_Shuttered, FALSE return Route110_TrickHousePuzzle2_EventScript_Ted:: diff --git a/data/maps/Route110_TrickHousePuzzle3/scripts.inc b/data/maps/Route110_TrickHousePuzzle3/scripts.inc index 4e706268c0..1831639b18 100644 --- a/data/maps/Route110_TrickHousePuzzle3/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle3/scripts.inc @@ -5,10 +5,8 @@ Route110_TrickHousePuzzle3_MapScripts:: Route110_TrickHousePuzzle3_OnResume: call Route110_TrickHousePuzzle3_EventScript_UpdateButtonMetatiles - compare VAR_TEMP_9, 0 - call_if_eq Route110_TrickHousePuzzle3_EventScript_SetDoorsState0 - compare VAR_TEMP_9, 1 - call_if_eq Route110_TrickHousePuzzle3_EventScript_SetDoorsState1 + call_if_eq VAR_TEMP_9, 0, Route110_TrickHousePuzzle3_EventScript_SetDoorsState0 + call_if_eq VAR_TEMP_9, 1, Route110_TrickHousePuzzle3_EventScript_SetDoorsState1 end Route110_TrickHousePuzzle3_OnTransition: @@ -21,188 +19,184 @@ Route110_TrickHousePuzzle3_OnTransition: end Route110_TrickHousePuzzle3_EventScript_UpdateButtonMetatiles:: - setmetatile 4, 14, METATILE_TrickHousePuzzle_Button_Up, 0 - setmetatile 3, 11, METATILE_TrickHousePuzzle_Button_Up, 0 - setmetatile 12, 5, METATILE_TrickHousePuzzle_Button_Up, 0 - setmetatile 8, 2, METATILE_TrickHousePuzzle_Button_Up, 0 - compare VAR_TEMP_8, 1 - call_if_eq Route110_TrickHousePuzzle3_EventScript_PressedButton1Metatile - compare VAR_TEMP_8, 2 - call_if_eq Route110_TrickHousePuzzle3_EventScript_PressedButton2Metatile - compare VAR_TEMP_8, 3 - call_if_eq Route110_TrickHousePuzzle3_EventScript_PressedButton3Metatile - compare VAR_TEMP_8, 4 - call_if_eq Route110_TrickHousePuzzle3_EventScript_PressedButton4Metatile + setmetatile 4, 14, METATILE_TrickHousePuzzle_Button_Up, FALSE + setmetatile 3, 11, METATILE_TrickHousePuzzle_Button_Up, FALSE + setmetatile 12, 5, METATILE_TrickHousePuzzle_Button_Up, FALSE + setmetatile 8, 2, METATILE_TrickHousePuzzle_Button_Up, FALSE + call_if_eq VAR_TEMP_8, 1, Route110_TrickHousePuzzle3_EventScript_PressedButton1Metatile + call_if_eq VAR_TEMP_8, 2, Route110_TrickHousePuzzle3_EventScript_PressedButton2Metatile + call_if_eq VAR_TEMP_8, 3, Route110_TrickHousePuzzle3_EventScript_PressedButton3Metatile + call_if_eq VAR_TEMP_8, 4, Route110_TrickHousePuzzle3_EventScript_PressedButton4Metatile return Route110_TrickHousePuzzle3_EventScript_PressedButton1Metatile:: - setmetatile 4, 14, METATILE_TrickHousePuzzle_Button_Pressed, 0 + setmetatile 4, 14, METATILE_TrickHousePuzzle_Button_Pressed, FALSE return Route110_TrickHousePuzzle3_EventScript_PressedButton2Metatile:: - setmetatile 3, 11, METATILE_TrickHousePuzzle_Button_Pressed, 0 + setmetatile 3, 11, METATILE_TrickHousePuzzle_Button_Pressed, FALSE return Route110_TrickHousePuzzle3_EventScript_PressedButton3Metatile:: - setmetatile 12, 5, METATILE_TrickHousePuzzle_Button_Pressed, 0 + setmetatile 12, 5, METATILE_TrickHousePuzzle_Button_Pressed, FALSE return Route110_TrickHousePuzzle3_EventScript_PressedButton4Metatile:: - setmetatile 8, 2, METATILE_TrickHousePuzzle_Button_Pressed, 0 + setmetatile 8, 2, METATILE_TrickHousePuzzle_Button_Pressed, FALSE return Route110_TrickHousePuzzle3_EventScript_SetDoorsState0:: - setmetatile 1, 6, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile0, 0 - setmetatile 2, 6, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile1, 0 - setmetatile 1, 7, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile2, 0 - setmetatile 2, 7, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile3, 0 - setmetatile 1, 9, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile0, 0 - setmetatile 2, 9, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile1, 0 - setmetatile 1, 10, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile2, 0 - setmetatile 2, 10, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile3, 0 - setmetatile 4, 15, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile0, 0 - setmetatile 5, 15, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile1, 0 - setmetatile 4, 16, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile2, 0 - setmetatile 5, 16, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile3, 0 - setmetatile 13, 9, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile0, 0 - setmetatile 14, 9, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile1, 0 - setmetatile 13, 10, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile2, 0 - setmetatile 14, 10, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile3, 0 - setmetatile 13, 15, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile0, 0 - setmetatile 14, 15, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile1, 0 - setmetatile 13, 16, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile2, 0 - setmetatile 14, 16, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile3, 0 - setmetatile 3, 7, METATILE_TrickHousePuzzle_BlueDoorV_Retracted, 1 - setmetatile 3, 8, METATILE_TrickHousePuzzle_Floor_ShadowTop, 0 - setmetatile 3, 13, METATILE_TrickHousePuzzle_BlueDoorV_Retracted, 1 - setmetatile 3, 14, METATILE_TrickHousePuzzle_Floor_ShadowTop, 0 - setmetatile 6, 4, METATILE_TrickHousePuzzle_BlueDoorV_Retracted, 1 - setmetatile 6, 5, METATILE_TrickHousePuzzle_Floor_ShadowTop, 0 - setmetatile 9, 16, METATILE_TrickHousePuzzle_BlueDoorV_Retracted, 1 - setmetatile 9, 17, METATILE_TrickHousePuzzle_Floor_ShadowTop, 0 - setmetatile 12, 7, METATILE_TrickHousePuzzle_BlueDoorV_Retracted, 1 - setmetatile 12, 8, METATILE_TrickHousePuzzle_Floor_ShadowTop, 0 - setmetatile 1, 3, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, 0 - setmetatile 2, 3, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, 0 - setmetatile 1, 4, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, 1 - setmetatile 2, 4, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, 1 - setmetatile 1, 12, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, 0 - setmetatile 2, 12, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, 0 - setmetatile 1, 13, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, 1 - setmetatile 2, 13, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, 1 - setmetatile 4, 6, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, 0 - setmetatile 5, 6, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, 0 - setmetatile 4, 7, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, 1 - setmetatile 5, 7, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, 1 - setmetatile 4, 12, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, 0 - setmetatile 5, 12, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, 0 - setmetatile 4, 13, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, 1 - setmetatile 5, 13, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, 1 - setmetatile 4, 18, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, 0 - setmetatile 5, 18, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, 0 - setmetatile 4, 19, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, 1 - setmetatile 5, 19, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, 1 - setmetatile 7, 9, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, 0 - setmetatile 8, 9, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, 0 - setmetatile 7, 10, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, 1 - setmetatile 8, 10, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, 1 - setmetatile 10, 6, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, 0 - setmetatile 11, 6, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, 0 - setmetatile 10, 7, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, 1 - setmetatile 11, 7, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, 1 - setmetatile 10, 12, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, 0 - setmetatile 11, 12, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, 0 - setmetatile 10, 13, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, 1 - setmetatile 11, 13, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, 1 - setmetatile 10, 18, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, 0 - setmetatile 11, 18, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, 0 - setmetatile 10, 19, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, 1 - setmetatile 11, 19, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, 1 - setmetatile 13, 3, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, 0 - setmetatile 14, 3, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, 0 - setmetatile 13, 4, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, 1 - setmetatile 14, 4, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, 1 - setmetatile 3, 16, METATILE_TrickHousePuzzle_RedDoorV_Open0, 1 - setmetatile 3, 17, METATILE_TrickHousePuzzle_RedDoorV_Open1, 1 - setmetatile 9, 4, METATILE_TrickHousePuzzle_RedDoorV_Open0, 1 - setmetatile 9, 5, METATILE_TrickHousePuzzle_RedDoorV_Open1, 1 + setmetatile 1, 6, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile0, FALSE + setmetatile 2, 6, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile1, FALSE + setmetatile 1, 7, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile2, FALSE + setmetatile 2, 7, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile3, FALSE + setmetatile 1, 9, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile0, FALSE + setmetatile 2, 9, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile1, FALSE + setmetatile 1, 10, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile2, FALSE + setmetatile 2, 10, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile3, FALSE + setmetatile 4, 15, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile0, FALSE + setmetatile 5, 15, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile1, FALSE + setmetatile 4, 16, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile2, FALSE + setmetatile 5, 16, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile3, FALSE + setmetatile 13, 9, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile0, FALSE + setmetatile 14, 9, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile1, FALSE + setmetatile 13, 10, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile2, FALSE + setmetatile 14, 10, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile3, FALSE + setmetatile 13, 15, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile0, FALSE + setmetatile 14, 15, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile1, FALSE + setmetatile 13, 16, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile2, FALSE + setmetatile 14, 16, METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile3, FALSE + setmetatile 3, 7, METATILE_TrickHousePuzzle_BlueDoorV_Retracted, TRUE + setmetatile 3, 8, METATILE_TrickHousePuzzle_Floor_ShadowTop, FALSE + setmetatile 3, 13, METATILE_TrickHousePuzzle_BlueDoorV_Retracted, TRUE + setmetatile 3, 14, METATILE_TrickHousePuzzle_Floor_ShadowTop, FALSE + setmetatile 6, 4, METATILE_TrickHousePuzzle_BlueDoorV_Retracted, TRUE + setmetatile 6, 5, METATILE_TrickHousePuzzle_Floor_ShadowTop, FALSE + setmetatile 9, 16, METATILE_TrickHousePuzzle_BlueDoorV_Retracted, TRUE + setmetatile 9, 17, METATILE_TrickHousePuzzle_Floor_ShadowTop, FALSE + setmetatile 12, 7, METATILE_TrickHousePuzzle_BlueDoorV_Retracted, TRUE + setmetatile 12, 8, METATILE_TrickHousePuzzle_Floor_ShadowTop, FALSE + setmetatile 1, 3, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, FALSE + setmetatile 2, 3, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, FALSE + setmetatile 1, 4, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, TRUE + setmetatile 2, 4, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, TRUE + setmetatile 1, 12, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, FALSE + setmetatile 2, 12, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, FALSE + setmetatile 1, 13, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, TRUE + setmetatile 2, 13, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, TRUE + setmetatile 4, 6, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, FALSE + setmetatile 5, 6, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, FALSE + setmetatile 4, 7, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, TRUE + setmetatile 5, 7, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, TRUE + setmetatile 4, 12, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, FALSE + setmetatile 5, 12, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, FALSE + setmetatile 4, 13, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, TRUE + setmetatile 5, 13, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, TRUE + setmetatile 4, 18, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, FALSE + setmetatile 5, 18, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, FALSE + setmetatile 4, 19, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, TRUE + setmetatile 5, 19, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, TRUE + setmetatile 7, 9, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, FALSE + setmetatile 8, 9, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, FALSE + setmetatile 7, 10, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, TRUE + setmetatile 8, 10, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, TRUE + setmetatile 10, 6, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, FALSE + setmetatile 11, 6, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, FALSE + setmetatile 10, 7, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, TRUE + setmetatile 11, 7, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, TRUE + setmetatile 10, 12, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, FALSE + setmetatile 11, 12, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, FALSE + setmetatile 10, 13, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, TRUE + setmetatile 11, 13, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, TRUE + setmetatile 10, 18, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, FALSE + setmetatile 11, 18, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, FALSE + setmetatile 10, 19, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, TRUE + setmetatile 11, 19, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, TRUE + setmetatile 13, 3, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0, FALSE + setmetatile 14, 3, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1, FALSE + setmetatile 13, 4, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2, TRUE + setmetatile 14, 4, METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3, TRUE + setmetatile 3, 16, METATILE_TrickHousePuzzle_RedDoorV_Open0, TRUE + setmetatile 3, 17, METATILE_TrickHousePuzzle_RedDoorV_Open1, TRUE + setmetatile 9, 4, METATILE_TrickHousePuzzle_RedDoorV_Open0, TRUE + setmetatile 9, 5, METATILE_TrickHousePuzzle_RedDoorV_Open1, TRUE return Route110_TrickHousePuzzle3_EventScript_SetDoorsState1:: - setmetatile 1, 6, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile0, 0 - setmetatile 2, 6, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile1, 0 - setmetatile 1, 7, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile2, 1 - setmetatile 2, 7, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile3, 1 - setmetatile 1, 9, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile0, 0 - setmetatile 2, 9, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile1, 0 - setmetatile 1, 10, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile2, 1 - setmetatile 2, 10, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile3, 1 - setmetatile 4, 15, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile0, 0 - setmetatile 5, 15, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile1, 0 - setmetatile 4, 16, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile2, 1 - setmetatile 5, 16, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile3, 1 - setmetatile 13, 9, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile0, 0 - setmetatile 14, 9, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile1, 0 - setmetatile 13, 10, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile2, 1 - setmetatile 14, 10, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile3, 1 - setmetatile 13, 15, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile0, 0 - setmetatile 14, 15, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile1, 0 - setmetatile 13, 16, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile2, 1 - setmetatile 14, 16, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile3, 1 - setmetatile 3, 7, METATILE_TrickHousePuzzle_BlueDoorV_Open0, 1 - setmetatile 3, 8, METATILE_TrickHousePuzzle_BlueDoorV_Open1, 1 - setmetatile 3, 13, METATILE_TrickHousePuzzle_BlueDoorV_Open0, 1 - setmetatile 3, 14, METATILE_TrickHousePuzzle_BlueDoorV_Open1, 1 - setmetatile 6, 4, METATILE_TrickHousePuzzle_BlueDoorV_Open0, 1 - setmetatile 6, 5, METATILE_TrickHousePuzzle_BlueDoorV_Open1, 1 - setmetatile 9, 16, METATILE_TrickHousePuzzle_BlueDoorV_Open0, 1 - setmetatile 9, 17, METATILE_TrickHousePuzzle_BlueDoorV_Open1, 1 - setmetatile 12, 7, METATILE_TrickHousePuzzle_BlueDoorV_Open0, 1 - setmetatile 12, 8, METATILE_TrickHousePuzzle_BlueDoorV_Open1, 1 - setmetatile 1, 3, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, 0 - setmetatile 2, 3, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, 0 - setmetatile 1, 4, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, 0 - setmetatile 2, 4, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, 0 - setmetatile 1, 12, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, 0 - setmetatile 2, 12, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, 0 - setmetatile 1, 13, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, 0 - setmetatile 2, 13, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, 0 - setmetatile 4, 6, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, 0 - setmetatile 5, 6, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, 0 - setmetatile 4, 7, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, 0 - setmetatile 5, 7, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, 0 - setmetatile 4, 12, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, 0 - setmetatile 5, 12, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, 0 - setmetatile 4, 13, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, 0 - setmetatile 5, 13, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, 0 - setmetatile 4, 18, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, 0 - setmetatile 5, 18, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, 0 - setmetatile 4, 19, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, 0 - setmetatile 5, 19, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, 0 - setmetatile 7, 9, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, 0 - setmetatile 8, 9, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, 0 - setmetatile 7, 10, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, 0 - setmetatile 8, 10, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, 0 - setmetatile 10, 6, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, 0 - setmetatile 11, 6, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, 0 - setmetatile 10, 7, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, 0 - setmetatile 11, 7, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, 0 - setmetatile 10, 12, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, 0 - setmetatile 11, 12, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, 0 - setmetatile 10, 13, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, 0 - setmetatile 11, 13, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, 0 - setmetatile 10, 18, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, 0 - setmetatile 11, 18, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, 0 - setmetatile 10, 19, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, 0 - setmetatile 11, 19, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, 0 - setmetatile 13, 3, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, 0 - setmetatile 14, 3, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, 0 - setmetatile 13, 4, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, 0 - setmetatile 14, 4, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, 0 - setmetatile 3, 16, METATILE_TrickHousePuzzle_RedDoorV_Retracted, 1 - setmetatile 3, 17, METATILE_TrickHousePuzzle_Floor_ShadowTop_Alt, 0 - setmetatile 9, 4, METATILE_TrickHousePuzzle_RedDoorV_Retracted, 1 - setmetatile 9, 5, METATILE_TrickHousePuzzle_Floor_ShadowTop_Alt, 0 + setmetatile 1, 6, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile0, FALSE + setmetatile 2, 6, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile1, FALSE + setmetatile 1, 7, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile2, TRUE + setmetatile 2, 7, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile3, TRUE + setmetatile 1, 9, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile0, FALSE + setmetatile 2, 9, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile1, FALSE + setmetatile 1, 10, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile2, TRUE + setmetatile 2, 10, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile3, TRUE + setmetatile 4, 15, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile0, FALSE + setmetatile 5, 15, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile1, FALSE + setmetatile 4, 16, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile2, TRUE + setmetatile 5, 16, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile3, TRUE + setmetatile 13, 9, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile0, FALSE + setmetatile 14, 9, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile1, FALSE + setmetatile 13, 10, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile2, TRUE + setmetatile 14, 10, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile3, TRUE + setmetatile 13, 15, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile0, FALSE + setmetatile 14, 15, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile1, FALSE + setmetatile 13, 16, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile2, TRUE + setmetatile 14, 16, METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile3, TRUE + setmetatile 3, 7, METATILE_TrickHousePuzzle_BlueDoorV_Open0, TRUE + setmetatile 3, 8, METATILE_TrickHousePuzzle_BlueDoorV_Open1, TRUE + setmetatile 3, 13, METATILE_TrickHousePuzzle_BlueDoorV_Open0, TRUE + setmetatile 3, 14, METATILE_TrickHousePuzzle_BlueDoorV_Open1, TRUE + setmetatile 6, 4, METATILE_TrickHousePuzzle_BlueDoorV_Open0, TRUE + setmetatile 6, 5, METATILE_TrickHousePuzzle_BlueDoorV_Open1, TRUE + setmetatile 9, 16, METATILE_TrickHousePuzzle_BlueDoorV_Open0, TRUE + setmetatile 9, 17, METATILE_TrickHousePuzzle_BlueDoorV_Open1, TRUE + setmetatile 12, 7, METATILE_TrickHousePuzzle_BlueDoorV_Open0, TRUE + setmetatile 12, 8, METATILE_TrickHousePuzzle_BlueDoorV_Open1, TRUE + setmetatile 1, 3, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, FALSE + setmetatile 2, 3, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, FALSE + setmetatile 1, 4, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, FALSE + setmetatile 2, 4, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, FALSE + setmetatile 1, 12, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, FALSE + setmetatile 2, 12, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, FALSE + setmetatile 1, 13, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, FALSE + setmetatile 2, 13, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, FALSE + setmetatile 4, 6, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, FALSE + setmetatile 5, 6, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, FALSE + setmetatile 4, 7, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, FALSE + setmetatile 5, 7, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, FALSE + setmetatile 4, 12, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, FALSE + setmetatile 5, 12, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, FALSE + setmetatile 4, 13, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, FALSE + setmetatile 5, 13, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, FALSE + setmetatile 4, 18, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, FALSE + setmetatile 5, 18, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, FALSE + setmetatile 4, 19, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, FALSE + setmetatile 5, 19, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, FALSE + setmetatile 7, 9, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, FALSE + setmetatile 8, 9, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, FALSE + setmetatile 7, 10, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, FALSE + setmetatile 8, 10, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, FALSE + setmetatile 10, 6, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, FALSE + setmetatile 11, 6, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, FALSE + setmetatile 10, 7, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, FALSE + setmetatile 11, 7, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, FALSE + setmetatile 10, 12, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, FALSE + setmetatile 11, 12, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, FALSE + setmetatile 10, 13, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, FALSE + setmetatile 11, 13, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, FALSE + setmetatile 10, 18, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, FALSE + setmetatile 11, 18, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, FALSE + setmetatile 10, 19, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, FALSE + setmetatile 11, 19, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, FALSE + setmetatile 13, 3, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0, FALSE + setmetatile 14, 3, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1, FALSE + setmetatile 13, 4, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2, FALSE + setmetatile 14, 4, METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3, FALSE + setmetatile 3, 16, METATILE_TrickHousePuzzle_RedDoorV_Retracted, TRUE + setmetatile 3, 17, METATILE_TrickHousePuzzle_Floor_ShadowTop_Alt, FALSE + setmetatile 9, 4, METATILE_TrickHousePuzzle_RedDoorV_Retracted, TRUE + setmetatile 9, 5, METATILE_TrickHousePuzzle_Floor_ShadowTop_Alt, FALSE return Route110_TrickHousePuzzle3_EventScript_Button1:: @@ -241,14 +235,10 @@ Route110_TrickHousePuzzle3_EventScript_SetButton:: setvar VAR_TEMP_2, 0 setvar VAR_TEMP_3, 0 setvar VAR_TEMP_4, 0 - compare VAR_TEMP_8, 1 - call_if_eq Route110_TrickHousePuzzle3_EventScript_SetButton1 - compare VAR_TEMP_8, 2 - call_if_eq Route110_TrickHousePuzzle3_EventScript_SetButton2 - compare VAR_TEMP_8, 3 - call_if_eq Route110_TrickHousePuzzle3_EventScript_SetButton3 - compare VAR_TEMP_8, 4 - call_if_eq Route110_TrickHousePuzzle3_EventScript_SetButton4 + call_if_eq VAR_TEMP_8, 1, Route110_TrickHousePuzzle3_EventScript_SetButton1 + call_if_eq VAR_TEMP_8, 2, Route110_TrickHousePuzzle3_EventScript_SetButton2 + call_if_eq VAR_TEMP_8, 3, Route110_TrickHousePuzzle3_EventScript_SetButton3 + call_if_eq VAR_TEMP_8, 4, Route110_TrickHousePuzzle3_EventScript_SetButton4 return Route110_TrickHousePuzzle3_EventScript_SetButton1:: @@ -268,15 +258,11 @@ Route110_TrickHousePuzzle3_EventScript_SetButton4:: return Route110_TrickHousePuzzle3_EventScript_AlternateDoors:: - compare VAR_TEMP_9, 1 - call_if_eq Route110_TrickHousePuzzle3_EventScript_SetDoorsState0 - compare VAR_TEMP_9, 0 - call_if_eq Route110_TrickHousePuzzle3_EventScript_SetDoorsState1 + call_if_eq VAR_TEMP_9, 1, Route110_TrickHousePuzzle3_EventScript_SetDoorsState0 + call_if_eq VAR_TEMP_9, 0, Route110_TrickHousePuzzle3_EventScript_SetDoorsState1 special DrawWholeMapView - compare VAR_TEMP_9, 1 - goto_if_eq Route110_TrickHousePuzzle3_EventScript_ClearAltDoorState - compare VAR_TEMP_9, 0 - goto_if_eq Route110_TrickHousePuzzle3_EventScript_SetAltDoorState + goto_if_eq VAR_TEMP_9, 1, Route110_TrickHousePuzzle3_EventScript_ClearAltDoorState + goto_if_eq VAR_TEMP_9, 0, Route110_TrickHousePuzzle3_EventScript_SetAltDoorState end Route110_TrickHousePuzzle3_EventScript_ClearAltDoorState:: @@ -291,8 +277,7 @@ Route110_TrickHousePuzzle3_EventScript_SetAltDoorState:: Route110_TrickHousePuzzle3_EventScript_Scroll:: lockall - compare VAR_TRICK_HOUSE_PUZZLE_3_STATE, 0 - goto_if_eq Route110_TrickHousePuzzle3_EventScript_FoundScroll + goto_if_eq VAR_TRICK_HOUSE_PUZZLE_3_STATE, 0, Route110_TrickHousePuzzle3_EventScript_FoundScroll goto Route110_TrickHousePuzzle_EventScript_ReadScrollAgain end diff --git a/data/maps/Route110_TrickHousePuzzle4/scripts.inc b/data/maps/Route110_TrickHousePuzzle4/scripts.inc index 10f49adb50..2350d4ceb2 100644 --- a/data/maps/Route110_TrickHousePuzzle4/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle4/scripts.inc @@ -3,8 +3,7 @@ Route110_TrickHousePuzzle4_MapScripts:: Route110_TrickHousePuzzle4_EventScript_Scroll:: lockall - compare VAR_TRICK_HOUSE_PUZZLE_4_STATE, 0 - goto_if_eq Route110_TrickHousePuzzle4_EventScript_FoundScroll + goto_if_eq VAR_TRICK_HOUSE_PUZZLE_4_STATE, 0, Route110_TrickHousePuzzle4_EventScript_FoundScroll goto Route110_TrickHousePuzzle_EventScript_ReadScrollAgain end diff --git a/data/maps/Route110_TrickHousePuzzle5/scripts.inc b/data/maps/Route110_TrickHousePuzzle5/scripts.inc index 3c574441ec..e0fa432bd2 100644 --- a/data/maps/Route110_TrickHousePuzzle5/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle5/scripts.inc @@ -19,8 +19,7 @@ Route110_TrickHousePuzzle5_OnTransition: Route110_TrickHousePuzzle5_EventScript_Scroll:: lockall - compare VAR_TRICK_HOUSE_PUZZLE_5_STATE, 0 - goto_if_eq Route110_TrickHousePuzzle5_EventScript_FoundScroll + goto_if_eq VAR_TRICK_HOUSE_PUZZLE_5_STATE, 0, Route110_TrickHousePuzzle5_EventScript_FoundScroll goto Route110_TrickHousePuzzle_EventScript_ReadScrollAgain end @@ -33,8 +32,7 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll1:: lockall applymovement LOCALID_MECHADOLL_1, Common_Movement_FacePlayer waitmovement 0 - compare VAR_TEMP_1, 1 - goto_if_eq Route110_TrickHousePuzzle5_EventScript_CorrectGoThrough + goto_if_eq VAR_TEMP_1, 1, Route110_TrickHousePuzzle5_EventScript_CorrectGoThrough setvar VAR_TEMP_9, 0 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll1Activate end @@ -43,8 +41,7 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll2:: lockall applymovement LOCALID_MECHADOLL_2, Common_Movement_FacePlayer waitmovement 0 - compare VAR_TEMP_2, 1 - goto_if_eq Route110_TrickHousePuzzle5_EventScript_CorrectGoThrough + goto_if_eq VAR_TEMP_2, 1, Route110_TrickHousePuzzle5_EventScript_CorrectGoThrough setvar VAR_TEMP_9, 0 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll2Activate end @@ -53,8 +50,7 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll3:: lockall applymovement LOCALID_MECHADOLL_3, Common_Movement_FacePlayer waitmovement 0 - compare VAR_TEMP_3, 1 - goto_if_eq Route110_TrickHousePuzzle5_EventScript_CorrectGoThrough + goto_if_eq VAR_TEMP_3, 1, Route110_TrickHousePuzzle5_EventScript_CorrectGoThrough setvar VAR_TEMP_9, 0 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll3Activate end @@ -63,8 +59,7 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll4:: lockall applymovement LOCALID_MECHADOLL_4, Common_Movement_FacePlayer waitmovement 0 - compare VAR_TEMP_4, 1 - goto_if_eq Route110_TrickHousePuzzle5_EventScript_CorrectGoThrough + goto_if_eq VAR_TEMP_4, 1, Route110_TrickHousePuzzle5_EventScript_CorrectGoThrough setvar VAR_TEMP_9, 0 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll4Activate end @@ -73,8 +68,7 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll5:: lockall applymovement LOCALID_MECHADOLL_5, Common_Movement_FacePlayer waitmovement 0 - compare VAR_TEMP_5, 1 - goto_if_eq Route110_TrickHousePuzzle5_EventScript_CorrectGoThrough + goto_if_eq VAR_TEMP_5, 1, Route110_TrickHousePuzzle5_EventScript_CorrectGoThrough setvar VAR_TEMP_9, 0 goto Route110_TrickHousePuzzle5_EventScript_Mechadoll5Activate end @@ -226,14 +220,10 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll1Activate:: waitmovement 0 applymovement LOCALID_MECHADOLL_1, Common_Movement_Delay48 waitmovement 0 - compare VAR_TEMP_9, 1 - call_if_eq Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft1 - compare VAR_TEMP_9, 2 - call_if_eq Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft2 - compare VAR_TEMP_9, 3 - call_if_eq Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft3 - compare VAR_TEMP_9, 4 - call_if_eq Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft4 + call_if_eq VAR_TEMP_9, 1, Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft1 + call_if_eq VAR_TEMP_9, 2, Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft2 + call_if_eq VAR_TEMP_9, 3, Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft3 + call_if_eq VAR_TEMP_9, 4, Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft4 msgbox Route110_TrickHousePuzzle5_Text_Mechadoll1Intro, MSGBOX_DEFAULT random 3 switch VAR_RESULT @@ -250,16 +240,11 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll2Activate:: waitmovement 0 applymovement LOCALID_MECHADOLL_2, Common_Movement_Delay48 waitmovement 0 - compare VAR_TEMP_9, 1 - call_if_eq Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight1 - compare VAR_TEMP_9, 2 - call_if_eq Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight2 - compare VAR_TEMP_9, 3 - call_if_eq Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight3 - compare VAR_TEMP_9, 4 - call_if_eq Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight4 - compare VAR_TEMP_9, 5 - call_if_eq Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight5 + call_if_eq VAR_TEMP_9, 1, Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight1 + call_if_eq VAR_TEMP_9, 2, Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight2 + call_if_eq VAR_TEMP_9, 3, Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight3 + call_if_eq VAR_TEMP_9, 4, Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight4 + call_if_eq VAR_TEMP_9, 5, Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight5 msgbox Route110_TrickHousePuzzle5_Text_Mechadoll2Intro, MSGBOX_DEFAULT random 3 switch VAR_RESULT @@ -276,14 +261,10 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll3Activate:: waitmovement 0 applymovement LOCALID_MECHADOLL_3, Common_Movement_Delay48 waitmovement 0 - compare VAR_TEMP_9, 1 - call_if_eq Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft1 - compare VAR_TEMP_9, 2 - call_if_eq Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft2 - compare VAR_TEMP_9, 3 - call_if_eq Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft3 - compare VAR_TEMP_9, 4 - call_if_eq Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft4 + call_if_eq VAR_TEMP_9, 1, Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft1 + call_if_eq VAR_TEMP_9, 2, Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft2 + call_if_eq VAR_TEMP_9, 3, Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft3 + call_if_eq VAR_TEMP_9, 4, Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft4 msgbox Route110_TrickHousePuzzle5_Text_Mechadoll3Intro, MSGBOX_DEFAULT random 3 switch VAR_RESULT @@ -300,14 +281,10 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll4Activate:: waitmovement 0 applymovement LOCALID_MECHADOLL_4, Common_Movement_Delay48 waitmovement 0 - compare VAR_TEMP_9, 1 - call_if_eq Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft1 - compare VAR_TEMP_9, 2 - call_if_eq Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft2 - compare VAR_TEMP_9, 3 - call_if_eq Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft3 - compare VAR_TEMP_9, 4 - call_if_eq Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft4 + call_if_eq VAR_TEMP_9, 1, Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft1 + call_if_eq VAR_TEMP_9, 2, Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft2 + call_if_eq VAR_TEMP_9, 3, Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft3 + call_if_eq VAR_TEMP_9, 4, Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft4 msgbox Route110_TrickHousePuzzle5_Text_Mechadoll4Intro, MSGBOX_DEFAULT random 3 switch VAR_RESULT @@ -465,7 +442,7 @@ Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer:: waitmovement 0 msgbox Route110_TrickHousePuzzle5_Text_WaitForNextChallenge, MSGBOX_DEFAULT closemessage - warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE5, 255, 0, 21 + warp MAP_ROUTE110_TRICK_HOUSE_PUZZLE5, 0, 21 waitstate releaseall end @@ -487,133 +464,83 @@ Route110_TrickHousePuzzle5_EventScript_CorrectGoThrough:: @ Mechadoll 5 never walks, all the Mechadoll5Walk scripts are unused @ No mechadoll walks left 5 paces, all the WalkLeft5 scripts are unused Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft1:: - compare VAR_TEMP_8, LOCALID_MECHADOLL_1 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft1 - compare VAR_TEMP_8, LOCALID_MECHADOLL_2 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft1 - compare VAR_TEMP_8, LOCALID_MECHADOLL_3 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft1 - compare VAR_TEMP_8, LOCALID_MECHADOLL_4 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft1 - compare VAR_TEMP_8, LOCALID_MECHADOLL_5 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft1 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft1 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft1 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft1 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft1 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft1 return Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft2:: - compare VAR_TEMP_8, LOCALID_MECHADOLL_1 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft2 - compare VAR_TEMP_8, LOCALID_MECHADOLL_2 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft2 - compare VAR_TEMP_8, LOCALID_MECHADOLL_3 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft2 - compare VAR_TEMP_8, LOCALID_MECHADOLL_4 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft2 - compare VAR_TEMP_8, LOCALID_MECHADOLL_5 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft2 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft2 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft2 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft2 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft2 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft2 return Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft3:: - compare VAR_TEMP_8, LOCALID_MECHADOLL_1 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft3 - compare VAR_TEMP_8, LOCALID_MECHADOLL_2 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft3 - compare VAR_TEMP_8, LOCALID_MECHADOLL_3 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft3 - compare VAR_TEMP_8, LOCALID_MECHADOLL_4 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft3 - compare VAR_TEMP_8, LOCALID_MECHADOLL_5 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft3 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft3 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft3 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft3 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft3 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft3 return Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft4:: - compare VAR_TEMP_8, LOCALID_MECHADOLL_1 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft4 - compare VAR_TEMP_8, LOCALID_MECHADOLL_2 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft4 - compare VAR_TEMP_8, LOCALID_MECHADOLL_3 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft4 - compare VAR_TEMP_8, LOCALID_MECHADOLL_4 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft4 - compare VAR_TEMP_8, LOCALID_MECHADOLL_5 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft4 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft4 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft4 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft4 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft4 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft4 return Route110_TrickHousePuzzle5_EventScript_MechadollWalkLeft5:: - compare VAR_TEMP_8, LOCALID_MECHADOLL_1 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft5 - compare VAR_TEMP_8, LOCALID_MECHADOLL_2 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft5 - compare VAR_TEMP_8, LOCALID_MECHADOLL_3 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft5 - compare VAR_TEMP_8, LOCALID_MECHADOLL_4 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft5 - compare VAR_TEMP_8, LOCALID_MECHADOLL_5 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft5 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft5 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkLeft5 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkLeft5 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkLeft5 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkLeft5 return Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight1:: - compare VAR_TEMP_8, LOCALID_MECHADOLL_1 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight1 - compare VAR_TEMP_8, LOCALID_MECHADOLL_2 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight1 - compare VAR_TEMP_8, LOCALID_MECHADOLL_3 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight1 - compare VAR_TEMP_8, LOCALID_MECHADOLL_4 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight1 - compare VAR_TEMP_8, LOCALID_MECHADOLL_5 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight1 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight1 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight1 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight1 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight1 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight1 return Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight2:: - compare VAR_TEMP_8, LOCALID_MECHADOLL_1 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight2 - compare VAR_TEMP_8, LOCALID_MECHADOLL_2 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight2 - compare VAR_TEMP_8, LOCALID_MECHADOLL_3 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight2 - compare VAR_TEMP_8, LOCALID_MECHADOLL_4 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight2 - compare VAR_TEMP_8, LOCALID_MECHADOLL_5 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight2 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight2 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight2 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight2 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight2 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight2 return Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight3:: - compare VAR_TEMP_8, LOCALID_MECHADOLL_1 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight3 - compare VAR_TEMP_8, LOCALID_MECHADOLL_2 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight3 - compare VAR_TEMP_8, LOCALID_MECHADOLL_3 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight3 - compare VAR_TEMP_8, LOCALID_MECHADOLL_4 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight3 - compare VAR_TEMP_8, LOCALID_MECHADOLL_5 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight3 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight3 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight3 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight3 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight3 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight3 return Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight4:: - compare VAR_TEMP_8, LOCALID_MECHADOLL_1 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight4 - compare VAR_TEMP_8, LOCALID_MECHADOLL_2 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight4 - compare VAR_TEMP_8, LOCALID_MECHADOLL_3 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight4 - compare VAR_TEMP_8, LOCALID_MECHADOLL_4 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight4 - compare VAR_TEMP_8, LOCALID_MECHADOLL_5 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight4 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight4 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight4 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight4 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight4 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight4 return Route110_TrickHousePuzzle5_EventScript_MechadollWalkRight5:: - compare VAR_TEMP_8, LOCALID_MECHADOLL_1 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight5 - compare VAR_TEMP_8, LOCALID_MECHADOLL_2 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight5 - compare VAR_TEMP_8, LOCALID_MECHADOLL_3 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight5 - compare VAR_TEMP_8, LOCALID_MECHADOLL_4 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight5 - compare VAR_TEMP_8, LOCALID_MECHADOLL_5 - call_if_eq Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight5 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkRight5 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_EventScript_Mechadoll2WalkRight5 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_3, Route110_TrickHousePuzzle5_EventScript_Mechadoll3WalkRight5 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_4, Route110_TrickHousePuzzle5_EventScript_Mechadoll4WalkRight5 + call_if_eq VAR_TEMP_8, LOCALID_MECHADOLL_5, Route110_TrickHousePuzzle5_EventScript_Mechadoll5WalkRight5 return Route110_TrickHousePuzzle5_EventScript_Mechadoll1WalkLeft1:: diff --git a/data/maps/Route110_TrickHousePuzzle6/scripts.inc b/data/maps/Route110_TrickHousePuzzle6/scripts.inc index 35d657acc3..e442d094d5 100644 --- a/data/maps/Route110_TrickHousePuzzle6/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle6/scripts.inc @@ -17,8 +17,7 @@ Route110_TrickHousePuzzle6_EventScript_InitPuzzle:: Route110_TrickHousePuzzle6_EventScript_Scroll:: lockall - compare VAR_TRICK_HOUSE_PUZZLE_6_STATE, 0 - goto_if_eq Route110_TrickHousePuzzle6_EventScript_FoundScroll + goto_if_eq VAR_TRICK_HOUSE_PUZZLE_6_STATE, 0, Route110_TrickHousePuzzle6_EventScript_FoundScroll goto Route110_TrickHousePuzzle_EventScript_ReadScrollAgain end diff --git a/data/maps/Route110_TrickHousePuzzle7/scripts.inc b/data/maps/Route110_TrickHousePuzzle7/scripts.inc index b0f1cbea12..a47df82cac 100644 --- a/data/maps/Route110_TrickHousePuzzle7/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle7/scripts.inc @@ -22,58 +22,57 @@ Route110_TrickHousePuzzle7_EventScript_UpdateSwitchMetatiles:: @ Leftover from R/S, none of the below metatile scripts are ever called Route110_TrickHousePuzzle7_EventScript_SetSwitch1MetatilesOn:: - setmetatile 13, 17, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Up, 0 - setmetatile 12, 16, METATILE_TrickHousePuzzle_Lever_On, 1 + setmetatile 13, 17, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Up, FALSE + setmetatile 12, 16, METATILE_TrickHousePuzzle_Lever_On, TRUE return Route110_TrickHousePuzzle7_EventScript_SetSwitch2MetatilesOn:: - setmetatile 12, 13, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Up, 0 - setmetatile 12, 11, METATILE_TrickHousePuzzle_Lever_On, 1 + setmetatile 12, 13, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Up, FALSE + setmetatile 12, 11, METATILE_TrickHousePuzzle_Lever_On, TRUE return Route110_TrickHousePuzzle7_EventScript_SetSwitch3MetatilesOn:: - setmetatile 7, 12, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Up, 0 - setmetatile 5, 10, METATILE_TrickHousePuzzle_Lever_On, 1 + setmetatile 7, 12, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Up, FALSE + setmetatile 5, 10, METATILE_TrickHousePuzzle_Lever_On, TRUE return Route110_TrickHousePuzzle7_EventScript_SetSwitch4MetatilesOn:: - setmetatile 6, 6, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Right_Alt, 0 - setmetatile 4, 4, METATILE_TrickHousePuzzle_Lever_On, 1 + setmetatile 6, 6, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Right_Alt, FALSE + setmetatile 4, 4, METATILE_TrickHousePuzzle_Lever_On, TRUE return Route110_TrickHousePuzzle7_EventScript_SetSwitch5MetatilesOn:: - setmetatile 8, 4, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Left, 0 - setmetatile 7, 5, METATILE_TrickHousePuzzle_Lever_On, 1 + setmetatile 8, 4, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Left, FALSE + setmetatile 7, 5, METATILE_TrickHousePuzzle_Lever_On, TRUE return Route110_TrickHousePuzzle7_EventScript_SetSwitch1MetatilesOff:: - setmetatile 13, 17, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Down, 0 - setmetatile 12, 16, METATILE_TrickHousePuzzle_Lever_Off, 1 + setmetatile 13, 17, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Down, FALSE + setmetatile 12, 16, METATILE_TrickHousePuzzle_Lever_Off, TRUE return Route110_TrickHousePuzzle7_EventScript_SetSwitch2MetatilesOff:: - setmetatile 12, 13, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Left, 0 - setmetatile 12, 11, METATILE_TrickHousePuzzle_Lever_Off, 1 + setmetatile 12, 13, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Left, FALSE + setmetatile 12, 11, METATILE_TrickHousePuzzle_Lever_Off, TRUE return Route110_TrickHousePuzzle7_EventScript_SetSwitch3MetatilesOff:: - setmetatile 7, 12, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Down, 0 - setmetatile 5, 10, METATILE_TrickHousePuzzle_Lever_Off, 1 + setmetatile 7, 12, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Down, FALSE + setmetatile 5, 10, METATILE_TrickHousePuzzle_Lever_Off, TRUE return Route110_TrickHousePuzzle7_EventScript_SetSwitch4MetatilesOff:: - setmetatile 6, 6, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Left_Alt, 0 - setmetatile 4, 4, METATILE_TrickHousePuzzle_Lever_Off, 1 + setmetatile 6, 6, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Left_Alt, FALSE + setmetatile 4, 4, METATILE_TrickHousePuzzle_Lever_Off, TRUE return Route110_TrickHousePuzzle7_EventScript_SetSwitch5MetatilesOff:: - setmetatile 8, 4, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Right, 0 - setmetatile 7, 5, METATILE_TrickHousePuzzle_Lever_Off, 1 + setmetatile 8, 4, METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Right, FALSE + setmetatile 7, 5, METATILE_TrickHousePuzzle_Lever_Off, TRUE return Route110_TrickHousePuzzle7_OnTransition: - compare VAR_TRICK_HOUSE_PUZZLE_7_STATE_2, 1 - goto_if_eq Route110_TrickHousePuzzle7_EventScript_TeleportedTransition + goto_if_eq VAR_TRICK_HOUSE_PUZZLE_7_STATE_2, 1, Route110_TrickHousePuzzle7_EventScript_TeleportedTransition clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1 clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2 clearflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3 @@ -85,8 +84,7 @@ Route110_TrickHousePuzzle7_EventScript_TeleportedTransition:: end Route110_TrickHousePuzzle7_OnLoad: - compare VAR_TRICK_HOUSE_PUZZLE_7_STATE_2, 1 - call_if_eq Route110_TrickHousePuzzle7_EventScript_UpdateSwitchMetatiles + call_if_eq VAR_TRICK_HOUSE_PUZZLE_7_STATE_2, 1, Route110_TrickHousePuzzle7_EventScript_UpdateSwitchMetatiles end Route110_TrickHousePuzzle7_OnFrame: @@ -99,8 +97,7 @@ Route110_TrickHousePuzzle7_EventScript_ClearState2:: Route110_TrickHousePuzzle7_EventScript_Scroll:: lockall - compare VAR_TRICK_HOUSE_PUZZLE_7_STATE, 0 - goto_if_eq Route110_TrickHousePuzzle7_EventScript_FoundScroll + goto_if_eq VAR_TRICK_HOUSE_PUZZLE_7_STATE, 0, Route110_TrickHousePuzzle7_EventScript_FoundScroll goto Route110_TrickHousePuzzle_EventScript_ReadScrollAgain end @@ -113,7 +110,7 @@ Route110_TrickHousePuzzle7_EventScript_FoundScroll:: Route110_TrickHousePuzzle7_EventScript_TeleportPad:: lockall setvar VAR_TRICK_HOUSE_PUZZLE_7_STATE_2, 1 - warpteleport MAP_ROUTE110_TRICK_HOUSE_PUZZLE7, 255, 3, 19 + warpteleport MAP_ROUTE110_TRICK_HOUSE_PUZZLE7, 3, 19 waitstate releaseall end diff --git a/data/maps/Route110_TrickHousePuzzle8/scripts.inc b/data/maps/Route110_TrickHousePuzzle8/scripts.inc index 310751e5df..371f610004 100644 --- a/data/maps/Route110_TrickHousePuzzle8/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle8/scripts.inc @@ -3,8 +3,7 @@ Route110_TrickHousePuzzle8_MapScripts:: Route110_TrickHousePuzzle8_EventScript_Scroll:: lockall - compare VAR_TRICK_HOUSE_PUZZLE_8_STATE, 0 - goto_if_eq Route110_TrickHousePuzzle8_EventScript_FoundScroll + goto_if_eq VAR_TRICK_HOUSE_PUZZLE_8_STATE, 0, Route110_TrickHousePuzzle8_EventScript_FoundScroll goto Route110_TrickHousePuzzle_EventScript_ReadScrollAgain end diff --git a/data/maps/Route111/scripts.inc b/data/maps/Route111/scripts.inc index 72e30958a5..6cb83b4528 100644 --- a/data/maps/Route111/scripts.inc +++ b/data/maps/Route111/scripts.inc @@ -15,45 +15,42 @@ Route111_MapScripts:: Route111_OnLoad: call_if_unset FLAG_REGI_DOORS_OPENED, Route111_EventScript_CloseDesertRuins - compare VAR_MIRAGE_TOWER_STATE, 1 - call_if_eq Route111_EventScript_ShowTemporaryMirageTower + call_if_eq VAR_MIRAGE_TOWER_STATE, 1, Route111_EventScript_ShowTemporaryMirageTower end Route111_EventScript_CloseDesertRuins:: - setmetatile 29, 86, METATILE_General_RockWall_RockBase, 1 - setmetatile 29, 87, METATILE_General_RockWall_SandBase, 1 + setmetatile 29, 86, METATILE_General_RockWall_RockBase, TRUE + setmetatile 29, 87, METATILE_General_RockWall_SandBase, TRUE return @ Show Mirage Tower just prior to disintegration. Mirage Tower is otherwise handled by the map layout Route111_EventScript_ShowTemporaryMirageTower:: - setmetatile 18, 53, METATILE_Mauville_MirageTower_Tile0, 0 - setmetatile 19, 53, METATILE_Mauville_MirageTower_Tile1, 0 - setmetatile 20, 53, METATILE_Mauville_MirageTower_Tile2, 0 - setmetatile 18, 54, METATILE_Mauville_MirageTower_Tile3, 0 - setmetatile 19, 54, METATILE_Mauville_MirageTower_Tile4, 0 - setmetatile 20, 54, METATILE_Mauville_MirageTower_Tile5, 0 - setmetatile 18, 55, METATILE_Mauville_MirageTower_Tile6, 0 - setmetatile 19, 55, METATILE_Mauville_MirageTower_Tile7, 0 - setmetatile 20, 55, METATILE_Mauville_MirageTower_Tile8, 0 - setmetatile 18, 56, METATILE_Mauville_MirageTower_Tile9, 0 - setmetatile 19, 56, METATILE_Mauville_MirageTower_TileA, 0 - setmetatile 20, 56, METATILE_Mauville_MirageTower_TileB, 0 - setmetatile 18, 57, METATILE_Mauville_MirageTower_TileC, 0 - setmetatile 19, 57, METATILE_Mauville_MirageTower_TileD, 0 - setmetatile 20, 57, METATILE_Mauville_MirageTower_TileE, 0 - setmetatile 18, 58, METATILE_Mauville_MirageTower_TileF, 0 - setmetatile 19, 58, METATILE_Mauville_MirageTower_Tile10, 0 - setmetatile 20, 58, METATILE_Mauville_MirageTower_Tile11, 0 + setmetatile 18, 53, METATILE_Mauville_MirageTower_Tile0, FALSE + setmetatile 19, 53, METATILE_Mauville_MirageTower_Tile1, FALSE + setmetatile 20, 53, METATILE_Mauville_MirageTower_Tile2, FALSE + setmetatile 18, 54, METATILE_Mauville_MirageTower_Tile3, FALSE + setmetatile 19, 54, METATILE_Mauville_MirageTower_Tile4, FALSE + setmetatile 20, 54, METATILE_Mauville_MirageTower_Tile5, FALSE + setmetatile 18, 55, METATILE_Mauville_MirageTower_Tile6, FALSE + setmetatile 19, 55, METATILE_Mauville_MirageTower_Tile7, FALSE + setmetatile 20, 55, METATILE_Mauville_MirageTower_Tile8, FALSE + setmetatile 18, 56, METATILE_Mauville_MirageTower_Tile9, FALSE + setmetatile 19, 56, METATILE_Mauville_MirageTower_TileA, FALSE + setmetatile 20, 56, METATILE_Mauville_MirageTower_TileB, FALSE + setmetatile 18, 57, METATILE_Mauville_MirageTower_TileC, FALSE + setmetatile 19, 57, METATILE_Mauville_MirageTower_TileD, FALSE + setmetatile 20, 57, METATILE_Mauville_MirageTower_TileE, FALSE + setmetatile 18, 58, METATILE_Mauville_MirageTower_TileF, FALSE + setmetatile 19, 58, METATILE_Mauville_MirageTower_Tile10, FALSE + setmetatile 20, 58, METATILE_Mauville_MirageTower_Tile11, FALSE return Route111_OnTransition: setvar VAR_TRAINER_HILL_IS_ACTIVE, 0 special SetMirageTowerVisibility call_if_unset FLAG_MIRAGE_TOWER_VISIBLE, Route111_EventScript_SetLayoutNoMirageTower - compare VAR_MIRAGE_TOWER_STATE, 1 - call_if_eq Route111_EventScript_SetFallingPlayerGfx - compare VAR_MIRAGE_TOWER_STATE, 2 - call_if_eq Route111_EventScript_SetMirageTowerGone + call_if_eq VAR_MIRAGE_TOWER_STATE, 1, Route111_EventScript_SetFallingPlayerGfx + call_if_eq VAR_MIRAGE_TOWER_STATE, 2, Route111_EventScript_SetMirageTowerGone call Route111_EventScript_CheckSetSandstorm call GabbyAndTy_EventScript_UpdateLocation goto_if_not_defeated TRAINER_VICKY, Route111_EventScript_SetWinstratesNotDefeated @@ -61,10 +58,8 @@ Route111_OnTransition: Route111_EventScript_SetFallingPlayerGfx:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq Route111_EventScript_SetFallingPlayerGfxMale - compare VAR_RESULT, FEMALE - goto_if_eq Route111_EventScript_SetFallingPlayerGfxFemale + goto_if_eq VAR_RESULT, MALE, Route111_EventScript_SetFallingPlayerGfxMale + goto_if_eq VAR_RESULT, FEMALE, Route111_EventScript_SetFallingPlayerGfxFemale return Route111_EventScript_SetFallingPlayerGfxMale:: @@ -77,16 +72,11 @@ Route111_EventScript_SetFallingPlayerGfxFemale:: Route111_EventScript_CheckSetSandstorm:: getplayerxy VAR_TEMP_0, VAR_TEMP_1 - compare VAR_TEMP_1, 34 - goto_if_lt Route111_EventScript_EndCheckSetSandstorm - compare VAR_TEMP_1, 107 - goto_if_gt Route111_EventScript_EndCheckSetSandstorm - compare VAR_TEMP_1, 72 - goto_if_gt Route111_EventScript_SetSandstorm - compare VAR_TEMP_0, 2000 - goto_if_gt Route111_EventScript_EndCheckSetSandstorm - compare VAR_TEMP_0, 8 - goto_if_lt Route111_EventScript_EndCheckSetSandstorm + goto_if_lt VAR_TEMP_1, 34, Route111_EventScript_EndCheckSetSandstorm + goto_if_gt VAR_TEMP_1, 107, Route111_EventScript_EndCheckSetSandstorm + goto_if_gt VAR_TEMP_1, 72, Route111_EventScript_SetSandstorm + goto_if_gt VAR_TEMP_0, 2000, Route111_EventScript_EndCheckSetSandstorm + goto_if_lt VAR_TEMP_0, 8, Route111_EventScript_EndCheckSetSandstorm Route111_EventScript_SetSandstorm:: setweather WEATHER_SANDSTORM Route111_EventScript_EndCheckSetSandstorm:: @@ -170,8 +160,7 @@ Route111_EventScript_Girl:: goto_if_set FLAG_DAILY_ROUTE_111_RECEIVED_BERRY, Route111_EventScript_ReceivedBerry msgbox Route111_Text_WateredPlantsEveryDayTakeBerry, MSGBOX_DEFAULT giveitem ITEM_RAZZ_BERRY - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_DAILY_ROUTE_111_RECEIVED_BERRY special GetPlayerBigGuyGirlString msgbox Route111_Text_GoingToTryToMakeDifferentColorBerries, MSGBOX_DEFAULT @@ -210,9 +199,8 @@ Route111_EventScript_ViciousSandstormTriggerRight:: end Route111_EventScript_ViciousSandstormTrigger:: - checkitem ITEM_GO_GOGGLES, 1 - compare VAR_RESULT, FALSE - goto_if_eq Route111_EventScript_PreventRouteAccess + checkitem ITEM_GO_GOGGLES + goto_if_eq VAR_RESULT, FALSE, Route111_EventScript_PreventRouteAccess setvar VAR_TEMP_3, 1 releaseall end @@ -220,14 +208,10 @@ Route111_EventScript_ViciousSandstormTrigger:: Route111_EventScript_PreventRouteAccess:: msgbox gText_SandstormIsVicious, MSGBOX_DEFAULT closemessage - compare VAR_0x8004, 0 - call_if_eq Route111_EventScript_PushUpFromRoute - compare VAR_0x8004, 1 - call_if_eq Route111_EventScript_PushDownFromRoute - compare VAR_0x8004, 2 - call_if_eq Route111_EventScript_PushLeftFromRoute - compare VAR_0x8004, 3 - call_if_eq Route111_EventScript_PushRightFromRoute + call_if_eq VAR_0x8004, 0, Route111_EventScript_PushUpFromRoute + call_if_eq VAR_0x8004, 1, Route111_EventScript_PushDownFromRoute + call_if_eq VAR_0x8004, 2, Route111_EventScript_PushLeftFromRoute + call_if_eq VAR_0x8004, 3, Route111_EventScript_PushRightFromRoute releaseall end @@ -285,8 +269,7 @@ Route111_EventScript_Victor:: faceplayer setflag FLAG_LANDMARK_WINSTRATE_FAMILY msgbox Route111_Text_BattleOurFamily, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route111_EventScript_BattleWinstrates + goto_if_eq VAR_RESULT, YES, Route111_EventScript_BattleWinstrates msgbox Route111_Text_IsThatSo, MSGBOX_DEFAULT release end @@ -420,10 +403,8 @@ Route111_EventScript_Man2:: Route111_EventScript_Hiker:: lock faceplayer - compare VAR_MIRAGE_TOWER_STATE, 3 - goto_if_eq Route111_EventScript_HikerMirageTowerGone - compare VAR_MIRAGE_TOWER_STATE, 2 - goto_if_eq Route111_EventScript_HikerMirageTowerDisintegrated + goto_if_eq VAR_MIRAGE_TOWER_STATE, 3, Route111_EventScript_HikerMirageTowerGone + goto_if_eq VAR_MIRAGE_TOWER_STATE, 2, Route111_EventScript_HikerMirageTowerDisintegrated goto_if_set FLAG_MIRAGE_TOWER_VISIBLE, Route111_EventScript_HikerMirageTowerVisible msgbox Route111_Text_ShouldBeMirageTowerAroundHere, MSGBOX_DEFAULT release @@ -478,8 +459,7 @@ Route111_EventScript_Becky:: Route111_EventScript_Dusty:: trainerbattle_single TRAINER_DUSTY_1, Route111_Text_DustyIntro, Route111_Text_DustyDefeat, Route111_EventScript_RegisterDusty specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route111_EventScript_RematchDusty + goto_if_eq VAR_RESULT, TRUE, Route111_EventScript_RematchDusty msgbox Route111_Text_DustyPostBattle, MSGBOX_DEFAULT release end @@ -515,8 +495,7 @@ Route111_EventScript_Daisuke:: Route111_EventScript_Wilton:: trainerbattle_single TRAINER_WILTON_1, Route111_Text_WiltonIntro, Route111_Text_WiltonDefeat, Route111_EventScript_RegisterWilton specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route111_EventScript_RematchWilton + goto_if_eq VAR_RESULT, TRUE, Route111_EventScript_RematchWilton msgbox Route111_Text_WiltonPostBattle, MSGBOX_DEFAULT release end @@ -537,8 +516,7 @@ Route111_EventScript_RematchWilton:: Route111_EventScript_Brooke:: trainerbattle_single TRAINER_BROOKE_1, Route111_Text_BrookeIntro, Route111_Text_BrookeDefeat, Route111_EventScript_RegisterBrooke specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route111_EventScript_RematchBrooke + goto_if_eq VAR_RESULT, TRUE, Route111_EventScript_RematchBrooke msgbox Route111_Text_BrookePostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route111_OldLadysRestStop/scripts.inc b/data/maps/Route111_OldLadysRestStop/scripts.inc index 645ce4de41..6b7b5a8abc 100644 --- a/data/maps/Route111_OldLadysRestStop/scripts.inc +++ b/data/maps/Route111_OldLadysRestStop/scripts.inc @@ -10,10 +10,8 @@ Route111_OldLadysRestStop_EventScript_OldLady:: lock faceplayer msgbox Route111_OldLadysRestStop_Text_RestUpHere, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route111_OldLadysRestStop_EventScript_Rest - compare VAR_RESULT, NO - goto_if_eq Route111_OldLadysRestStop_EventScript_DeclineRest + goto_if_eq VAR_RESULT, YES, Route111_OldLadysRestStop_EventScript_Rest + goto_if_eq VAR_RESULT, NO, Route111_OldLadysRestStop_EventScript_DeclineRest end Route111_OldLadysRestStop_EventScript_Rest:: @@ -21,10 +19,8 @@ Route111_OldLadysRestStop_EventScript_Rest:: closemessage call Common_EventScript_OutOfCenterPartyHeal msgbox Route111_OldLadysRestStop_Text_StillTiredTakeAnotherRest, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route111_OldLadysRestStop_EventScript_Rest - compare VAR_RESULT, NO - goto_if_eq Route111_OldLadysRestStop_EventScript_DeclineRest + goto_if_eq VAR_RESULT, YES, Route111_OldLadysRestStop_EventScript_Rest + goto_if_eq VAR_RESULT, NO, Route111_OldLadysRestStop_EventScript_DeclineRest end Route111_OldLadysRestStop_EventScript_DeclineRest:: diff --git a/data/maps/Route111_WinstrateFamilysHouse/scripts.inc b/data/maps/Route111_WinstrateFamilysHouse/scripts.inc index eedd83f068..a163c7b4f2 100644 --- a/data/maps/Route111_WinstrateFamilysHouse/scripts.inc +++ b/data/maps/Route111_WinstrateFamilysHouse/scripts.inc @@ -21,8 +21,7 @@ Route111_WinstrateFamilysHouse_EventScript_Victoria:: goto_if_set FLAG_RECEIVED_MACHO_BRACE, Route111_WinstrateFamilysHouse_EventScript_ReceivedMachoBrace msgbox Route111_WinstrateFamilysHouse_Text_LikeYouToHaveMachoBrace, MSGBOX_DEFAULT giveitem ITEM_MACHO_BRACE - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_MACHO_BRACE goto Route111_WinstrateFamilysHouse_EventScript_FaceOriginalDirection end diff --git a/data/maps/Route112/scripts.inc b/data/maps/Route112/scripts.inc index abea230be1..a6c248e1f6 100644 --- a/data/maps/Route112/scripts.inc +++ b/data/maps/Route112/scripts.inc @@ -71,8 +71,7 @@ Route112_EventScript_Brice:: Route112_EventScript_Trent:: trainerbattle_single TRAINER_TRENT_1, Route112_Text_TrentIntro, Route112_Text_TrentDefeat, Route112_EventScript_RegisterTrent specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route112_EventScript_RematchTrent + goto_if_eq VAR_RESULT, TRUE, Route112_EventScript_RematchTrent msgbox Route112_Text_TrentPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route112_CableCarStation/scripts.inc b/data/maps/Route112_CableCarStation/scripts.inc index 86fe61a05b..3ce4f62e2a 100644 --- a/data/maps/Route112_CableCarStation/scripts.inc +++ b/data/maps/Route112_CableCarStation/scripts.inc @@ -6,9 +6,8 @@ Route112_CableCarStation_MapScripts:: .byte 0 Route112_CableCarStation_OnTransition: - setescapewarp MAP_ROUTE112, 255, 28, 28 - compare VAR_CABLE_CAR_STATION_STATE, 2 - call_if_eq Route112_CableCarStation_EventScript_MoveAttendantAside + setescapewarp MAP_ROUTE112, 28, 28 + call_if_eq VAR_CABLE_CAR_STATION_STATE, 2, Route112_CableCarStation_EventScript_MoveAttendantAside end Route112_CableCarStation_EventScript_MoveAttendantAside:: @@ -35,10 +34,8 @@ Route112_CableCarStation_EventScript_Attendant:: lock faceplayer msgbox Route112_CableCarStation_Text_CableCarReadyGetOn, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route112_CableCarStation_EventScript_RideCableCar - compare VAR_RESULT, NO - goto_if_eq Route112_CableCarStation_EventScript_DeclineRide + goto_if_eq VAR_RESULT, YES, Route112_CableCarStation_EventScript_RideCableCar + goto_if_eq VAR_RESULT, NO, Route112_CableCarStation_EventScript_DeclineRide end Route112_CableCarStation_EventScript_RideCableCar:: diff --git a/data/maps/Route113/scripts.inc b/data/maps/Route113/scripts.inc index 0a8bb092c3..4f02e74b64 100644 --- a/data/maps/Route113/scripts.inc +++ b/data/maps/Route113/scripts.inc @@ -14,10 +14,8 @@ Route113_OnTransition: Route113_EventScript_CheckSetAshWeather:: getplayerxy VAR_TEMP_0, VAR_TEMP_1 - compare VAR_TEMP_0, 19 - goto_if_lt Route113_EventScript_DontSetAshWeather - compare VAR_TEMP_0, 84 - goto_if_gt Route113_EventScript_DontSetAshWeather + goto_if_lt VAR_TEMP_0, 19, Route113_EventScript_DontSetAshWeather + goto_if_gt VAR_TEMP_0, 84, Route113_EventScript_DontSetAshWeather setweather WEATHER_VOLCANIC_ASH return @@ -61,8 +59,7 @@ Route113_EventScript_Dillon:: Route113_EventScript_Madeline:: trainerbattle_single TRAINER_MADELINE_1, Route113_Text_MadelineIntro, Route113_Text_MadelineDefeat, Route113_EventScript_RegisterMadeline specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route113_EventScript_RematchMadeline + goto_if_eq VAR_RESULT, TRUE, Route113_EventScript_RematchMadeline msgbox Route113_Text_MadelinePostBattle, MSGBOX_DEFAULT release end @@ -83,8 +80,7 @@ Route113_EventScript_RematchMadeline:: Route113_EventScript_Lao:: trainerbattle_single TRAINER_LAO_1, Route113_Text_LaoIntro, Route113_Text_LaoDefeat, Route113_EventScript_RegisterLao specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route113_EventScript_RematchLao + goto_if_eq VAR_RESULT, TRUE, Route113_EventScript_RematchLao msgbox Route113_Text_LaoPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route113_GlassWorkshop/scripts.inc b/data/maps/Route113_GlassWorkshop/scripts.inc index bad739806f..41182b2ae5 100644 --- a/data/maps/Route113_GlassWorkshop/scripts.inc +++ b/data/maps/Route113_GlassWorkshop/scripts.inc @@ -13,8 +13,7 @@ Route113_GlassWorkshop_MapScripts:: Route113_GlassWorkshop_OnTransition: setflag FLAG_LANDMARK_GLASS_WORKSHOP - compare VAR_GLASS_WORKSHOP_STATE, 1 - call_if_eq Route113_GlassWorkshop_EventScript_ReenterWorkshopAfterSootSack + call_if_eq VAR_GLASS_WORKSHOP_STATE, 1, Route113_GlassWorkshop_EventScript_ReenterWorkshopAfterSootSack end Route113_GlassWorkshop_EventScript_ReenterWorkshopAfterSootSack:: @@ -24,12 +23,9 @@ Route113_GlassWorkshop_EventScript_ReenterWorkshopAfterSootSack:: Route113_GlassWorkshop_EventScript_GlassWorker:: lock faceplayer - compare VAR_GLASS_WORKSHOP_STATE, 10 - goto_if_ge Route113_GlassWorkshop_EventScript_GiveItemAfterNoRoom - compare VAR_GLASS_WORKSHOP_STATE, 2 - goto_if_eq Route113_GlassWorkshop_EventScript_CheckCollectedAsh - compare VAR_GLASS_WORKSHOP_STATE, 1 - goto_if_eq Route113_GlassWorkshop_EventScript_ExplainSootSack + goto_if_ge VAR_GLASS_WORKSHOP_STATE, 10, Route113_GlassWorkshop_EventScript_GiveItemAfterNoRoom + goto_if_eq VAR_GLASS_WORKSHOP_STATE, 2, Route113_GlassWorkshop_EventScript_CheckCollectedAsh + goto_if_eq VAR_GLASS_WORKSHOP_STATE, 1, Route113_GlassWorkshop_EventScript_ExplainSootSack msgbox Route113_GlassWorkshop_Text_GoCollectAshWithThis, MSGBOX_DEFAULT giveitem ITEM_SOOT_SACK setvar VAR_GLASS_WORKSHOP_STATE, 1 @@ -43,12 +39,10 @@ Route113_GlassWorkshop_EventScript_ExplainSootSack:: end Route113_GlassWorkshop_EventScript_CheckCollectedAsh:: - checkitem ITEM_SOOT_SACK, 1 - compare VAR_RESULT, FALSE - goto_if_eq Route113_GlassWorkshop_EventScript_SootSackNotInBag + checkitem ITEM_SOOT_SACK + goto_if_eq VAR_RESULT, FALSE, Route113_GlassWorkshop_EventScript_SootSackNotInBag msgbox Route113_GlassWorkshop_Text_LetsSeeCollectedAshes, MSGBOX_DEFAULT - compare VAR_ASH_GATHER_COUNT, LOWEST_ASH_PRICE - goto_if_lt Route113_GlassWorkshop_EventScript_NotEnoughAsh + goto_if_lt VAR_ASH_GATHER_COUNT, LOWEST_ASH_PRICE, Route113_GlassWorkshop_EventScript_NotEnoughAsh message Route113_GlassWorkshop_Text_WhichGlassItemWoudYouLike waitmessage goto Route113_GlassWorkshop_EventScript_ChooseGlassItem @@ -78,13 +72,11 @@ Route113_GlassWorkshop_EventScript_ChooseGlassItem:: Route113_GlassWorkshop_EventScript_BlueFlute:: setvar VAR_0x8008, ITEM_BLUE_FLUTE - bufferitemname 0, VAR_0x8008 + bufferitemname STR_VAR_1, VAR_0x8008 setvar VAR_0x800A, BLUE_FLUTE_PRICE - compare VAR_ASH_GATHER_COUNT, BLUE_FLUTE_PRICE - goto_if_lt Route113_GlassWorkshop_EventScript_NotEnoughAshForItem + goto_if_lt VAR_ASH_GATHER_COUNT, BLUE_FLUTE_PRICE, Route113_GlassWorkshop_EventScript_NotEnoughAshForItem msgbox Route113_GlassWorkshop_Text_IsThatTheItemForYou, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq Route113_GlassWorkshop_EventScript_ChooseDifferentItem + goto_if_eq VAR_RESULT, NO, Route113_GlassWorkshop_EventScript_ChooseDifferentItem setvar VAR_GLASS_WORKSHOP_STATE, 10 subvar VAR_ASH_GATHER_COUNT, BLUE_FLUTE_PRICE goto Route113_GlassWorkshop_EventScript_MakeGlassItem @@ -92,13 +84,11 @@ Route113_GlassWorkshop_EventScript_BlueFlute:: Route113_GlassWorkshop_EventScript_YellowFlute:: setvar VAR_0x8008, ITEM_YELLOW_FLUTE - bufferitemname 0, VAR_0x8008 + bufferitemname STR_VAR_1, VAR_0x8008 setvar VAR_0x800A, YELLOW_FLUTE_PRICE - compare VAR_ASH_GATHER_COUNT, YELLOW_FLUTE_PRICE - goto_if_lt Route113_GlassWorkshop_EventScript_NotEnoughAshForItem + goto_if_lt VAR_ASH_GATHER_COUNT, YELLOW_FLUTE_PRICE, Route113_GlassWorkshop_EventScript_NotEnoughAshForItem msgbox Route113_GlassWorkshop_Text_IsThatTheItemForYou, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq Route113_GlassWorkshop_EventScript_ChooseDifferentItem + goto_if_eq VAR_RESULT, NO, Route113_GlassWorkshop_EventScript_ChooseDifferentItem setvar VAR_GLASS_WORKSHOP_STATE, 11 subvar VAR_ASH_GATHER_COUNT, YELLOW_FLUTE_PRICE goto Route113_GlassWorkshop_EventScript_MakeGlassItem @@ -106,13 +96,11 @@ Route113_GlassWorkshop_EventScript_YellowFlute:: Route113_GlassWorkshop_EventScript_RedFlute:: setvar VAR_0x8008, ITEM_RED_FLUTE - bufferitemname 0, VAR_0x8008 + bufferitemname STR_VAR_1, VAR_0x8008 setvar VAR_0x800A, RED_FLUTE_PRICE - compare VAR_ASH_GATHER_COUNT, RED_FLUTE_PRICE - goto_if_lt Route113_GlassWorkshop_EventScript_NotEnoughAshForItem + goto_if_lt VAR_ASH_GATHER_COUNT, RED_FLUTE_PRICE, Route113_GlassWorkshop_EventScript_NotEnoughAshForItem msgbox Route113_GlassWorkshop_Text_IsThatTheItemForYou, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq Route113_GlassWorkshop_EventScript_ChooseDifferentItem + goto_if_eq VAR_RESULT, NO, Route113_GlassWorkshop_EventScript_ChooseDifferentItem setvar VAR_GLASS_WORKSHOP_STATE, 12 subvar VAR_ASH_GATHER_COUNT, RED_FLUTE_PRICE goto Route113_GlassWorkshop_EventScript_MakeGlassItem @@ -120,13 +108,11 @@ Route113_GlassWorkshop_EventScript_RedFlute:: Route113_GlassWorkshop_EventScript_WhiteFlute:: setvar VAR_0x8008, ITEM_WHITE_FLUTE - bufferitemname 0, VAR_0x8008 + bufferitemname STR_VAR_1, VAR_0x8008 setvar VAR_0x800A, WHITE_FLUTE_PRICE - compare VAR_ASH_GATHER_COUNT, WHITE_FLUTE_PRICE - goto_if_lt Route113_GlassWorkshop_EventScript_NotEnoughAshForItem + goto_if_lt VAR_ASH_GATHER_COUNT, WHITE_FLUTE_PRICE, Route113_GlassWorkshop_EventScript_NotEnoughAshForItem msgbox Route113_GlassWorkshop_Text_IsThatTheItemForYou, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq Route113_GlassWorkshop_EventScript_ChooseDifferentItem + goto_if_eq VAR_RESULT, NO, Route113_GlassWorkshop_EventScript_ChooseDifferentItem setvar VAR_GLASS_WORKSHOP_STATE, 13 subvar VAR_ASH_GATHER_COUNT, WHITE_FLUTE_PRICE goto Route113_GlassWorkshop_EventScript_MakeGlassItem @@ -134,13 +120,11 @@ Route113_GlassWorkshop_EventScript_WhiteFlute:: Route113_GlassWorkshop_EventScript_BlackFlute:: setvar VAR_0x8008, ITEM_BLACK_FLUTE - bufferitemname 0, VAR_0x8008 + bufferitemname STR_VAR_1, VAR_0x8008 setvar VAR_0x800A, BLACK_FLUTE_PRICE - compare VAR_ASH_GATHER_COUNT, BLACK_FLUTE_PRICE - goto_if_lt Route113_GlassWorkshop_EventScript_NotEnoughAshForItem + goto_if_lt VAR_ASH_GATHER_COUNT, BLACK_FLUTE_PRICE, Route113_GlassWorkshop_EventScript_NotEnoughAshForItem msgbox Route113_GlassWorkshop_Text_IsThatTheItemForYou, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq Route113_GlassWorkshop_EventScript_ChooseDifferentItem + goto_if_eq VAR_RESULT, NO, Route113_GlassWorkshop_EventScript_ChooseDifferentItem setvar VAR_GLASS_WORKSHOP_STATE, 14 subvar VAR_ASH_GATHER_COUNT, BLACK_FLUTE_PRICE goto Route113_GlassWorkshop_EventScript_MakeGlassItem @@ -149,13 +133,11 @@ Route113_GlassWorkshop_EventScript_BlackFlute:: Route113_GlassWorkshop_EventScript_PrettyChair:: setvar VAR_0x8009, 1 setvar VAR_0x8008, DECOR_PRETTY_CHAIR - bufferdecorationname 0, VAR_0x8008 + bufferdecorationname STR_VAR_1, VAR_0x8008 setvar VAR_0x800A, PRETTY_CHAIR_PRICE - compare VAR_ASH_GATHER_COUNT, PRETTY_CHAIR_PRICE - goto_if_lt Route113_GlassWorkshop_EventScript_NotEnoughAshForItem + goto_if_lt VAR_ASH_GATHER_COUNT, PRETTY_CHAIR_PRICE, Route113_GlassWorkshop_EventScript_NotEnoughAshForItem msgbox Route113_GlassWorkshop_Text_IsThatTheItemForYou, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq Route113_GlassWorkshop_EventScript_ChooseDifferentItem + goto_if_eq VAR_RESULT, NO, Route113_GlassWorkshop_EventScript_ChooseDifferentItem setvar VAR_GLASS_WORKSHOP_STATE, 15 subvar VAR_ASH_GATHER_COUNT, PRETTY_CHAIR_PRICE goto Route113_GlassWorkshop_EventScript_MakeGlassItem @@ -164,13 +146,11 @@ Route113_GlassWorkshop_EventScript_PrettyChair:: Route113_GlassWorkshop_EventScript_PrettyDesk:: setvar VAR_0x8009, 1 setvar VAR_0x8008, DECOR_PRETTY_DESK - bufferdecorationname 0, VAR_0x8008 + bufferdecorationname STR_VAR_1, VAR_0x8008 setvar VAR_0x800A, PRETTY_DESK_PRICE - compare VAR_ASH_GATHER_COUNT, PRETTY_DESK_PRICE - goto_if_lt Route113_GlassWorkshop_EventScript_NotEnoughAshForItem + goto_if_lt VAR_ASH_GATHER_COUNT, PRETTY_DESK_PRICE, Route113_GlassWorkshop_EventScript_NotEnoughAshForItem msgbox Route113_GlassWorkshop_Text_IsThatTheItemForYou, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq Route113_GlassWorkshop_EventScript_ChooseDifferentItem + goto_if_eq VAR_RESULT, NO, Route113_GlassWorkshop_EventScript_ChooseDifferentItem setvar VAR_GLASS_WORKSHOP_STATE, 16 subvar VAR_ASH_GATHER_COUNT, PRETTY_DESK_PRICE goto Route113_GlassWorkshop_EventScript_MakeGlassItem @@ -184,14 +164,14 @@ Route113_GlassWorkshop_EventScript_CancelGlassItemSelect:: Route113_GlassWorkshop_EventScript_NotEnoughAsh:: setvar VAR_0x800A, LOWEST_ASH_PRICE subvar VAR_0x800A, VAR_ASH_GATHER_COUNT - buffernumberstring 0, VAR_0x800A + buffernumberstring STR_VAR_1, VAR_0x800A msgbox Route113_GlassWorkshop_Text_NotEnoughAshNeedX, MSGBOX_DEFAULT release end Route113_GlassWorkshop_EventScript_NotEnoughAshForItem:: subvar VAR_0x800A, VAR_ASH_GATHER_COUNT - buffernumberstring 1, VAR_0x800A + buffernumberstring STR_VAR_2, VAR_0x800A message Route113_GlassWorkshop_Text_NotEnoughAshToMakeItem waitmessage goto Route113_GlassWorkshop_EventScript_ChooseGlassItem @@ -211,24 +191,20 @@ Route113_GlassWorkshop_EventScript_MakeGlassItem:: delay 30 fadescreen FADE_FROM_BLACK msgbox Route113_GlassWorkshop_Text_IveFinishedGlassItem, MSGBOX_DEFAULT - compare VAR_0x8009, 0 - call_if_eq Route113_GlassWorkshop_EventScript_GiveGlassFlute - compare VAR_0x8009, 1 - call_if_eq Route113_GlassWorkshop_EventScript_GiveGlassDecor + call_if_eq VAR_0x8009, 0, Route113_GlassWorkshop_EventScript_GiveGlassFlute + call_if_eq VAR_0x8009, 1, Route113_GlassWorkshop_EventScript_GiveGlassDecor setvar VAR_GLASS_WORKSHOP_STATE, 2 release end Route113_GlassWorkshop_EventScript_GiveGlassFlute:: giveitem VAR_0x8008 - compare VAR_RESULT, FALSE - goto_if_eq Route113_GlassWorkshop_EventScript_NoRoomForFlute + goto_if_eq VAR_RESULT, FALSE, Route113_GlassWorkshop_EventScript_NoRoomForFlute return Route113_GlassWorkshop_EventScript_GiveGlassDecor:: givedecoration VAR_0x8008 - compare VAR_RESULT, FALSE - goto_if_eq Route113_GlassWorkshop_EventScript_NoRoomForDecor + goto_if_eq VAR_RESULT, FALSE, Route113_GlassWorkshop_EventScript_NoRoomForDecor return Route113_GlassWorkshop_EventScript_NoRoomForFlute:: @@ -257,58 +233,56 @@ Route113_GlassWorkshop_EventScript_GiveItemAfterNoRoom:: Route113_GlassWorkshop_EventScript_GiveBlueFlute:: setvar VAR_0x8009, 0 setvar VAR_0x8008, ITEM_BLUE_FLUTE - bufferitemname 0, VAR_0x8008 + bufferitemname STR_VAR_1, VAR_0x8008 goto Route113_GlassWorkshop_EventScript_TryGiveItemAgain end Route113_GlassWorkshop_EventScript_GiveYellowFlute:: setvar VAR_0x8009, 0 setvar VAR_0x8008, ITEM_YELLOW_FLUTE - bufferitemname 0, VAR_0x8008 + bufferitemname STR_VAR_1, VAR_0x8008 goto Route113_GlassWorkshop_EventScript_TryGiveItemAgain end Route113_GlassWorkshop_EventScript_GiveRedFlute:: setvar VAR_0x8009, 0 setvar VAR_0x8008, ITEM_RED_FLUTE - bufferitemname 0, VAR_0x8008 + bufferitemname STR_VAR_1, VAR_0x8008 goto Route113_GlassWorkshop_EventScript_TryGiveItemAgain end Route113_GlassWorkshop_EventScript_GiveWhiteFlute:: setvar VAR_0x8009, 0 setvar VAR_0x8008, ITEM_WHITE_FLUTE - bufferitemname 0, VAR_0x8008 + bufferitemname STR_VAR_1, VAR_0x8008 goto Route113_GlassWorkshop_EventScript_TryGiveItemAgain end Route113_GlassWorkshop_EventScript_GiveBlackFlute:: setvar VAR_0x8009, 0 setvar VAR_0x8008, ITEM_BLACK_FLUTE - bufferitemname 0, VAR_0x8008 + bufferitemname STR_VAR_1, VAR_0x8008 goto Route113_GlassWorkshop_EventScript_TryGiveItemAgain end Route113_GlassWorkshop_EventScript_GivePrettyChair:: setvar VAR_0x8009, 1 setvar VAR_0x8008, DECOR_PRETTY_CHAIR - bufferdecorationname 0, DECOR_PRETTY_CHAIR + bufferdecorationname STR_VAR_1, DECOR_PRETTY_CHAIR goto Route113_GlassWorkshop_EventScript_TryGiveItemAgain end Route113_GlassWorkshop_EventScript_GivePrettyDesk:: setvar VAR_0x8009, 1 setvar VAR_0x8008, DECOR_PRETTY_DESK - bufferdecorationname 0, DECOR_PRETTY_DESK + bufferdecorationname STR_VAR_1, DECOR_PRETTY_DESK goto Route113_GlassWorkshop_EventScript_TryGiveItemAgain end Route113_GlassWorkshop_EventScript_TryGiveItemAgain:: msgbox Route113_GlassWorkshop_Text_IveFinishedGlassItem, MSGBOX_DEFAULT - compare VAR_0x8009, 0 - call_if_eq Route113_GlassWorkshop_EventScript_GiveGlassFlute - compare VAR_0x8009, 1 - call_if_eq Route113_GlassWorkshop_EventScript_GiveGlassDecor + call_if_eq VAR_0x8009, 0, Route113_GlassWorkshop_EventScript_GiveGlassFlute + call_if_eq VAR_0x8009, 1, Route113_GlassWorkshop_EventScript_GiveGlassDecor setvar VAR_GLASS_WORKSHOP_STATE, 2 release end diff --git a/data/maps/Route114/scripts.inc b/data/maps/Route114/scripts.inc index c0420fbf61..abf70ea081 100644 --- a/data/maps/Route114/scripts.inc +++ b/data/maps/Route114/scripts.inc @@ -5,19 +5,14 @@ Route114_MapScripts:: .byte 0 Route114_OnTransition: - compare VAR_SHOULD_END_ABNORMAL_WEATHER, 1 - call_if_eq AbnormalWeather_EventScript_HideMapNamePopup - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_114_NORTH - call_if_eq AbnormalWeather_StartGroudonWeather - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_114_SOUTH - call_if_eq AbnormalWeather_StartGroudonWeather + call_if_eq VAR_SHOULD_END_ABNORMAL_WEATHER, 1, AbnormalWeather_EventScript_HideMapNamePopup + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_114_NORTH, AbnormalWeather_StartGroudonWeather + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_114_SOUTH, AbnormalWeather_StartGroudonWeather end Route114_OnLoad: - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_114_NORTH - call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute114North - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_114_SOUTH - call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute114South + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_114_NORTH, AbnormalWeather_EventScript_PlaceTilesRoute114North + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_114_SOUTH, AbnormalWeather_EventScript_PlaceTilesRoute114South end Route114_OnFrame: @@ -34,8 +29,7 @@ Route114_EventScript_Man:: addvar VAR_RESULT, NUM_ROUTE_114_MAN_BERRIES_SKIPPED addvar VAR_RESULT, FIRST_BERRY_INDEX giveitem VAR_RESULT - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_DAILY_ROUTE_114_RECEIVED_BERRY msgbox Route114_Text_TryBerryCrushWithFriends, MSGBOX_DEFAULT release @@ -52,8 +46,7 @@ Route114_EventScript_RoarGentleman:: goto_if_set FLAG_RECEIVED_TM05, Route114_EventScript_ReceivedRoar msgbox Route114_Text_AllMyMonDoesIsRoarTakeThis, MSGBOX_DEFAULT giveitem ITEM_TM05 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM05 msgbox Route114_Text_ExplainRoar, MSGBOX_DEFAULT release @@ -109,8 +102,7 @@ Route114_EventScript_Nancy:: Route114_EventScript_Steve:: trainerbattle_single TRAINER_STEVE_1, Route114_Text_SteveIntro, Route114_Text_SteveDefeat, Route114_EventScript_RegisterSteve specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route114_EventScript_RematchSteve + goto_if_eq VAR_RESULT, TRUE, Route114_EventScript_RematchSteve msgbox Route114_Text_StevePostBattle, MSGBOX_DEFAULT release end @@ -131,8 +123,7 @@ Route114_EventScript_RematchSteve:: Route114_EventScript_Bernie:: trainerbattle_single TRAINER_BERNIE_1, Route114_Text_BernieIntro, Route114_Text_BernieDefeat, Route114_EventScript_RegisterBernie specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route114_EventScript_RematchBernie + goto_if_eq VAR_RESULT, TRUE, Route114_EventScript_RematchBernie msgbox Route114_Text_BerniePostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route114_FossilManiacsHouse/scripts.inc b/data/maps/Route114_FossilManiacsHouse/scripts.inc index f291cd5ee4..ba3c0c60e5 100644 --- a/data/maps/Route114_FossilManiacsHouse/scripts.inc +++ b/data/maps/Route114_FossilManiacsHouse/scripts.inc @@ -12,8 +12,7 @@ Route114_FossilManiacsHouse_EventScript_FossilManiacsBrother:: goto_if_set FLAG_RECEIVED_TM28, Route114_FossilManiacsHouse_EventScript_ReceivedDig msgbox Route114_FossilManiacsHouse_Text_HaveThisToDigLikeMyBrother, MSGBOX_DEFAULT giveitem ITEM_TM28 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM28 release end diff --git a/data/maps/Route114_FossilManiacsTunnel/scripts.inc b/data/maps/Route114_FossilManiacsTunnel/scripts.inc index 3a6dd785cc..72138bbe40 100644 --- a/data/maps/Route114_FossilManiacsTunnel/scripts.inc +++ b/data/maps/Route114_FossilManiacsTunnel/scripts.inc @@ -19,8 +19,8 @@ Route114_FossilManiacsTunnel_OnLoad: end Route114_FossilManiacsTunnel_EventScript_CloseDesertUnderpass:: - setmetatile 6, 1, METATILE_Fallarbor_RedRockWall, 1 - setmetatile 6, 2, METATILE_Fallarbor_RedRockWall, 1 + setmetatile 6, 1, METATILE_Fallarbor_RedRockWall, TRUE + setmetatile 6, 2, METATILE_Fallarbor_RedRockWall, TRUE return Route114_FossilManiacsTunnel_EventScript_ManiacMentionCaveIn:: @@ -37,12 +37,10 @@ Route114_FossilManiacsTunnel_EventScript_FossilManiac:: lock faceplayer goto_if_set FLAG_RECEIVED_REVIVED_FOSSIL_MON, Route114_FossilManiacsTunnel_EventScript_PlayerRevivedFossil - checkitem ITEM_ROOT_FOSSIL, 1 - compare VAR_RESULT, TRUE - goto_if_eq Route114_FossilManiacsTunnel_EventScript_PlayerHasFossil - checkitem ITEM_CLAW_FOSSIL, 1 - compare VAR_RESULT, TRUE - goto_if_eq Route114_FossilManiacsTunnel_EventScript_PlayerHasFossil + checkitem ITEM_ROOT_FOSSIL + goto_if_eq VAR_RESULT, TRUE, Route114_FossilManiacsTunnel_EventScript_PlayerHasFossil + checkitem ITEM_CLAW_FOSSIL + goto_if_eq VAR_RESULT, TRUE, Route114_FossilManiacsTunnel_EventScript_PlayerHasFossil msgbox Route114_FossilManiacsTunnel_Text_LookInDesertForFossils, MSGBOX_DEFAULT release end diff --git a/data/maps/Route114_LanettesHouse/scripts.inc b/data/maps/Route114_LanettesHouse/scripts.inc index 5a7ccb3415..9143b27954 100644 --- a/data/maps/Route114_LanettesHouse/scripts.inc +++ b/data/maps/Route114_LanettesHouse/scripts.inc @@ -13,8 +13,7 @@ Route114_LanettesHouse_EventScript_Lanette:: setflag FLAG_SYS_PC_LANETTE msgbox Route114_LanettesHouse_Text_EverythingClutteredKeepThis, MSGBOX_DEFAULT givedecoration DECOR_LOTAD_DOLL - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowNoRoomForDecor + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowNoRoomForDecor setflag FLAG_RECEIVED_DOLL_LANETTE release end @@ -27,16 +26,14 @@ Route114_LanettesHouse_EventScript_OfferAdvice:: Route114_LanettesHouse_EventScript_Notebook:: lockall msgbox Route114_LanettesHouse_Text_ResearchNotesPage1, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route114_LanettesHouse_EventScript_NotebookPage2 + goto_if_eq VAR_RESULT, YES, Route114_LanettesHouse_EventScript_NotebookPage2 msgbox Route114_LanettesHouse_Text_ClosedTheNotebook, MSGBOX_DEFAULT releaseall end Route114_LanettesHouse_EventScript_NotebookPage2:: msgbox Route114_LanettesHouse_Text_ResearchNotesPage2, MSGBOX_YESNO - compare VAR_RESULT, YES - call_if_eq Route114_LanettesHouse_EventScript_NotebookPage3 + call_if_eq VAR_RESULT, YES, Route114_LanettesHouse_EventScript_NotebookPage3 releaseall end diff --git a/data/maps/Route115/scripts.inc b/data/maps/Route115/scripts.inc index 600e6751f2..e00fdb27dc 100644 --- a/data/maps/Route115/scripts.inc +++ b/data/maps/Route115/scripts.inc @@ -5,19 +5,14 @@ Route115_MapScripts:: .byte 0 Route115_OnLoad: - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_115_WEST - call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute115West - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_115_EAST - call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute115East + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_115_WEST, AbnormalWeather_EventScript_PlaceTilesRoute115West + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_115_EAST, AbnormalWeather_EventScript_PlaceTilesRoute115East end Route115_OnTransition: - compare VAR_SHOULD_END_ABNORMAL_WEATHER, 1 - call_if_eq AbnormalWeather_EventScript_HideMapNamePopup - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_115_WEST - call_if_eq AbnormalWeather_StartGroudonWeather - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_115_EAST - call_if_eq AbnormalWeather_StartGroudonWeather + call_if_eq VAR_SHOULD_END_ABNORMAL_WEATHER, 1, AbnormalWeather_EventScript_HideMapNamePopup + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_115_WEST, AbnormalWeather_StartGroudonWeather + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_115_EAST, AbnormalWeather_StartGroudonWeather end Route115_OnFrame: @@ -39,8 +34,7 @@ Route115_EventScript_MeteorFallsSign:: Route115_EventScript_Timothy:: trainerbattle_single TRAINER_TIMOTHY_1, Route115_Text_TimothyIntro, Route115_Text_TimothyDefeat, Route115_EventScript_RegisterTimothy specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route115_EventScript_RematchTimothy + goto_if_eq VAR_RESULT, TRUE, Route115_EventScript_RematchTimothy msgbox Route115_Text_TimothyPostBattle, MSGBOX_DEFAULT release end @@ -66,8 +60,7 @@ Route115_EventScript_Koichi:: Route115_EventScript_Nob:: trainerbattle_single TRAINER_NOB_1, Route115_Text_NobIntro, Route115_Text_NobDefeat, Route115_EventScript_RegisterNob specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route115_EventScript_RematchNob + goto_if_eq VAR_RESULT, TRUE, Route115_EventScript_RematchNob msgbox Route115_Text_NobPostBattle, MSGBOX_DEFAULT release end @@ -88,8 +81,7 @@ Route115_EventScript_RematchNob:: Route115_EventScript_Cyndy:: trainerbattle_single TRAINER_CYNDY_1, Route115_Text_CyndyIntro, Route115_Text_CyndyDefeat, Route115_EventScript_RegisterCyndy specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route115_EventScript_RematchCyndy + goto_if_eq VAR_RESULT, TRUE, Route115_EventScript_RematchCyndy msgbox Route115_Text_CyndyPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route116/scripts.inc b/data/maps/Route116/scripts.inc index 0ef6a05e1a..2a464d1996 100644 --- a/data/maps/Route116/scripts.inc +++ b/data/maps/Route116/scripts.inc @@ -9,12 +9,9 @@ Route116_MapScripts:: Route116_OnTransition: call_if_set FLAG_RECOVERED_DEVON_GOODS, Route116_EventScript_SetWandasBoyfriendPos - compare VAR_SHOULD_END_ABNORMAL_WEATHER, 1 - call_if_eq AbnormalWeather_EventScript_HideMapNamePopup - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_116_NORTH - call_if_eq AbnormalWeather_StartGroudonWeather - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_116_SOUTH - call_if_eq AbnormalWeather_StartGroudonWeather + call_if_eq VAR_SHOULD_END_ABNORMAL_WEATHER, 1, AbnormalWeather_EventScript_HideMapNamePopup + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_116_NORTH, AbnormalWeather_StartGroudonWeather + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_116_SOUTH, AbnormalWeather_StartGroudonWeather end Route116_EventScript_SetWandasBoyfriendPos:: @@ -22,10 +19,8 @@ Route116_EventScript_SetWandasBoyfriendPos:: return Route116_OnLoad: - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_116_NORTH - call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute116North - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_116_SOUTH - call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute116South + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_116_NORTH, AbnormalWeather_EventScript_PlaceTilesRoute116North + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_116_SOUTH, AbnormalWeather_EventScript_PlaceTilesRoute116South end Route116_OnFrame: @@ -62,18 +57,13 @@ Route116_EventScript_DevonEmployee:: Route116_EventScript_GiveRepeatBall:: setflag FLAG_MET_DEVON_EMPLOYEE giveitem ITEM_REPEAT_BALL - compare VAR_RESULT, FALSE - goto_if_eq Route116_EventScript_NoRoomForRepeatBall + goto_if_eq VAR_RESULT, FALSE, Route116_EventScript_NoRoomForRepeatBall msgbox Route116_Text_NewBallAvailableAtMart, MSGBOX_DEFAULT closemessage - compare VAR_FACING, DIR_NORTH - call_if_eq Route116_EventScript_DevonEmployeeExit - compare VAR_FACING, DIR_SOUTH - call_if_eq Route116_EventScript_DevonEmployeeExit - compare VAR_FACING, DIR_WEST - call_if_eq Route116_EventScript_DevonEmployeeExit - compare VAR_FACING, DIR_EAST - call_if_eq Route116_EventScript_DevonEmployeeExitEast + call_if_eq VAR_FACING, DIR_NORTH, Route116_EventScript_DevonEmployeeExit + call_if_eq VAR_FACING, DIR_SOUTH, Route116_EventScript_DevonEmployeeExit + call_if_eq VAR_FACING, DIR_WEST, Route116_EventScript_DevonEmployeeExit + call_if_eq VAR_FACING, DIR_EAST, Route116_EventScript_DevonEmployeeExitEast removeobject VAR_LAST_TALKED clearflag FLAG_HIDE_RUSTBORO_CITY_DEVON_CORP_3F_EMPLOYEE setflag FLAG_RECEIVED_REPEAT_BALL @@ -165,12 +155,10 @@ Route116_EventScript_BrineyTrigger:: Route116_EventScript_GlassesMan:: lock faceplayer - checkitem ITEM_BLACK_GLASSES, 1 - compare VAR_RESULT, TRUE - goto_if_eq Route116_EventScript_PlayerHasGlasses + checkitem ITEM_BLACK_GLASSES + goto_if_eq VAR_RESULT, TRUE, Route116_EventScript_PlayerHasGlasses specialvar VAR_RESULT, FoundBlackGlasses - compare VAR_RESULT, TRUE - goto_if_eq Route116_EventScript_FoundGlassesNotOnPlayer + goto_if_eq VAR_RESULT, TRUE, Route116_EventScript_FoundGlassesNotOnPlayer msgbox Route116_Text_CanYouHelpMeFindGlasses, MSGBOX_DEFAULT release end @@ -185,8 +173,7 @@ Route116_EventScript_PlayerHasGlasses:: msgbox Route116_Text_CanYouHelpMeFindGlasses, MSGBOX_DEFAULT msgbox Route116_Text_MayISeeThoseGlasses, MSGBOX_DEFAULT specialvar VAR_RESULT, FoundBlackGlasses - compare VAR_RESULT, TRUE - goto_if_eq Route116_EventScript_FoundGlassesOnPlayer + goto_if_eq VAR_RESULT, TRUE, Route116_EventScript_FoundGlassesOnPlayer msgbox Route116_Text_NotWhatImLookingFor, MSGBOX_DEFAULT release end @@ -199,14 +186,10 @@ Route116_EventScript_FoundGlassesOnPlayer:: Route116_EventScript_GlassesManExit:: delay 20 - compare VAR_FACING, DIR_NORTH - call_if_eq Route116_EventScript_GlassesManExitNormal - compare VAR_FACING, DIR_SOUTH - call_if_eq Route116_EventScript_GlassesManExitNormal - compare VAR_FACING, DIR_WEST - call_if_eq Route116_EventScript_GlassesManExitNormal - compare VAR_FACING, DIR_EAST - call_if_eq Route116_EventScript_GlassesManExitEast + call_if_eq VAR_FACING, DIR_NORTH, Route116_EventScript_GlassesManExitNormal + call_if_eq VAR_FACING, DIR_SOUTH, Route116_EventScript_GlassesManExitNormal + call_if_eq VAR_FACING, DIR_WEST, Route116_EventScript_GlassesManExitNormal + call_if_eq VAR_FACING, DIR_EAST, Route116_EventScript_GlassesManExitEast removeobject VAR_LAST_TALKED release end @@ -259,12 +242,10 @@ Route116_EventScript_Jose:: Route116_EventScript_Jerry:: trainerbattle_single TRAINER_JERRY_1, Route116_Text_JerryIntro, Route116_Text_JerryDefeat, Route116_EventScript_TryRegisterJerryAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route116_EventScript_RematchJerry + goto_if_eq VAR_RESULT, TRUE, Route116_EventScript_RematchJerry setvar VAR_0x8004, TRAINER_JERRY_1 specialvar VAR_RESULT, IsTrainerRegistered - compare VAR_RESULT, FALSE - goto_if_eq Route116_EventScript_TryRegisterJerry + goto_if_eq VAR_RESULT, FALSE, Route116_EventScript_TryRegisterJerry msgbox Route116_Text_JerryPostBattle, MSGBOX_DEFAULT release end @@ -312,12 +293,10 @@ Route116_EventScript_Janice:: Route116_EventScript_Karen:: trainerbattle_single TRAINER_KAREN_1, Route116_Text_KarenIntro, Route116_Text_KarenDefeat, Route116_EventScript_TryRegisterKarenAfterBattle specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route116_EventScript_RematchKaren + goto_if_eq VAR_RESULT, TRUE, Route116_EventScript_RematchKaren setvar VAR_0x8004, TRAINER_KAREN_1 specialvar VAR_RESULT, IsTrainerRegistered - compare VAR_RESULT, FALSE - goto_if_eq Route116_EventScript_TryRegisterKaren + goto_if_eq VAR_RESULT, FALSE, Route116_EventScript_TryRegisterKaren msgbox Route116_Text_KarenPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route117/scripts.inc b/data/maps/Route117/scripts.inc index f6ab885917..37d589ce31 100644 --- a/data/maps/Route117/scripts.inc +++ b/data/maps/Route117/scripts.inc @@ -41,8 +41,7 @@ Route117_EventScript_DayCareSign:: Route117_EventScript_Isaac:: trainerbattle_single TRAINER_ISAAC_1, Route117_Text_IsaacIntro, Route117_Text_IsaacDefeat, Route117_EventScript_RegisterIsaac specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route117_EventScript_RematchIsaac + goto_if_eq VAR_RESULT, TRUE, Route117_EventScript_RematchIsaac msgbox Route117_Text_IsaacPostBattle, MSGBOX_DEFAULT release end @@ -63,8 +62,7 @@ Route117_EventScript_RematchIsaac:: Route117_EventScript_Lydia:: trainerbattle_single TRAINER_LYDIA_1, Route117_Text_LydiaIntro, Route117_Text_LydiaDefeat, Route117_EventScript_RegisterLydia specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route117_EventScript_RematchLydia + goto_if_eq VAR_RESULT, TRUE, Route117_EventScript_RematchLydia msgbox Route117_Text_LydiaPostBattle, MSGBOX_DEFAULT release end @@ -85,8 +83,7 @@ Route117_EventScript_RematchLydia:: Route117_EventScript_Dylan:: trainerbattle_single TRAINER_DYLAN_1, Route117_Text_DylanIntro, Route117_Text_DylanDefeat, Route117_EventScript_RegisterDylan specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route117_EventScript_RematchDylan + goto_if_eq VAR_RESULT, TRUE, Route117_EventScript_RematchDylan msgbox Route117_Text_DylanPostBattle, MSGBOX_DEFAULT release end @@ -107,8 +104,7 @@ Route117_EventScript_RematchDylan:: Route117_EventScript_Maria:: trainerbattle_single TRAINER_MARIA_1, Route117_Text_MariaIntro, Route117_Text_MariaDefeat, Route117_EventScript_RegisterMaria specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route117_EventScript_RematchMaria + goto_if_eq VAR_RESULT, TRUE, Route117_EventScript_RematchMaria msgbox Route117_Text_MariaPostBattle, MSGBOX_DEFAULT release end @@ -134,8 +130,7 @@ Route117_EventScript_Derek:: Route117_EventScript_Anna:: trainerbattle_double TRAINER_ANNA_AND_MEG_1, Route117_Text_AnnaIntro, Route117_Text_AnnaDefeat, Route117_Text_AnnaNotEnoughMons, Route117_EventScript_RegisterAnna specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route117_EventScript_RematchAnna + goto_if_eq VAR_RESULT, TRUE, Route117_EventScript_RematchAnna msgbox Route117_Text_AnnaPostBattle, MSGBOX_DEFAULT release end @@ -154,8 +149,7 @@ Route117_EventScript_RematchAnna:: Route117_EventScript_Meg:: trainerbattle_double TRAINER_ANNA_AND_MEG_1, Route117_Text_MegIntro, Route117_Text_MegDefeat, Route117_Text_MegNotEnoughMons, Route117_EventScript_RegisterMeg specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route117_EventScript_RematchMeg + goto_if_eq VAR_RESULT, TRUE, Route117_EventScript_RematchMeg msgbox Route117_Text_MegPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route118/scripts.inc b/data/maps/Route118/scripts.inc index 5b68804b5b..92dd8847d4 100644 --- a/data/maps/Route118/scripts.inc +++ b/data/maps/Route118/scripts.inc @@ -8,19 +8,14 @@ Route118_MapScripts:: Route118_OnTransition: call GabbyAndTy_EventScript_UpdateLocation - compare VAR_SHOULD_END_ABNORMAL_WEATHER, 1 - call_if_eq AbnormalWeather_EventScript_HideMapNamePopup - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_118_EAST - call_if_eq AbnormalWeather_StartGroudonWeather - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_118_WEST - call_if_eq AbnormalWeather_StartGroudonWeather + call_if_eq VAR_SHOULD_END_ABNORMAL_WEATHER, 1, AbnormalWeather_EventScript_HideMapNamePopup + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_118_EAST, AbnormalWeather_StartGroudonWeather + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_118_WEST, AbnormalWeather_StartGroudonWeather end Route118_OnLoad: - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_118_EAST - call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute118East - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_118_WEST - call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute118West + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_118_EAST, AbnormalWeather_EventScript_PlaceTilesRoute118East + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_118_WEST, AbnormalWeather_EventScript_PlaceTilesRoute118West end Route118_OnFrame: @@ -32,10 +27,8 @@ Route118_EventScript_GoodRodFisherman:: faceplayer goto_if_set FLAG_RECEIVED_GOOD_ROD, Route118_EventScript_ReceivedGoodRod msgbox Route118_Text_YouAgreeGoodRodIsGood, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route118_EventScript_ReceiveGoodRod - compare VAR_RESULT, NO - goto_if_eq Route118_EventScript_DeclineGoodRod + goto_if_eq VAR_RESULT, YES, Route118_EventScript_ReceiveGoodRod + goto_if_eq VAR_RESULT, NO, Route118_EventScript_DeclineGoodRod end Route118_EventScript_ReceiveGoodRod:: @@ -103,12 +96,9 @@ Route118_EventScript_StevenTrigger:: delay 30 msgbox Route118_Text_StevenQuestions, MSGBOX_DEFAULT closemessage - compare VAR_0x8008, 0 - call_if_eq Route118_EventScript_StevenExit0 - compare VAR_0x8008, 1 - call_if_eq Route118_EventScript_StevenExit1 - compare VAR_0x8008, 2 - call_if_eq Route118_EventScript_StevenExit2 + call_if_eq VAR_0x8008, 0, Route118_EventScript_StevenExit0 + call_if_eq VAR_0x8008, 1, Route118_EventScript_StevenExit1 + call_if_eq VAR_0x8008, 2, Route118_EventScript_StevenExit2 setvar VAR_ROUTE118_STATE, 1 removeobject LOCALID_STEVEN releaseall @@ -190,8 +180,7 @@ Route118_Movement_StevenExit2: Route118_EventScript_Rose:: trainerbattle_single TRAINER_ROSE_1, Route118_Text_RoseIntro, Route118_Text_RoseDefeat, Route118_EventScript_RegisterRose specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route118_EventScript_RematchRose + goto_if_eq VAR_RESULT, TRUE, Route118_EventScript_RematchRose msgbox Route118_Text_RosePostBattle, MSGBOX_DEFAULT release end @@ -222,8 +211,7 @@ Route118_EventScript_Wade:: Route118_EventScript_Dalton:: trainerbattle_single TRAINER_DALTON_1, Route118_Text_DaltonIntro, Route118_Text_DaltonDefeat, Route118_EventScript_RegisterDalton specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route118_EventScript_RematchDalton + goto_if_eq VAR_RESULT, TRUE, Route118_EventScript_RematchDalton msgbox Route118_Text_DaltonPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route119/scripts.inc b/data/maps/Route119/scripts.inc index 839f4101ba..94094206c7 100644 --- a/data/maps/Route119/scripts.inc +++ b/data/maps/Route119/scripts.inc @@ -13,16 +13,14 @@ Route119_OnResume: Route119_EventScript_TryRemoveKecleon:: specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_CAUGHT - goto_if_ne Common_EventScript_NopReturn + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return Route119_OnTransition: call Common_EventScript_SetupRivalGfxId call Common_EventScript_SetupRivalOnBikeGfxId - compare VAR_WEATHER_INSTITUTE_STATE, 1 - call_if_eq Route119_EventScript_MoveInstituteWorkersDownstairs + call_if_eq VAR_WEATHER_INSTITUTE_STATE, 1, Route119_EventScript_MoveInstituteWorkersDownstairs special SetRoute119Weather end @@ -46,30 +44,22 @@ Route119_EventScript_RivalEncounter:: lockall addobject LOCALID_RIVAL_ON_BIKE checkplayergender - compare VAR_RESULT, MALE - call_if_eq Route119_EventScript_PlayMayMusic - compare VAR_RESULT, FEMALE - call_if_eq Route119_EventScript_PlayBrendanMusic + call_if_eq VAR_RESULT, MALE, Route119_EventScript_PlayMayMusic + call_if_eq VAR_RESULT, FEMALE, Route119_EventScript_PlayBrendanMusic delay 65 - compare VAR_TEMP_1, 1 - call_if_eq Route119_EventScript_RivalEnter1 - compare VAR_TEMP_1, 2 - call_if_eq Route119_EventScript_RivalEnter2 + call_if_eq VAR_TEMP_1, 1, Route119_EventScript_RivalEnter1 + call_if_eq VAR_TEMP_1, 2, Route119_EventScript_RivalEnter2 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 delay 30 - compare VAR_TEMP_1, 1 - call_if_eq Route119_EventScript_SetRivalPos1 - compare VAR_TEMP_1, 2 - call_if_eq Route119_EventScript_SetRivalPos2 + call_if_eq VAR_TEMP_1, 1, Route119_EventScript_SetRivalPos1 + call_if_eq VAR_TEMP_1, 2, Route119_EventScript_SetRivalPos2 removeobject LOCALID_RIVAL_ON_BIKE addobject LOCALID_RIVAL delay 30 checkplayergender - compare VAR_RESULT, MALE - goto_if_eq Route119_EventScript_BattleMay - compare VAR_RESULT, FEMALE - goto_if_eq Route119_EventScript_BattleBrendan + goto_if_eq VAR_RESULT, MALE, Route119_EventScript_BattleMay + goto_if_eq VAR_RESULT, FEMALE, Route119_EventScript_BattleBrendan releaseall end @@ -148,36 +138,28 @@ Route119_EventScript_GiveFlyHM:: Route119_EventScript_RivalExitScottArrive:: closemessage - compare VAR_TEMP_1, 1 - call_if_eq Route119_EventScript_SetRivalPos1 - compare VAR_TEMP_1, 2 - call_if_eq Route119_EventScript_SetRivalPos2 + call_if_eq VAR_TEMP_1, 1, Route119_EventScript_SetRivalPos1 + call_if_eq VAR_TEMP_1, 2, Route119_EventScript_SetRivalPos2 removeobject LOCALID_RIVAL addobject LOCALID_RIVAL_ON_BIKE delay 30 - compare VAR_TEMP_1, 1 - call_if_eq Route119_EventScript_RivalExit1 - compare VAR_TEMP_1, 2 - call_if_eq Route119_EventScript_RivalExit2 + call_if_eq VAR_TEMP_1, 1, Route119_EventScript_RivalExit1 + call_if_eq VAR_TEMP_1, 2, Route119_EventScript_RivalExit2 removeobject LOCALID_RIVAL_ON_BIKE setvar VAR_ROUTE119_STATE, 1 savebgm MUS_DUMMY fadedefaultbgm delay 60 - compare VAR_TEMP_1, 1 - call_if_eq Route119_EventScript_SetScottPos1 - compare VAR_TEMP_1, 2 - call_if_eq Route119_EventScript_SetScottPos2 + call_if_eq VAR_TEMP_1, 1, Route119_EventScript_SetScottPos1 + call_if_eq VAR_TEMP_1, 2, Route119_EventScript_SetScottPos2 addobject LOCALID_SCOTT applymovement LOCALID_SCOTT, Route119_Movement_ScottEnter waitmovement 0 addvar VAR_SCOTT_STATE, 1 msgbox Route119_Text_ScottWayToGoBeSeeingYou, MSGBOX_DEFAULT closemessage - compare VAR_TEMP_1, 1 - call_if_eq Route119_EventScript_ScottExit1 - compare VAR_TEMP_1, 2 - call_if_eq Route119_EventScript_ScottExit2 + call_if_eq VAR_TEMP_1, 1, Route119_EventScript_ScottExit1 + call_if_eq VAR_TEMP_1, 2, Route119_EventScript_ScottExit2 removeobject LOCALID_SCOTT releaseall end @@ -372,8 +354,7 @@ Route119_EventScript_Kent:: Route119_EventScript_Jackson:: trainerbattle_single TRAINER_JACKSON_1, Route119_Text_JacksonIntro, Route119_Text_JacksonDefeat, Route119_EventScript_RegisterJackson specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route119_EventScript_RematchJackson + goto_if_eq VAR_RESULT, TRUE, Route119_EventScript_RematchJackson msgbox Route119_Text_JacksonPostBattle, MSGBOX_DEFAULT release end @@ -394,8 +375,7 @@ Route119_EventScript_RematchJackson:: Route119_EventScript_Catherine:: trainerbattle_single TRAINER_CATHERINE_1, Route119_Text_CatherineIntro, Route119_Text_CatherineDefeat, Route119_EventScript_RegisterCatherine specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route119_EventScript_RematchCatherine + goto_if_eq VAR_RESULT, TRUE, Route119_EventScript_RematchCatherine msgbox Route119_Text_CatherinePostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route119_WeatherInstitute_1F/scripts.inc b/data/maps/Route119_WeatherInstitute_1F/scripts.inc index 33ba0b025d..cce41bfb5f 100644 --- a/data/maps/Route119_WeatherInstitute_1F/scripts.inc +++ b/data/maps/Route119_WeatherInstitute_1F/scripts.inc @@ -5,8 +5,7 @@ Route119_WeatherInstitute_1F_MapScripts:: .byte 0 Route119_WeatherInstitute_1F_OnTransition: - compare VAR_WEATHER_INSTITUTE_STATE, 0 - call_if_eq Route119_WeatherInstitute_1F_EventScript_SetLittleBoyPos + call_if_eq VAR_WEATHER_INSTITUTE_STATE, 0, Route119_WeatherInstitute_1F_EventScript_SetLittleBoyPos end Route119_WeatherInstitute_1F_EventScript_SetLittleBoyPos:: @@ -18,8 +17,7 @@ Route119_WeatherInstitute_1F_EventScript_LittleBoy:: lock faceplayer special GetPlayerBigGuyGirlString - compare VAR_WEATHER_INSTITUTE_STATE, 0 - goto_if_eq Route119_WeatherInstitute_1F_EventScript_LittleBoyTeamAquaHere + goto_if_eq VAR_WEATHER_INSTITUTE_STATE, 0, Route119_WeatherInstitute_1F_EventScript_LittleBoyTeamAquaHere msgbox Route119_WeatherInstitute_1F_Text_WowYoureStrong, MSGBOX_DEFAULT release end @@ -36,8 +34,7 @@ Route119_WeatherInstitute_1F_EventScript_InstituteWorker1:: setvar VAR_0x8004, 0 call_if_set FLAG_DEFEATED_KYOGRE, Route119_WeatherInstitute_1F_EventScript_LegendaryDefeated call_if_set FLAG_DEFEATED_GROUDON, Route119_WeatherInstitute_1F_EventScript_LegendaryDefeated - compare VAR_0x8004, 2 @ Both defeated - goto_if_eq Route119_WeatherInstitute_1F_EventScript_StudyingRain + goto_if_eq VAR_0x8004, 2, Route119_WeatherInstitute_1F_EventScript_StudyingRain @ Both defeated msgbox Route119_WeatherInstitute_1F_Text_NoticingAbnormalWeather, MSGBOX_DEFAULT release end diff --git a/data/maps/Route119_WeatherInstitute_2F/scripts.inc b/data/maps/Route119_WeatherInstitute_2F/scripts.inc index 3b94d5cc14..2060cb03c9 100644 --- a/data/maps/Route119_WeatherInstitute_2F/scripts.inc +++ b/data/maps/Route119_WeatherInstitute_2F/scripts.inc @@ -10,10 +10,8 @@ Route119_WeatherInstitute_2F_MapScripts:: .byte 0 Route119_WeatherInstitute_2F_OnTransition: - compare VAR_WEATHER_INSTITUTE_STATE, 0 - call_if_eq Route119_WeatherInstitute_2F_EventScript_SetScientistPosAquaHere - compare VAR_WEATHER_INSTITUTE_STATE, 1 - call_if_eq Route119_WeatherInstitute_2F_EventScript_SetScientistPosAquaGone + call_if_eq VAR_WEATHER_INSTITUTE_STATE, 0, Route119_WeatherInstitute_2F_EventScript_SetScientistPosAquaHere + call_if_eq VAR_WEATHER_INSTITUTE_STATE, 1, Route119_WeatherInstitute_2F_EventScript_SetScientistPosAquaGone call_if_set FLAG_SYS_GAME_CLEAR, Route119_WeatherInstitute_2F_EventScript_SetScientistPosGameClear end @@ -92,18 +90,15 @@ Route119_WeatherInstitute_2F_EventScript_ReceiveCastform:: msgbox Route119_WeatherInstitute_2F_Text_ThanksPleaseTakePokemon, MSGBOX_DEFAULT setvar VAR_TEMP_1, SPECIES_CASTFORM givemon SPECIES_CASTFORM, 25, ITEM_MYSTIC_WATER - compare VAR_RESULT, 0 - goto_if_eq Route119_WeatherInstitute_2F_EventScript_ReceiveCastformParty - compare VAR_RESULT, 1 - goto_if_eq Route119_WeatherInstitute_2F_EventScript_ReceiveCastformPC + goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, Route119_WeatherInstitute_2F_EventScript_ReceiveCastformParty + goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, Route119_WeatherInstitute_2F_EventScript_ReceiveCastformPC goto Common_EventScript_NoMoreRoomForPokemon end Route119_WeatherInstitute_2F_EventScript_ReceiveCastformParty:: call Route119_WeatherInstitute_2F_EventScript_ReceivedCastformFanfare msgbox gText_NicknameThisPokemon, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq Route119_WeatherInstitute_2F_EventScript_ExplainCastform + goto_if_eq VAR_RESULT, NO, Route119_WeatherInstitute_2F_EventScript_ExplainCastform call Common_EventScript_GetGiftMonPartySlot call Common_EventScript_NameReceivedPartyMon goto Route119_WeatherInstitute_2F_EventScript_ExplainCastform @@ -112,8 +107,7 @@ Route119_WeatherInstitute_2F_EventScript_ReceiveCastformParty:: Route119_WeatherInstitute_2F_EventScript_ReceiveCastformPC:: call Route119_WeatherInstitute_2F_EventScript_ReceivedCastformFanfare msgbox gText_NicknameThisPokemon, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq Route119_WeatherInstitute_2F_EventScript_SendCastformToPC + goto_if_eq VAR_RESULT, NO, Route119_WeatherInstitute_2F_EventScript_SendCastformToPC call Common_EventScript_NameReceivedBoxMon goto Route119_WeatherInstitute_2F_EventScript_SendCastformToPC end @@ -128,7 +122,7 @@ Route119_WeatherInstitute_2F_EventScript_ReceivedCastformFanfare:: message Route119_WeatherInstitute_2F_Text_PlayerReceivedCastform waitmessage waitfanfare - bufferspeciesname 0, SPECIES_CASTFORM + bufferspeciesname STR_VAR_1, SPECIES_CASTFORM return Route119_WeatherInstitute_2F_EventScript_ExplainCastform:: @@ -147,12 +141,10 @@ Route119_WeatherInstitute_2F_EventScript_TryStartAbnormalWeather:: setvar VAR_0x8004, 0 call_if_set FLAG_DEFEATED_KYOGRE, Route119_WeatherInstitute_2F_EventScript_LegendaryDefeated call_if_set FLAG_DEFEATED_GROUDON, Route119_WeatherInstitute_2F_EventScript_LegendaryDefeated - compare VAR_0x8004, 2 @ Both defeated - goto_if_eq Route119_WeatherInstitute_2F_EventScript_NoAbnormalWeather + goto_if_eq VAR_0x8004, 2, Route119_WeatherInstitute_2F_EventScript_NoAbnormalWeather @ Both defeated call_if_unset FLAG_TEMP_2, Route119_WeatherInstitute_2F_EventScript_CreateAbnormalWeather specialvar VAR_RESULT, GetAbnormalWeatherMapNameAndType - compare VAR_RESULT, 1 - goto_if_eq Route119_WeatherInstitute_2F_EventScript_KyogreWeather + goto_if_eq VAR_RESULT, 1, Route119_WeatherInstitute_2F_EventScript_KyogreWeather msgbox Route119_WeatherInstitute_2F_Text_GroudonWeather, MSGBOX_DEFAULT release end diff --git a/data/maps/Route120/scripts.inc b/data/maps/Route120/scripts.inc index 588fa17a0a..a0bfbc60c3 100644 --- a/data/maps/Route120/scripts.inc +++ b/data/maps/Route120/scripts.inc @@ -13,32 +13,24 @@ Route120_OnResume: end Route120_EventScript_RemoveKecleonObject:: - compare VAR_0x8009, 0 - call_if_eq Route120_EventScript_RemoveBridgeKecleon - compare VAR_0x8009, 1 - call_if_eq Route120_EventScript_RemoveKecleon - compare VAR_0x8009, 2 - call_if_eq Route120_EventScript_RemoveKecleon - compare VAR_0x8009, 3 - call_if_eq Route120_EventScript_RemoveKecleon - compare VAR_0x8009, 4 - call_if_eq Route120_EventScript_RemoveKecleon - compare VAR_0x8009, 5 - call_if_eq Route120_EventScript_RemoveKecleon + call_if_eq VAR_0x8009, 0, Route120_EventScript_RemoveBridgeKecleon + call_if_eq VAR_0x8009, 1, Route120_EventScript_RemoveKecleon + call_if_eq VAR_0x8009, 2, Route120_EventScript_RemoveKecleon + call_if_eq VAR_0x8009, 3, Route120_EventScript_RemoveKecleon + call_if_eq VAR_0x8009, 4, Route120_EventScript_RemoveKecleon + call_if_eq VAR_0x8009, 5, Route120_EventScript_RemoveKecleon return Route120_EventScript_RemoveBridgeKecleon:: specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_CAUGHT - goto_if_ne Common_EventScript_NopReturn + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn removeobject LOCALID_BRIDGE_KECLEON removeobject LOCALID_BRIDGE_KECLEON_SHADOW return Route120_EventScript_RemoveKecleon:: specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_CAUGHT - goto_if_ne Common_EventScript_NopReturn + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return @@ -49,15 +41,15 @@ Route120_OnLoad: end Route120_EventScript_CloseAncientTomb:: - setmetatile 7, 54, METATILE_General_RockWall_RockBase, 1 - setmetatile 7, 55, METATILE_General_RockWall_SandBase, 1 + setmetatile 7, 54, METATILE_General_RockWall_RockBase, TRUE + setmetatile 7, 55, METATILE_General_RockWall_SandBase, TRUE return Route120_EventScript_SetBridgeClearMetatiles:: - setmetatile 13, 15, METATILE_Fortree_WoodBridge1_Top, 0 - setmetatile 12, 16, METATILE_Fortree_WoodBridge1_Bottom, 0 - setmetatile 12, 17, METATILE_General_ReflectiveWater, 0 - setmetatile 13, 17, METATILE_General_ReflectiveWater, 0 + setmetatile 13, 15, METATILE_Fortree_WoodBridge1_Top, FALSE + setmetatile 12, 16, METATILE_Fortree_WoodBridge1_Bottom, FALSE + setmetatile 12, 17, METATILE_General_ReflectiveWater, FALSE + setmetatile 13, 17, METATILE_General_ReflectiveWater, FALSE return Route120_EventScript_SetBridgeKecleonMovement:: @@ -71,12 +63,9 @@ Route120_OnTransition: Route120_EventScript_SetWeather:: getplayerxy VAR_TEMP_0, VAR_TEMP_1 - compare VAR_TEMP_1, 14 - goto_if_le Route120_EventScript_SetSunnyWeather - compare VAR_TEMP_1, 60 - goto_if_le Route120_EventScript_TrySetRainyWeather - compare VAR_TEMP_1, 61 - goto_if_ge Route120_EventScript_SetCloudyWeather + goto_if_le VAR_TEMP_1, 14, Route120_EventScript_SetSunnyWeather + goto_if_le VAR_TEMP_1, 60, Route120_EventScript_TrySetRainyWeather + goto_if_ge VAR_TEMP_1, 61, Route120_EventScript_SetCloudyWeather return Route120_EventScript_SetCloudyWeather:: @@ -88,10 +77,8 @@ Route120_EventScript_SetSunnyWeather:: return Route120_EventScript_TrySetRainyWeather:: - compare VAR_TEMP_0, 7 - goto_if_le Route120_EventScript_SetRainyWeather - compare VAR_TEMP_0, 19 - goto_if_le Route120_EventScript_SetSunnyWeather + goto_if_le VAR_TEMP_0, 7, Route120_EventScript_SetRainyWeather + goto_if_le VAR_TEMP_0, 19, Route120_EventScript_SetSunnyWeather goto Route120_EventScript_SetRainyWeather end @@ -105,10 +92,8 @@ Route120_EventScript_BerryBeauty:: dotimebasedevents goto_if_set FLAG_DAILY_ROUTE_120_RECEIVED_BERRY, Route120_EventScript_ReceivedBerry msgbox Route120_Text_BerriesExpressionOfLoveIsntIt, MSGBOX_YESNO - compare VAR_RESULT, YES - call_if_eq Route120_EventScript_BerryLove - compare VAR_RESULT, NO - call_if_eq Route120_EventScript_BerryNotLove + call_if_eq VAR_RESULT, YES, Route120_EventScript_BerryLove + call_if_eq VAR_RESULT, NO, Route120_EventScript_BerryNotLove specialvar VAR_RESULT, GetPlayerTrainerIdOnesDigit switch VAR_RESULT case 0, Route120_EventScript_GiveFigyBerry @@ -150,8 +135,7 @@ Route120_EventScript_GiveIapapaBerry:: Route120_EventScript_GiveBerry:: giveitem VAR_0x8004 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_DAILY_ROUTE_120_RECEIVED_BERRY msgbox Route120_Text_BerryIsRareRaiseItWithCare, MSGBOX_DEFAULT release @@ -175,8 +159,7 @@ Route120_EventScript_Steven:: faceplayer goto_if_set FLAG_NOT_READY_FOR_BATTLE_ROUTE_120, Route120_EventScript_StevenAskReadyForBattle msgbox Route120_Text_StevenGreeting, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq Route120_EventScript_StevenNotReady + goto_if_eq VAR_RESULT, NO, Route120_EventScript_StevenNotReady goto Route120_EventScript_StevenBattleKecleon end @@ -188,18 +171,15 @@ Route120_EventScript_StevenNotReady:: Route120_EventScript_StevenAskReadyForBattle:: msgbox Route120_Text_StevenReadyForBattle, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq Route120_EventScript_StevenNotReady + goto_if_eq VAR_RESULT, NO, Route120_EventScript_StevenNotReady goto Route120_EventScript_StevenBattleKecleon end Route120_EventScript_StevenBattleKecleon:: msgbox Route120_Text_StevenShowMeYourPower, MSGBOX_DEFAULT closemessage - compare VAR_FACING, DIR_NORTH - call_if_eq Route120_EventScript_PlayerApproachKecleonNorth - compare VAR_FACING, DIR_WEST - call_if_eq Route120_EventScript_PlayerApproachKecleonWest + call_if_eq VAR_FACING, DIR_NORTH, Route120_EventScript_PlayerApproachKecleonNorth + call_if_eq VAR_FACING, DIR_WEST, Route120_EventScript_PlayerApproachKecleonWest applymovement LOCALID_STEVEN, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 delay 20 @@ -213,18 +193,15 @@ Route120_EventScript_StevenBattleKecleon:: playmoncry SPECIES_KECLEON, CRY_MODE_ENCOUNTER delay 40 waitmoncry - setwildbattle SPECIES_KECLEON, 30, ITEM_NONE + setwildbattle SPECIES_KECLEON, 30 setvar VAR_0x8009, 0 setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq Route120_EventScript_RemoveBridgeKecleonPostBattle - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq Route120_EventScript_RemoveBridgeKecleonPostBattle - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq Route120_EventScript_RemoveBridgeKecleonPostBattle + goto_if_eq VAR_RESULT, B_OUTCOME_WON, Route120_EventScript_RemoveBridgeKecleonPostBattle + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, Route120_EventScript_RemoveBridgeKecleonPostBattle + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, Route120_EventScript_RemoveBridgeKecleonPostBattle goto Route120_EventScript_StevenGiveDeconScope end @@ -253,10 +230,10 @@ Route120_EventScript_StevenGiveDeconScope:: delay 15 removeobject LOCALID_STEVEN waitfieldeffect FLDEFF_NPCFLY_OUT - setmetatile 13, 15, METATILE_Fortree_WoodBridge1_Top, 0 - setmetatile 12, 16, METATILE_Fortree_WoodBridge1_Bottom, 0 - setmetatile 12, 17, METATILE_General_ReflectiveWater, 0 - setmetatile 13, 17, METATILE_General_ReflectiveWater, 0 + setmetatile 13, 15, METATILE_Fortree_WoodBridge1_Top, FALSE + setmetatile 12, 16, METATILE_Fortree_WoodBridge1_Bottom, FALSE + setmetatile 12, 17, METATILE_General_ReflectiveWater, FALSE + setmetatile 13, 17, METATILE_General_ReflectiveWater, FALSE special DrawWholeMapView release end @@ -296,8 +273,7 @@ Route120_EventScript_Colin:: Route120_EventScript_Robert:: trainerbattle_single TRAINER_ROBERT_1, Route120_Text_RobertIntro, Route120_Text_RobertDefeat, Route120_EventScript_RegisterRobert specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route120_EventScript_RematchRobert + goto_if_eq VAR_RESULT, TRUE, Route120_EventScript_RematchRobert msgbox Route120_Text_RobertPostBattle, MSGBOX_DEFAULT release end @@ -328,8 +304,7 @@ Route120_EventScript_Jenna:: Route120_EventScript_Jeffrey:: trainerbattle_single TRAINER_JEFFREY_1, Route120_Text_JeffreyIntro, Route120_Text_JeffreyDefeat, Route120_EventScript_RegisterJeffrey specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route120_EventScript_RematchJeffrey + goto_if_eq VAR_RESULT, TRUE, Route120_EventScript_RematchJeffrey msgbox Route120_Text_JeffreyPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route121/scripts.inc b/data/maps/Route121/scripts.inc index 3bd0a42ee1..317328825c 100644 --- a/data/maps/Route121/scripts.inc +++ b/data/maps/Route121/scripts.inc @@ -77,8 +77,7 @@ Route121_EventScript_Vanessa:: Route121_EventScript_Walter:: trainerbattle_single TRAINER_WALTER_1, Route121_Text_WalterIntro, Route121_Text_WalterDefeat, Route121_EventScript_RegisterWalter specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route121_EventScript_RematchWalter + goto_if_eq VAR_RESULT, TRUE, Route121_EventScript_RematchWalter msgbox Route121_Text_WalterPostBattle, MSGBOX_DEFAULT release end @@ -114,8 +113,7 @@ Route121_EventScript_Joy:: Route121_EventScript_Jessica:: trainerbattle_single TRAINER_JESSICA_1, Route121_Text_JessicaIntro, Route121_Text_JessicaDefeat, Route121_EventScript_RegisterJessica specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route121_EventScript_RematchJessica + goto_if_eq VAR_RESULT, TRUE, Route121_EventScript_RematchJessica msgbox Route121_Text_JessicaPostBattle, MSGBOX_DEFAULT release end @@ -156,8 +154,7 @@ Route121_EventScript_Marcel:: Route121_EventScript_Cristin:: trainerbattle_single TRAINER_CRISTIN_1, Route121_Text_CristinIntro, Route121_Text_CristinDefeat, Route121_EventScript_RegisterCristin specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route121_EventScript_RematchCristin + goto_if_eq VAR_RESULT, TRUE, Route121_EventScript_RematchCristin msgbox Route121_Text_CristinPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route121_SafariZoneEntrance/scripts.inc b/data/maps/Route121_SafariZoneEntrance/scripts.inc index 8bd5dac04f..92fdc2d0bd 100644 --- a/data/maps/Route121_SafariZoneEntrance/scripts.inc +++ b/data/maps/Route121_SafariZoneEntrance/scripts.inc @@ -33,8 +33,7 @@ Route121_SafariZoneEntrance_EventScript_InfoAttendant:: lock faceplayer msgbox Route121_SafariZoneEntrance_Text_WelcomeFirstTime, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route121_SafariZoneEntrance_EventScript_FirstTimeInfo + goto_if_eq VAR_RESULT, YES, Route121_SafariZoneEntrance_EventScript_FirstTimeInfo msgbox Route121_SafariZoneEntrance_Text_ComeInAndEnjoy, MSGBOX_DEFAULT release end @@ -48,26 +47,23 @@ Route121_SafariZoneEntrance_EventScript_EntranceCounterTrigger:: lockall applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 - showmoneybox 0, 0, 0 + showmoneybox 0, 0 msgbox Route121_SafariZoneEntrance_Text_WouldYouLikeToPlay, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route121_SafariZoneEntrance_EventScript_TryEnterSafariZone + goto_if_eq VAR_RESULT, YES, Route121_SafariZoneEntrance_EventScript_TryEnterSafariZone msgbox Route121_SafariZoneEntrance_Text_PlayAnotherTime, MSGBOX_DEFAULT goto Route121_SafariZoneEntrance_EventScript_MovePlayerBackFromCounter end Route121_SafariZoneEntrance_EventScript_TryEnterSafariZone:: - checkitem ITEM_POKEBLOCK_CASE, 1 - compare VAR_RESULT, 0 - goto_if_eq Route121_SafariZoneEntrance_EventScript_NoPokeblockCase + checkitem ITEM_POKEBLOCK_CASE + goto_if_eq VAR_RESULT, 0, Route121_SafariZoneEntrance_EventScript_NoPokeblockCase call Route121_SafariZoneEntrance_EventScript_CheckHasRoomForPokemon - checkmoney 500, 0 - compare VAR_RESULT, 0 - goto_if_eq Route121_SafariZoneEntrance_EventScript_NotEnoughMoney + checkmoney 500 + goto_if_eq VAR_RESULT, 0, Route121_SafariZoneEntrance_EventScript_NotEnoughMoney playse SE_SHOP msgbox Route121_SafariZoneEntrance_Text_ThatWillBe500Please, MSGBOX_DEFAULT - removemoney 500, 0 - updatemoneybox 0, 0 + removemoney 500 + updatemoneybox msgbox Route121_SafariZoneEntrance_Text_HereAreYourSafariBalls, MSGBOX_DEFAULT playfanfare MUS_OBTAIN_ITEM message Route121_SafariZoneEntrance_Text_Received30SafariBalls @@ -80,17 +76,15 @@ Route121_SafariZoneEntrance_EventScript_TryEnterSafariZone:: special EnterSafariMode setvar VAR_SAFARI_ZONE_STATE, 2 clearflag FLAG_GOOD_LUCK_SAFARI_ZONE - warp MAP_SAFARI_ZONE_SOUTH, 255, 32, 33 + warp MAP_SAFARI_ZONE_SOUTH, 32, 33 waitstate end Route121_SafariZoneEntrance_EventScript_CheckHasRoomForPokemon:: getpartysize - compare VAR_RESULT, PARTY_SIZE - goto_if_ne Route121_SafariZoneEntrance_EventScript_HasRoomForPokemon + goto_if_ne VAR_RESULT, PARTY_SIZE, Route121_SafariZoneEntrance_EventScript_HasRoomForPokemon specialvar VAR_RESULT, ScriptCheckFreePokemonStorageSpace - compare VAR_RESULT, 1 - goto_if_eq Route121_SafariZoneEntrance_EventScript_HasRoomForPokemon + goto_if_eq VAR_RESULT, 1, Route121_SafariZoneEntrance_EventScript_HasRoomForPokemon msgbox Route121_SafariZoneEntrance_Text_PCIsFull, MSGBOX_DEFAULT goto Route121_SafariZoneEntrance_EventScript_MovePlayerBackFromCounter end diff --git a/data/maps/Route123/scripts.inc b/data/maps/Route123/scripts.inc index 6ce0de6544..fe63661261 100644 --- a/data/maps/Route123/scripts.inc +++ b/data/maps/Route123/scripts.inc @@ -12,12 +12,10 @@ Route123_EventScript_GigaDrainGirl:: goto_if_set FLAG_RECEIVED_TM19, Route123_EventScript_ReceivedGigaDrain msgbox Route123_Text_LoveGrassMonsHaveAny, MSGBOX_DEFAULT special IsGrassTypeInParty - compare VAR_RESULT, FALSE - goto_if_eq Route123_EventScript_NoGrassMons + goto_if_eq VAR_RESULT, FALSE, Route123_EventScript_NoGrassMons msgbox Route123_Text_YouLikeGrassMonsTooHaveThis, MSGBOX_DEFAULT giveitem ITEM_TM19 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM19 msgbox Route123_Text_CheckTreesWithMyGrassMon, MSGBOX_DEFAULT release @@ -62,8 +60,7 @@ Route123_EventScript_Violet:: Route123_EventScript_Cameron:: trainerbattle_single TRAINER_CAMERON_1, Route123_Text_CameronIntro, Route123_Text_CameronDefeat, Route123_EventScript_RegisterCameron specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route123_EventScript_RematchCameron + goto_if_eq VAR_RESULT, TRUE, Route123_EventScript_RematchCameron msgbox Route123_Text_CameronPostBattle, MSGBOX_DEFAULT release end @@ -84,8 +81,7 @@ Route123_EventScript_RematchCameron:: Route123_EventScript_Jacki:: trainerbattle_single TRAINER_JACKI_1, Route123_Text_JackiIntro, Route123_Text_JackiDefeat, Route123_EventScript_RegisterJacki specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route123_EventScript_RematchJacki + goto_if_eq VAR_RESULT, TRUE, Route123_EventScript_RematchJacki msgbox Route123_Text_JackiPostBattle, MSGBOX_DEFAULT release end @@ -156,8 +152,7 @@ Route123_EventScript_Davis:: Route123_EventScript_Fernando:: trainerbattle_single TRAINER_FERNANDO_1, Route123_Text_FernandoIntro, Route123_Text_FernandoDefeat, Route123_EventScript_RegisterFernando specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route123_EventScript_RematchFernando + goto_if_eq VAR_RESULT, TRUE, Route123_EventScript_RematchFernando msgbox Route123_Text_FernandoPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route123_BerryMastersHouse/scripts.inc b/data/maps/Route123_BerryMastersHouse/scripts.inc index a9fbfd9d0a..bdc0b0456b 100644 --- a/data/maps/Route123_BerryMastersHouse/scripts.inc +++ b/data/maps/Route123_BerryMastersHouse/scripts.inc @@ -16,16 +16,14 @@ Route123_BerryMastersHouse_EventScript_BerryMaster:: addvar VAR_RESULT, NUM_BERRY_MASTER_BERRIES_SKIPPED addvar VAR_RESULT, FIRST_BERRY_INDEX giveitem VAR_RESULT - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_DAILY_BERRY_MASTER_RECEIVED_BERRY msgbox Route123_BerryMastersHouse_Text_WhyBeStingyTakeAnother, MSGBOX_DEFAULT random NUM_BERRY_MASTER_BERRIES addvar VAR_RESULT, NUM_BERRY_MASTER_BERRIES_SKIPPED addvar VAR_RESULT, FIRST_BERRY_INDEX giveitem VAR_RESULT - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull msgbox Route123_BerryMastersHouse_Text_VisitPrettyPetalFlowerShop, MSGBOX_DEFAULT release end @@ -45,10 +43,8 @@ Route123_BerryMastersHouse_EventScript_BerryMastersWife:: call Common_ShowEasyChatScreen lock faceplayer - compare VAR_RESULT, TRUE - goto_if_eq Route123_BerryMastersHouse_EventScript_GavePhrase - compare VAR_RESULT, FALSE - goto_if_eq Route123_BerryMastersHouse_EventScript_CancelPhrase + goto_if_eq VAR_RESULT, TRUE, Route123_BerryMastersHouse_EventScript_GavePhrase + goto_if_eq VAR_RESULT, FALSE, Route123_BerryMastersHouse_EventScript_CancelPhrase end Route123_BerryMastersHouse_EventScript_CancelPhrase:: @@ -58,18 +54,12 @@ Route123_BerryMastersHouse_EventScript_CancelPhrase:: end Route123_BerryMastersHouse_EventScript_GavePhrase:: - compare VAR_0x8004, NOT_SPECIAL_PHRASE - goto_if_eq Route123_BerryMastersHouse_EventScript_GiveNormalBerry - compare VAR_0x8004, PHRASE_GREAT_BATTLE - goto_if_eq Route123_BerryMastersHouse_EventScript_GiveSpelonBerry - compare VAR_0x8004, PHRASE_CHALLENGE_CONTEST - goto_if_eq Route123_BerryMastersHouse_EventScript_GivePamtreBerry - compare VAR_0x8004, PHRASE_OVERWHELMING_LATIAS - goto_if_eq Route123_BerryMastersHouse_EventScript_GiveWatmelBerry - compare VAR_0x8004, PHRASE_COOL_LATIOS - goto_if_eq Route123_BerryMastersHouse_EventScript_GiveDurinBerry - compare VAR_0x8004, PHRASE_SUPER_HUSTLE - goto_if_eq Route123_BerryMastersHouse_EventScript_GiveBelueBerry + goto_if_eq VAR_0x8004, NOT_SPECIAL_PHRASE, Route123_BerryMastersHouse_EventScript_GiveNormalBerry + goto_if_eq VAR_0x8004, PHRASE_GREAT_BATTLE, Route123_BerryMastersHouse_EventScript_GiveSpelonBerry + goto_if_eq VAR_0x8004, PHRASE_CHALLENGE_CONTEST, Route123_BerryMastersHouse_EventScript_GivePamtreBerry + goto_if_eq VAR_0x8004, PHRASE_OVERWHELMING_LATIAS, Route123_BerryMastersHouse_EventScript_GiveWatmelBerry + goto_if_eq VAR_0x8004, PHRASE_COOL_LATIOS, Route123_BerryMastersHouse_EventScript_GiveDurinBerry + goto_if_eq VAR_0x8004, PHRASE_SUPER_HUSTLE, Route123_BerryMastersHouse_EventScript_GiveBelueBerry end Route123_BerryMastersHouse_EventScript_GiveNormalBerry:: @@ -77,8 +67,7 @@ Route123_BerryMastersHouse_EventScript_GiveNormalBerry:: random NUM_BERRY_MASTER_WIFE_BERRIES addvar VAR_RESULT, FIRST_BERRY_INDEX giveitem VAR_RESULT - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull goto Route123_BerryMastersHouse_EventScript_GaveBerry release end @@ -87,8 +76,7 @@ Route123_BerryMastersHouse_EventScript_GiveSpelonBerry:: goto_if_set FLAG_RECEIVED_SPELON_BERRY, Route123_BerryMastersHouse_EventScript_GiveNormalBerry msgbox Route123_BerryMastersHouse_Text_InspirationalTakeThis, MSGBOX_DEFAULT giveitem ITEM_SPELON_BERRY - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_SPELON_BERRY goto Route123_BerryMastersHouse_EventScript_GaveBerry end @@ -97,8 +85,7 @@ Route123_BerryMastersHouse_EventScript_GivePamtreBerry:: goto_if_set FLAG_RECEIVED_PAMTRE_BERRY, Route123_BerryMastersHouse_EventScript_GiveNormalBerry msgbox Route123_BerryMastersHouse_Text_InspirationalTakeThis, MSGBOX_DEFAULT giveitem ITEM_PAMTRE_BERRY - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_PAMTRE_BERRY goto Route123_BerryMastersHouse_EventScript_GaveBerry end @@ -107,8 +94,7 @@ Route123_BerryMastersHouse_EventScript_GiveWatmelBerry:: goto_if_set FLAG_RECEIVED_WATMEL_BERRY, Route123_BerryMastersHouse_EventScript_GiveNormalBerry msgbox Route123_BerryMastersHouse_Text_InspirationalTakeThis, MSGBOX_DEFAULT giveitem ITEM_WATMEL_BERRY - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_WATMEL_BERRY goto Route123_BerryMastersHouse_EventScript_GaveBerry end @@ -117,8 +103,7 @@ Route123_BerryMastersHouse_EventScript_GiveDurinBerry:: goto_if_set FLAG_RECEIVED_DURIN_BERRY, Route123_BerryMastersHouse_EventScript_GiveNormalBerry msgbox Route123_BerryMastersHouse_Text_InspirationalTakeThis, MSGBOX_DEFAULT giveitem ITEM_DURIN_BERRY - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_DURIN_BERRY goto Route123_BerryMastersHouse_EventScript_GaveBerry end @@ -127,8 +112,7 @@ Route123_BerryMastersHouse_EventScript_GiveBelueBerry:: goto_if_set FLAG_RECEIVED_BELUE_BERRY, Route123_BerryMastersHouse_EventScript_GiveNormalBerry msgbox Route123_BerryMastersHouse_Text_InspirationalTakeThis, MSGBOX_DEFAULT giveitem ITEM_BELUE_BERRY - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_BELUE_BERRY goto Route123_BerryMastersHouse_EventScript_GaveBerry end diff --git a/data/maps/Route124/scripts.inc b/data/maps/Route124/scripts.inc index d1cd8ef8c2..108b915da2 100644 --- a/data/maps/Route124/scripts.inc +++ b/data/maps/Route124/scripts.inc @@ -23,8 +23,7 @@ Route124_EventScript_Roland:: Route124_EventScript_Jenny:: trainerbattle_single TRAINER_JENNY_1, Route124_Text_JennyIntro, Route124_Text_JennyDefeat, Route124_EventScript_RegisterJenny specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route124_EventScript_RematchJenny + goto_if_eq VAR_RESULT, TRUE, Route124_EventScript_RematchJenny msgbox Route124_Text_JennyPostBattle, MSGBOX_DEFAULT release end @@ -55,8 +54,7 @@ Route124_EventScript_Chad:: Route124_EventScript_Lila:: trainerbattle_double TRAINER_LILA_AND_ROY_1, Route124_Text_LilaIntro, Route124_Text_LilaDefeat, Route124_Text_LilaNotEnoughMons, Route124_EventScript_RegisterLila specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route124_EventScript_RematchLila + goto_if_eq VAR_RESULT, TRUE, Route124_EventScript_RematchLila msgbox Route124_Text_LilaPostBattle, MSGBOX_DEFAULT release end @@ -75,8 +73,7 @@ Route124_EventScript_RematchLila:: Route124_EventScript_Roy:: trainerbattle_double TRAINER_LILA_AND_ROY_1, Route124_Text_RoyIntro, Route124_Text_RoyDefeat, Route124_Text_RoyNotEnoughMons, Route124_EventScript_RegisterRoy specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route124_EventScript_RematchRoy + goto_if_eq VAR_RESULT, TRUE, Route124_EventScript_RematchRoy msgbox Route124_Text_RoyPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route124_DivingTreasureHuntersHouse/scripts.inc b/data/maps/Route124_DivingTreasureHuntersHouse/scripts.inc index 63bee6ed5b..b100438f55 100644 --- a/data/maps/Route124_DivingTreasureHuntersHouse/scripts.inc +++ b/data/maps/Route124_DivingTreasureHuntersHouse/scripts.inc @@ -22,25 +22,20 @@ Route124_DivingTreasureHuntersHouse_EventScript_SkipGreeting:: Route124_DivingTreasureHuntersHouse_EventScript_CheckPlayerHasShard:: call Route124_DivingTreasureHuntersHouse_EventScript_GetPlayersShards - compare VAR_TEMP_1, 0 - goto_if_eq Route124_DivingTreasureHuntersHouse_EventScript_NoShards + goto_if_eq VAR_TEMP_1, 0, Route124_DivingTreasureHuntersHouse_EventScript_NoShards goto Route124_DivingTreasureHuntersHouse_EventScript_HasShard end Route124_DivingTreasureHuntersHouse_EventScript_GetPlayersShards:: setvar VAR_TEMP_1, 0 - checkitem ITEM_RED_SHARD, 1 - compare VAR_RESULT, TRUE - call_if_eq Route124_DivingTreasureHuntersHouse_EventScript_HasRedShard - checkitem ITEM_YELLOW_SHARD, 1 - compare VAR_RESULT, TRUE - call_if_eq Route124_DivingTreasureHuntersHouse_EventScript_HasYellowShard - checkitem ITEM_BLUE_SHARD, 1 - compare VAR_RESULT, TRUE - call_if_eq Route124_DivingTreasureHuntersHouse_EventScript_HasBlueShard - checkitem ITEM_GREEN_SHARD, 1 - compare VAR_RESULT, TRUE - call_if_eq Route124_DivingTreasureHuntersHouse_EventScript_HasGreenShard + checkitem ITEM_RED_SHARD + call_if_eq VAR_RESULT, TRUE, Route124_DivingTreasureHuntersHouse_EventScript_HasRedShard + checkitem ITEM_YELLOW_SHARD + call_if_eq VAR_RESULT, TRUE, Route124_DivingTreasureHuntersHouse_EventScript_HasYellowShard + checkitem ITEM_BLUE_SHARD + call_if_eq VAR_RESULT, TRUE, Route124_DivingTreasureHuntersHouse_EventScript_HasBlueShard + checkitem ITEM_GREEN_SHARD + call_if_eq VAR_RESULT, TRUE, Route124_DivingTreasureHuntersHouse_EventScript_HasGreenShard return Route124_DivingTreasureHuntersHouse_EventScript_HasRedShard:: @@ -243,17 +238,14 @@ Route124_DivingTreasureHuntersHouse_EventScript_TradeGreenShard:: goto Route124_DivingTreasureHuntersHouse_EventScript_TryTradeShard Route124_DivingTreasureHuntersHouse_EventScript_TryTradeShard:: - bufferitemname 0, VAR_0x8008 - bufferitemname 1, VAR_0x8009 + bufferitemname STR_VAR_1, VAR_0x8008 + bufferitemname STR_VAR_2, VAR_0x8009 msgbox Route124_DivingTreasureHuntersHouse_Text_YoullTradeShardForStone, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade - checkitemspace VAR_0x8009, 1 - compare VAR_RESULT, TRUE - goto_if_eq Route124_DivingTreasureHuntersHouse_EventScript_TradeShard + goto_if_eq VAR_RESULT, NO, Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade + checkitemspace VAR_0x8009 + goto_if_eq VAR_RESULT, TRUE, Route124_DivingTreasureHuntersHouse_EventScript_TradeShard checkitem VAR_0x8008, 2 - compare VAR_RESULT, FALSE - goto_if_eq Route124_DivingTreasureHuntersHouse_EventScript_TradeShard + goto_if_eq VAR_RESULT, FALSE, Route124_DivingTreasureHuntersHouse_EventScript_TradeShard goto Route124_DivingTreasureHuntersHouse_EventScript_BagFull end @@ -262,11 +254,9 @@ Route124_DivingTreasureHuntersHouse_EventScript_TradeShard:: giveitem VAR_0x8009 msgbox Route124_DivingTreasureHuntersHouse_Text_ItsADeal, MSGBOX_DEFAULT call Route124_DivingTreasureHuntersHouse_EventScript_GetPlayersShards - compare VAR_TEMP_1, 0 - goto_if_eq Route124_DivingTreasureHuntersHouse_EventScript_EndTrade + goto_if_eq VAR_TEMP_1, 0, Route124_DivingTreasureHuntersHouse_EventScript_EndTrade msgbox Route124_DivingTreasureHuntersHouse_Text_TradeSomethingElse, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route124_DivingTreasureHuntersHouse_EventScript_ShowTradeOptions + goto_if_eq VAR_RESULT, YES, Route124_DivingTreasureHuntersHouse_EventScript_ShowTradeOptions goto Route124_DivingTreasureHuntersHouse_EventScript_DeclineTrade end diff --git a/data/maps/Route125/scripts.inc b/data/maps/Route125/scripts.inc index 7a2d3f15fa..cafdf8fbbf 100644 --- a/data/maps/Route125/scripts.inc +++ b/data/maps/Route125/scripts.inc @@ -6,19 +6,14 @@ Route125_MapScripts:: Route125_OnTransition: call_if_set FLAG_SYS_WEATHER_CTRL, Common_EventScript_SetAbnormalWeather - compare VAR_SHOULD_END_ABNORMAL_WEATHER, 1 - call_if_eq AbnormalWeather_EventScript_HideMapNamePopup - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_125_WEST - call_if_eq AbnormalWeather_StartKyogreWeather - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_125_EAST - call_if_eq AbnormalWeather_StartKyogreWeather + call_if_eq VAR_SHOULD_END_ABNORMAL_WEATHER, 1, AbnormalWeather_EventScript_HideMapNamePopup + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_125_WEST, AbnormalWeather_StartKyogreWeather + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_125_EAST, AbnormalWeather_StartKyogreWeather end Route125_OnLoad: - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_125_WEST - call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute125West - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_125_EAST - call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute125East + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_125_WEST, AbnormalWeather_EventScript_PlaceTilesRoute125West + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_125_EAST, AbnormalWeather_EventScript_PlaceTilesRoute125East end Route125_OnFrame: @@ -48,8 +43,7 @@ Route125_EventScript_Sharon:: Route125_EventScript_Ernest:: trainerbattle_single TRAINER_ERNEST_1, Route125_Text_ErnestIntro, Route125_Text_ErnestDefeat, Route125_EventScript_RegisterErnest specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route125_EventScript_RematchErnest + goto_if_eq VAR_RESULT, TRUE, Route125_EventScript_RematchErnest msgbox Route125_Text_ErnestPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route126/scripts.inc b/data/maps/Route126/scripts.inc index 79f5bb11be..752cd2d4d5 100644 --- a/data/maps/Route126/scripts.inc +++ b/data/maps/Route126/scripts.inc @@ -44,8 +44,7 @@ Route126_EventScript_Sienna:: Route126_EventScript_Pablo:: trainerbattle_single TRAINER_PABLO_1, Route126_Text_PabloIntro, Route126_Text_PabloDefeat, Route126_EventScript_RegisterPablo specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route126_EventScript_RematchPablo + goto_if_eq VAR_RESULT, TRUE, Route126_EventScript_RematchPablo msgbox Route126_Text_PabloPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route127/scripts.inc b/data/maps/Route127/scripts.inc index 426e814702..05bfb14ffe 100644 --- a/data/maps/Route127/scripts.inc +++ b/data/maps/Route127/scripts.inc @@ -6,19 +6,14 @@ Route127_MapScripts:: Route127_OnTransition: call_if_set FLAG_SYS_WEATHER_CTRL, Common_EventScript_SetAbnormalWeather - compare VAR_SHOULD_END_ABNORMAL_WEATHER, 1 - call_if_eq AbnormalWeather_EventScript_HideMapNamePopup - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_127_NORTH - call_if_eq AbnormalWeather_StartKyogreWeather - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_127_SOUTH - call_if_eq AbnormalWeather_StartKyogreWeather + call_if_eq VAR_SHOULD_END_ABNORMAL_WEATHER, 1, AbnormalWeather_EventScript_HideMapNamePopup + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_127_NORTH, AbnormalWeather_StartKyogreWeather + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_127_SOUTH, AbnormalWeather_StartKyogreWeather end Route127_OnLoad: - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_127_NORTH - call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute127North - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_127_SOUTH - call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute127South + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_127_NORTH, AbnormalWeather_EventScript_PlaceTilesRoute127North + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_127_SOUTH, AbnormalWeather_EventScript_PlaceTilesRoute127South end Route127_OnFrame: @@ -63,8 +58,7 @@ Route127_EventScript_Athena:: Route127_EventScript_Koji:: trainerbattle_single TRAINER_KOJI_1, Route127_Text_KojiIntro, Route127_Text_KojiDefeat, Route127_EventScript_RegisterKoji specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route127_EventScript_RematchKoji + goto_if_eq VAR_RESULT, TRUE, Route127_EventScript_RematchKoji msgbox Route127_Text_KojiPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route128/scripts.inc b/data/maps/Route128/scripts.inc index e550f2bd12..d08605128a 100644 --- a/data/maps/Route128/scripts.inc +++ b/data/maps/Route128/scripts.inc @@ -181,8 +181,7 @@ Route128_Movement_MaxieApproachPlayer: Route128_EventScript_Isaiah:: trainerbattle_single TRAINER_ISAIAH_1, Route128_Text_IsaiahIntro, Route128_Text_IsaiahDefeat, Route128_EventScript_RegisterIsaiah specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route128_EventScript_RematchIsaiah + goto_if_eq VAR_RESULT, TRUE, Route128_EventScript_RematchIsaiah msgbox Route128_Text_IsaiahPostBattle, MSGBOX_DEFAULT release end @@ -203,8 +202,7 @@ Route128_EventScript_RematchIsaiah:: Route128_EventScript_Katelyn:: trainerbattle_single TRAINER_KATELYN_1, Route128_Text_KatelynIntro, Route128_Text_KatelynDefeat, Route128_EventScript_RegisterKatelyn specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq Route128_EventScript_RematchKatelyn + goto_if_eq VAR_RESULT, TRUE, Route128_EventScript_RematchKatelyn msgbox Route128_Text_KatelynPostBattle, MSGBOX_DEFAULT release end diff --git a/data/maps/Route129/scripts.inc b/data/maps/Route129/scripts.inc index e996722cc9..7055675a0e 100644 --- a/data/maps/Route129/scripts.inc +++ b/data/maps/Route129/scripts.inc @@ -5,21 +5,15 @@ Route129_MapScripts:: .byte 0 Route129_OnLoad: - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_129_WEST - call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute129West - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_129_EAST - call_if_eq AbnormalWeather_EventScript_PlaceTilesRoute129East + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_129_WEST, AbnormalWeather_EventScript_PlaceTilesRoute129West + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_129_EAST, AbnormalWeather_EventScript_PlaceTilesRoute129East end Route129_OnTransition: - compare VAR_SHOULD_END_ABNORMAL_WEATHER, 1 - call_if_eq AbnormalWeather_EventScript_HideMapNamePopup - compare VAR_SOOTOPOLIS_CITY_STATE, 4 - call_if_ge Route129_EventScript_CheckSetAbnormalWeather - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_129_WEST - call_if_eq AbnormalWeather_StartKyogreWeather - compare VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_129_EAST - call_if_eq AbnormalWeather_StartKyogreWeather + call_if_eq VAR_SHOULD_END_ABNORMAL_WEATHER, 1, AbnormalWeather_EventScript_HideMapNamePopup + call_if_ge VAR_SOOTOPOLIS_CITY_STATE, 4, Route129_EventScript_CheckSetAbnormalWeather + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_129_WEST, AbnormalWeather_StartKyogreWeather + call_if_eq VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_ROUTE_129_EAST, AbnormalWeather_StartKyogreWeather end Route129_EventScript_CheckSetAbnormalWeather:: diff --git a/data/maps/Route130/scripts.inc b/data/maps/Route130/scripts.inc index fe360a36bb..7e0ecc8bd1 100644 --- a/data/maps/Route130/scripts.inc +++ b/data/maps/Route130/scripts.inc @@ -3,11 +3,9 @@ Route130_MapScripts:: .byte 0 Route130_OnTransition: - compare VAR_SOOTOPOLIS_CITY_STATE, 4 - call_if_ge Route130_EventScript_CheckSetAbnormalWeather + call_if_ge VAR_SOOTOPOLIS_CITY_STATE, 4, Route130_EventScript_CheckSetAbnormalWeather specialvar VAR_RESULT, IsMirageIslandPresent - compare VAR_RESULT, TRUE - goto_if_eq Route130_EventScript_SetMirageIslandLayout + goto_if_eq VAR_RESULT, TRUE, Route130_EventScript_SetMirageIslandLayout setflag FLAG_TEMP_11 setflag FLAG_TEMP_12 setflag FLAG_TEMP_13 diff --git a/data/maps/Route131/scripts.inc b/data/maps/Route131/scripts.inc index 846998bfe9..17060c183b 100644 --- a/data/maps/Route131/scripts.inc +++ b/data/maps/Route131/scripts.inc @@ -3,8 +3,7 @@ Route131_MapScripts:: .byte 0 Route131_OnTransition: - compare VAR_SOOTOPOLIS_CITY_STATE, 4 - call_if_ge Route131_EventScript_CheckSetAbnormalWeather + call_if_ge VAR_SOOTOPOLIS_CITY_STATE, 4, Route131_EventScript_CheckSetAbnormalWeather call Route131_EventScript_SetLayout end diff --git a/data/maps/Route134/scripts.inc b/data/maps/Route134/scripts.inc index 043835373e..226135c1d5 100644 --- a/data/maps/Route134/scripts.inc +++ b/data/maps/Route134/scripts.inc @@ -3,7 +3,7 @@ Route134_MapScripts:: .byte 0 Route134_OnResume: - setdivewarp MAP_UNDERWATER_ROUTE134, 255, 8, 6 + setdivewarp MAP_UNDERWATER_ROUTE134, 8, 6 end Route134_EventScript_Jack:: diff --git a/data/maps/RustboroCity/scripts.inc b/data/maps/RustboroCity/scripts.inc index 8d286d5de2..28fd389210 100644 --- a/data/maps/RustboroCity/scripts.inc +++ b/data/maps/RustboroCity/scripts.inc @@ -13,16 +13,13 @@ RustboroCity_MapScripts:: RustboroCity_OnTransition: setflag FLAG_VISITED_RUSTBORO_CITY call Common_EventScript_SetupRivalGfxId - compare VAR_RUSTBORO_CITY_STATE, 6 - call_if_eq RustboroCity_EventScript_HideMapNamePopup + call_if_eq VAR_RUSTBORO_CITY_STATE, 6, RustboroCity_EventScript_HideMapNamePopup getplayerxy VAR_TEMP_0, VAR_TEMP_1 - compare VAR_RUSTBORO_CITY_STATE, 6 - goto_if_eq RustboroCity_EventScript_PositionScientistForExit + goto_if_eq VAR_RUSTBORO_CITY_STATE, 6, RustboroCity_EventScript_PositionScientistForExit end RustboroCity_EventScript_PositionScientistForExit:: - compare VAR_TEMP_0, 11 - goto_if_eq RustboroCity_EventScript_PositionScientistLeftExit + goto_if_eq VAR_TEMP_0, 11, RustboroCity_EventScript_PositionScientistLeftExit setobjectxyperm LOCALID_SCIENTIST, 12, 15 end @@ -506,14 +503,10 @@ RustboroCity_EventScript_HelpGetGoodsTrigger3:: end RustboroCity_EventScript_EmployeeAskToGetGoods:: - compare VAR_TEMP_1, 0 - call_if_eq RustboroCity_EventScript_EmployeeFacePlayerUp1 - compare VAR_TEMP_1, 1 - call_if_eq RustboroCity_EventScript_EmployeeFacePlayerLeft1 - compare VAR_TEMP_1, 2 - call_if_eq RustboroCity_EventScript_EmployeeFacePlayerDown1 - compare VAR_TEMP_1, 3 - call_if_eq RustboroCity_EventScript_EmployeeApproachPlayerDown1 + call_if_eq VAR_TEMP_1, 0, RustboroCity_EventScript_EmployeeFacePlayerUp1 + call_if_eq VAR_TEMP_1, 1, RustboroCity_EventScript_EmployeeFacePlayerLeft1 + call_if_eq VAR_TEMP_1, 2, RustboroCity_EventScript_EmployeeFacePlayerDown1 + call_if_eq VAR_TEMP_1, 3, RustboroCity_EventScript_EmployeeApproachPlayerDown1 setflag FLAG_INTERACTED_WITH_DEVON_EMPLOYEE_GOODS_STOLEN setvar VAR_RUSTBORO_CITY_STATE, 3 copyobjectxytoperm LOCALID_DEVON_EMPLOYEE @@ -601,27 +594,21 @@ RustboroCity_EventScript_ReturnGoodsTrigger3:: end RustboroCity_EventScript_ReturnGoods:: - compare VAR_TEMP_1, 0 - call_if_eq RustboroCity_EventScript_EmployeeFacePlayerUp2 - compare VAR_TEMP_1, 1 - call_if_eq RustboroCity_EventScript_EmployeeFacePlayerLeft2 - compare VAR_TEMP_1, 2 - call_if_eq RustboroCity_EventScript_EmployeeFacePlayerDown2 - compare VAR_TEMP_1, 3 - call_if_eq RustboroCity_EventScript_EmployeeApproachPlayerDown2 - compare VAR_TEMP_1, 4 - call_if_eq RustboroCity_EventScript_EmployeeFacePlayerRight + call_if_eq VAR_TEMP_1, 0, RustboroCity_EventScript_EmployeeFacePlayerUp2 + call_if_eq VAR_TEMP_1, 1, RustboroCity_EventScript_EmployeeFacePlayerLeft2 + call_if_eq VAR_TEMP_1, 2, RustboroCity_EventScript_EmployeeFacePlayerDown2 + call_if_eq VAR_TEMP_1, 3, RustboroCity_EventScript_EmployeeApproachPlayerDown2 + call_if_eq VAR_TEMP_1, 4, RustboroCity_EventScript_EmployeeFacePlayerRight msgbox RustboroCity_Text_YouGotItThankYou, MSGBOX_DEFAULT giveitem ITEM_GREAT_BALL - compare VAR_RESULT, FALSE - call_if_eq RustboroCity_EventScript_BagFull + call_if_eq VAR_RESULT, FALSE, RustboroCity_EventScript_BagFull msgbox RustboroCity_Text_PleaseComeWithMe, MSGBOX_DEFAULT closemessage setflag FLAG_RETURNED_DEVON_GOODS setflag FLAG_HIDE_RUSTBORO_CITY_DEVON_EMPLOYEE_1 setvar VAR_RUSTBORO_CITY_STATE, 5 delay 30 - warp MAP_RUSTBORO_CITY_DEVON_CORP_3F, 255, 2, 2 + warp MAP_RUSTBORO_CITY_DEVON_CORP_3F, 2, 2 waitstate releaseall end @@ -699,10 +686,8 @@ RustboroCity_EventScript_Rival:: RustboroCity_EventScript_PlayRivalMusic:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq RustboroCity_EventScript_PlayMayMusic - compare VAR_RESULT, FEMALE - goto_if_eq RustboroCity_EventScript_PlayBrendanMusic + goto_if_eq VAR_RESULT, MALE, RustboroCity_EventScript_PlayMayMusic + goto_if_eq VAR_RESULT, FEMALE, RustboroCity_EventScript_PlayBrendanMusic return RustboroCity_EventScript_PlayMayMusic:: @@ -843,10 +828,8 @@ RustboroCity_EventScript_RivalTrigger7:: RustboroCity_EventScript_RivalEncounter:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq RustboroCity_EventScript_MayEncounter - compare VAR_RESULT, FEMALE - goto_if_eq RustboroCity_EventScript_BrendanEncounter + goto_if_eq VAR_RESULT, MALE, RustboroCity_EventScript_MayEncounter + goto_if_eq VAR_RESULT, FEMALE, RustboroCity_EventScript_BrendanEncounter end RustboroCity_EventScript_MayEncounter:: @@ -866,8 +849,7 @@ RustboroCity_EventScript_MayEncounter:: setvar VAR_ROUTE104_STATE, 2 setvar VAR_0x8008, 0 msgbox RustboroCity_Text_MayPassedBrineyWantToBattle, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq RustboroCity_EventScript_BattleMay + goto_if_eq VAR_RESULT, YES, RustboroCity_EventScript_BattleMay msgbox RustboroCity_Text_MayOhHaventRaisedPokemonEnough, MSGBOX_DEFAULT call RustboroCity_EventScript_RestoreBgm releaseall @@ -876,8 +858,7 @@ RustboroCity_EventScript_MayEncounter:: RustboroCity_EventScript_MayAskToBattle:: setvar VAR_0x8008, 1 msgbox RustboroCity_Text_MayWantToBattle, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq RustboroCity_EventScript_BattleMay + goto_if_eq VAR_RESULT, YES, RustboroCity_EventScript_BattleMay msgbox RustboroCity_Text_MayOhHaventRaisedPokemonEnough, MSGBOX_DEFAULT releaseall end @@ -892,8 +873,7 @@ RustboroCity_EventScript_BattleMay:: RustboroCity_EventScript_MayBrineyHint:: msgbox RustboroCity_Text_MayMrBrineyHint, MSGBOX_DEFAULT - compare VAR_0x8008, 0 - call_if_eq RustboroCity_EventScript_RestoreBgm + call_if_eq VAR_0x8008, 0, RustboroCity_EventScript_RestoreBgm releaseall end @@ -936,8 +916,7 @@ RustboroCity_EventScript_BrendanEncounter:: setvar VAR_RUSTBORO_CITY_STATE, 8 setvar VAR_ROUTE104_STATE, 2 msgbox RustboroCity_Text_BrendanPassedBrineyWantToBattle, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq RustboroCity_EventScript_BattleBrendan + goto_if_eq VAR_RESULT, YES, RustboroCity_EventScript_BattleBrendan msgbox RustboroCity_Text_BrendanNoConfidenceInPokemon, MSGBOX_DEFAULT call RustboroCity_EventScript_RestoreBgm releaseall @@ -945,8 +924,7 @@ RustboroCity_EventScript_BrendanEncounter:: RustboroCity_EventScript_BrendanAskToBattle:: msgbox RustboroCity_Text_BrendanWantToBattle, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq RustboroCity_EventScript_BattleBrendan + goto_if_eq VAR_RESULT, YES, RustboroCity_EventScript_BattleBrendan msgbox RustboroCity_Text_BrendanNoConfidenceInPokemon, MSGBOX_DEFAULT releaseall end @@ -961,8 +939,7 @@ RustboroCity_EventScript_BattleBrendan:: RustboroCity_EventScript_BrendanBrineyHint:: msgbox RustboroCity_Text_BrendanMrBrineyHint, MSGBOX_DEFAULT - compare VAR_0x8008, 0 - call_if_eq RustboroCity_EventScript_RestoreBgm + call_if_eq VAR_0x8008, 0, RustboroCity_EventScript_RestoreBgm releaseall end diff --git a/data/maps/RustboroCity_DevonCorp_2F/scripts.inc b/data/maps/RustboroCity_DevonCorp_2F/scripts.inc index 326cd946e6..747070645c 100644 --- a/data/maps/RustboroCity_DevonCorp_2F/scripts.inc +++ b/data/maps/RustboroCity_DevonCorp_2F/scripts.inc @@ -5,8 +5,7 @@ RustboroCity_DevonCorp_2F_MapScripts:: .byte 0 RustboroCity_DevonCorp_2F_OnTransition: - compare VAR_FOSSIL_RESURRECTION_STATE, 1 - call_if_eq RustboroCity_DevonCorp_2F_EventScript_SetFossilReady + call_if_eq VAR_FOSSIL_RESURRECTION_STATE, 1, RustboroCity_DevonCorp_2F_EventScript_SetFossilReady end RustboroCity_DevonCorp_2F_EventScript_SetFossilReady:: @@ -16,8 +15,7 @@ RustboroCity_DevonCorp_2F_EventScript_SetFossilReady:: RustboroCity_DevonCorp_2F_EventScript_TalkToPokemonScientist:: lock faceplayer - compare VAR_FOSSIL_RESURRECTION_STATE, 1 - call_if_eq RustboroCity_DevonCorp_2F_EventScript_SetFossilReady + call_if_eq VAR_FOSSIL_RESURRECTION_STATE, 1, RustboroCity_DevonCorp_2F_EventScript_SetFossilReady msgbox RustboroCity_DevonCorp_2F_Text_DeviceForTalkingToPokemon, MSGBOX_DEFAULT release end @@ -25,8 +23,7 @@ RustboroCity_DevonCorp_2F_EventScript_TalkToPokemonScientist:: RustboroCity_DevonCorp_2F_EventScript_BallScientist:: lock faceplayer - compare VAR_FOSSIL_RESURRECTION_STATE, 1 - call_if_eq RustboroCity_DevonCorp_2F_EventScript_SetFossilReady + call_if_eq VAR_FOSSIL_RESURRECTION_STATE, 1, RustboroCity_DevonCorp_2F_EventScript_SetFossilReady goto_if_set FLAG_MET_DEVON_EMPLOYEE, RustboroCity_DevonCorp_2F_EventScript_DevelopedBalls msgbox RustboroCity_DevonCorp_2F_Text_DevelopingNewBalls, MSGBOX_DEFAULT release @@ -40,8 +37,7 @@ RustboroCity_DevonCorp_2F_EventScript_DevelopedBalls:: RustboroCity_DevonCorp_2F_EventScript_PokenavScientist:: lock faceplayer - compare VAR_FOSSIL_RESURRECTION_STATE, 1 - call_if_eq RustboroCity_DevonCorp_2F_EventScript_SetFossilReady + call_if_eq VAR_FOSSIL_RESURRECTION_STATE, 1, RustboroCity_DevonCorp_2F_EventScript_SetFossilReady goto_if_set FLAG_RECEIVED_POKENAV, RustboroCity_DevonCorp_2F_EventScript_HasPokenav msgbox RustboroCity_DevonCorp_2F_Text_IMadePokenav, MSGBOX_DEFAULT release @@ -55,8 +51,7 @@ RustboroCity_DevonCorp_2F_EventScript_HasPokenav:: RustboroCity_DevonCorp_2F_EventScript_PokemonDreamsScientist:: lock faceplayer - compare VAR_FOSSIL_RESURRECTION_STATE, 1 - call_if_eq RustboroCity_DevonCorp_2F_EventScript_SetFossilReady + call_if_eq VAR_FOSSIL_RESURRECTION_STATE, 1, RustboroCity_DevonCorp_2F_EventScript_SetFossilReady msgbox RustboroCity_DevonCorp_2F_Text_DeviceToVisualizePokemonDreams, MSGBOX_DEFAULT release end @@ -64,17 +59,13 @@ RustboroCity_DevonCorp_2F_EventScript_PokemonDreamsScientist:: RustboroCity_DevonCorp_2F_EventScript_FossilScientist:: lock faceplayer - compare VAR_FOSSIL_RESURRECTION_STATE, 2 - goto_if_eq RustboroCity_DevonCorp_2F_EventScript_FossilMonReady - compare VAR_FOSSIL_RESURRECTION_STATE, 1 - goto_if_eq RustboroCity_DevonCorp_2F_EventScript_StillRegenerating + goto_if_eq VAR_FOSSIL_RESURRECTION_STATE, 2, RustboroCity_DevonCorp_2F_EventScript_FossilMonReady + goto_if_eq VAR_FOSSIL_RESURRECTION_STATE, 1, RustboroCity_DevonCorp_2F_EventScript_StillRegenerating msgbox RustboroCity_DevonCorp_2F_Text_DevelopDeviceToResurrectFossils, MSGBOX_DEFAULT - checkitem ITEM_ROOT_FOSSIL, 1 - compare VAR_RESULT, TRUE - goto_if_eq RustboroCity_DevonCorp_2F_EventScript_NoticeRootFossil - checkitem ITEM_CLAW_FOSSIL, 1 - compare VAR_RESULT, TRUE - goto_if_eq RustboroCity_DevonCorp_2F_EventScript_NoticeClawFossil + checkitem ITEM_ROOT_FOSSIL + goto_if_eq VAR_RESULT, TRUE, RustboroCity_DevonCorp_2F_EventScript_NoticeRootFossil + checkitem ITEM_CLAW_FOSSIL + goto_if_eq VAR_RESULT, TRUE, RustboroCity_DevonCorp_2F_EventScript_NoticeClawFossil release end @@ -87,16 +78,14 @@ RustboroCity_DevonCorp_2F_EventScript_NoticeRootFossil:: applymovement LOCALID_FOSSIL_SCIENTIST, Common_Movement_Delay48 waitmovement 0 msgbox RustboroCity_DevonCorp_2F_Text_WantToBringFossilBackToLife, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq RustboroCity_DevonCorp_2F_EventScript_DeclineGiveFossil - checkitem ITEM_CLAW_FOSSIL, 1 - compare VAR_RESULT, TRUE - goto_if_eq RustboroCity_DevonCorp_2F_EventScript_ChooseFossil + goto_if_eq VAR_RESULT, NO, RustboroCity_DevonCorp_2F_EventScript_DeclineGiveFossil + checkitem ITEM_CLAW_FOSSIL + goto_if_eq VAR_RESULT, TRUE, RustboroCity_DevonCorp_2F_EventScript_ChooseFossil goto RustboroCity_DevonCorp_2F_EventScript_GiveRootFossil end RustboroCity_DevonCorp_2F_EventScript_GiveRootFossil:: - bufferitemname 0, ITEM_ROOT_FOSSIL + bufferitemname STR_VAR_1, ITEM_ROOT_FOSSIL msgbox RustboroCity_DevonCorp_2F_Text_HandedFossilToResearcher, MSGBOX_DEFAULT removeitem ITEM_ROOT_FOSSIL setvar VAR_FOSSIL_RESURRECTION_STATE, 1 @@ -112,16 +101,14 @@ RustboroCity_DevonCorp_2F_EventScript_NoticeClawFossil:: applymovement LOCALID_FOSSIL_SCIENTIST, Common_Movement_Delay48 waitmovement 0 msgbox RustboroCity_DevonCorp_2F_Text_WantToBringFossilBackToLife, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq RustboroCity_DevonCorp_2F_EventScript_DeclineGiveFossil - checkitem ITEM_ROOT_FOSSIL, 1 - compare VAR_RESULT, TRUE - goto_if_eq RustboroCity_DevonCorp_2F_EventScript_ChooseFossil + goto_if_eq VAR_RESULT, NO, RustboroCity_DevonCorp_2F_EventScript_DeclineGiveFossil + checkitem ITEM_ROOT_FOSSIL + goto_if_eq VAR_RESULT, TRUE, RustboroCity_DevonCorp_2F_EventScript_ChooseFossil goto RustboroCity_DevonCorp_2F_EventScript_GiveClawFossil end RustboroCity_DevonCorp_2F_EventScript_GiveClawFossil:: - bufferitemname 0, ITEM_CLAW_FOSSIL + bufferitemname STR_VAR_1, ITEM_CLAW_FOSSIL msgbox RustboroCity_DevonCorp_2F_Text_HandedFossilToResearcher, MSGBOX_DEFAULT removeitem ITEM_CLAW_FOSSIL setvar VAR_FOSSIL_RESURRECTION_STATE, 1 @@ -140,39 +127,34 @@ RustboroCity_DevonCorp_2F_EventScript_StillRegenerating:: end RustboroCity_DevonCorp_2F_EventScript_FossilMonReady:: - compare VAR_WHICH_FOSSIL_REVIVED, 1 - goto_if_eq RustboroCity_DevonCorp_2F_EventScript_LileepReady - compare VAR_WHICH_FOSSIL_REVIVED, 2 - goto_if_eq RustboroCity_DevonCorp_2F_EventScript_AnorithReady + goto_if_eq VAR_WHICH_FOSSIL_REVIVED, 1, RustboroCity_DevonCorp_2F_EventScript_LileepReady + goto_if_eq VAR_WHICH_FOSSIL_REVIVED, 2, RustboroCity_DevonCorp_2F_EventScript_AnorithReady end RustboroCity_DevonCorp_2F_EventScript_LileepReady:: - bufferspeciesname 1, SPECIES_LILEEP + bufferspeciesname STR_VAR_2, SPECIES_LILEEP msgbox RustboroCity_DevonCorp_2F_Text_FossilizedMonBroughtBackToLife, MSGBOX_DEFAULT goto RustboroCity_DevonCorp_2F_EventScript_ReceiveLileep end RustboroCity_DevonCorp_2F_EventScript_AnorithReady:: - bufferspeciesname 1, SPECIES_ANORITH + bufferspeciesname STR_VAR_2, SPECIES_ANORITH msgbox RustboroCity_DevonCorp_2F_Text_FossilizedMonBroughtBackToLife, MSGBOX_DEFAULT goto RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorith end RustboroCity_DevonCorp_2F_EventScript_ReceiveLileep:: setvar VAR_TEMP_1, SPECIES_LILEEP - givemon SPECIES_LILEEP, 20, ITEM_NONE - compare VAR_RESULT, 0 - goto_if_eq RustboroCity_DevonCorp_2F_EventScript_ReceiveLileepParty - compare VAR_RESULT, 1 - goto_if_eq RustboroCity_DevonCorp_2F_EventScript_ReceiveLileepPC + givemon SPECIES_LILEEP, 20 + goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, RustboroCity_DevonCorp_2F_EventScript_ReceiveLileepParty + goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, RustboroCity_DevonCorp_2F_EventScript_ReceiveLileepPC goto Common_EventScript_NoMoreRoomForPokemon end RustboroCity_DevonCorp_2F_EventScript_ReceiveLileepParty:: call RustboroCity_DevonCorp_2F_EventScript_ReceivedLileepFanfare msgbox gText_NicknameThisPokemon, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq RustboroCity_DevonCorp_2F_EventScript_FinishReceivingLileep + goto_if_eq VAR_RESULT, NO, RustboroCity_DevonCorp_2F_EventScript_FinishReceivingLileep call Common_EventScript_GetGiftMonPartySlot call Common_EventScript_NameReceivedPartyMon goto RustboroCity_DevonCorp_2F_EventScript_FinishReceivingLileep @@ -181,8 +163,7 @@ RustboroCity_DevonCorp_2F_EventScript_ReceiveLileepParty:: RustboroCity_DevonCorp_2F_EventScript_ReceiveLileepPC:: call RustboroCity_DevonCorp_2F_EventScript_ReceivedLileepFanfare msgbox gText_NicknameThisPokemon, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq RustboroCity_DevonCorp_2F_EventScript_TransferLileepToPC + goto_if_eq VAR_RESULT, NO, RustboroCity_DevonCorp_2F_EventScript_TransferLileepToPC call Common_EventScript_NameReceivedBoxMon goto RustboroCity_DevonCorp_2F_EventScript_TransferLileepToPC end @@ -193,12 +174,12 @@ RustboroCity_DevonCorp_2F_EventScript_TransferLileepToPC:: end RustboroCity_DevonCorp_2F_EventScript_ReceivedLileepFanfare:: - bufferspeciesname 1, SPECIES_LILEEP + bufferspeciesname STR_VAR_2, SPECIES_LILEEP playfanfare MUS_OBTAIN_ITEM message RustboroCity_DevonCorp_2F_Text_ReceivedMonFromResearcher waitmessage waitfanfare - bufferspeciesname 0, SPECIES_LILEEP + bufferspeciesname STR_VAR_1, SPECIES_LILEEP return RustboroCity_DevonCorp_2F_EventScript_FinishReceivingLileep:: @@ -209,19 +190,16 @@ RustboroCity_DevonCorp_2F_EventScript_FinishReceivingLileep:: RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorith:: setvar VAR_TEMP_1, SPECIES_ANORITH - givemon SPECIES_ANORITH, 20, ITEM_NONE - compare VAR_RESULT, 0 - goto_if_eq RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorithParty - compare VAR_RESULT, 1 - goto_if_eq RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorithPC + givemon SPECIES_ANORITH, 20 + goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorithParty + goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorithPC goto Common_EventScript_NoMoreRoomForPokemon end RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorithParty:: call RustboroCity_DevonCorp_2F_EventScript_ReceivedAnorithFanfare msgbox gText_NicknameThisPokemon, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq RustboroCity_DevonCorp_2F_EventScript_FinishReceivingAnorith + goto_if_eq VAR_RESULT, NO, RustboroCity_DevonCorp_2F_EventScript_FinishReceivingAnorith call Common_EventScript_GetGiftMonPartySlot call Common_EventScript_NameReceivedPartyMon goto RustboroCity_DevonCorp_2F_EventScript_FinishReceivingAnorith @@ -230,8 +208,7 @@ RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorithParty:: RustboroCity_DevonCorp_2F_EventScript_ReceiveAnorithPC:: call RustboroCity_DevonCorp_2F_EventScript_ReceivedAnorithFanfare msgbox gText_NicknameThisPokemon, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq RustboroCity_DevonCorp_2F_EventScript_TransferAnorithToPC + goto_if_eq VAR_RESULT, NO, RustboroCity_DevonCorp_2F_EventScript_TransferAnorithToPC call Common_EventScript_NameReceivedBoxMon goto RustboroCity_DevonCorp_2F_EventScript_TransferAnorithToPC end @@ -242,12 +219,12 @@ RustboroCity_DevonCorp_2F_EventScript_TransferAnorithToPC:: end RustboroCity_DevonCorp_2F_EventScript_ReceivedAnorithFanfare:: - bufferspeciesname 1, SPECIES_ANORITH + bufferspeciesname STR_VAR_2, SPECIES_ANORITH playfanfare MUS_OBTAIN_ITEM message RustboroCity_DevonCorp_2F_Text_ReceivedMonFromResearcher waitmessage waitfanfare - bufferspeciesname 0, SPECIES_ANORITH + bufferspeciesname STR_VAR_1, SPECIES_ANORITH return RustboroCity_DevonCorp_2F_EventScript_FinishReceivingAnorith:: @@ -282,10 +259,8 @@ RustboroCity_DevonCorp_2F_EventScript_CancelFossilSelect:: RustboroCity_DevonCorp_2F_EventScript_MatchCallScientist:: lock faceplayer - compare VAR_FOSSIL_RESURRECTION_STATE, 1 - call_if_eq RustboroCity_DevonCorp_2F_EventScript_SetFossilReady - compare VAR_RUSTBORO_CITY_STATE, 6 - goto_if_ge RustboroCity_DevonCorp_2F_EventScript_WorkOnNext + call_if_eq VAR_FOSSIL_RESURRECTION_STATE, 1, RustboroCity_DevonCorp_2F_EventScript_SetFossilReady + goto_if_ge VAR_RUSTBORO_CITY_STATE, 6, RustboroCity_DevonCorp_2F_EventScript_WorkOnNext msgbox RustboroCity_DevonCorp_2F_Text_DevelopNewPokenavFeature, MSGBOX_DEFAULT release end diff --git a/data/maps/RustboroCity_DevonCorp_3F/scripts.inc b/data/maps/RustboroCity_DevonCorp_3F/scripts.inc index d249cc51f6..ebf9044c54 100644 --- a/data/maps/RustboroCity_DevonCorp_3F/scripts.inc +++ b/data/maps/RustboroCity_DevonCorp_3F/scripts.inc @@ -7,8 +7,7 @@ RustboroCity_DevonCorp_3F_MapScripts:: .byte 0 RustboroCity_DevonCorp_3F_OnTransition: - compare VAR_DEVON_CORP_3F_STATE, 0 - call_if_eq RustboroCity_DevonCorp_3F_EventScript_SetEmployeePos + call_if_eq VAR_DEVON_CORP_3F_STATE, 0, RustboroCity_DevonCorp_3F_EventScript_SetEmployeePos end RustboroCity_DevonCorp_3F_EventScript_SetEmployeePos:: @@ -164,8 +163,7 @@ RustboroCity_DevonCorp_3F_EventScript_MrStone:: RustboroCity_DevonCorp_3F_EventScript_GiveExpShare:: msgbox RustboroCity_DevonCorp_3F_Text_ThankYouForDeliveringLetter, MSGBOX_DEFAULT giveitem ITEM_EXP_SHARE - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_EXP_SHARE msgbox RustboroCity_DevonCorp_3F_Text_ExplainExpShare, MSGBOX_DEFAULT closemessage diff --git a/data/maps/RustboroCity_Flat1_2F/scripts.inc b/data/maps/RustboroCity_Flat1_2F/scripts.inc index a9d24092f8..8e972182c1 100644 --- a/data/maps/RustboroCity_Flat1_2F/scripts.inc +++ b/data/maps/RustboroCity_Flat1_2F/scripts.inc @@ -7,36 +7,28 @@ RustboroCity_Flat1_2F_EventScript_WaldasDad:: lock faceplayer specialvar VAR_RESULT, TryBufferWaldaPhrase - compare VAR_RESULT, FALSE - goto_if_eq RustboroCity_Flat1_2F_EventScript_WaldasDadFirstPhrase - compare VAR_RESULT, TRUE - goto_if_eq RustboroCity_Flat1_2F_EventScript_WaldasDadNewPhrase + goto_if_eq VAR_RESULT, FALSE, RustboroCity_Flat1_2F_EventScript_WaldasDadFirstPhrase + goto_if_eq VAR_RESULT, TRUE, RustboroCity_Flat1_2F_EventScript_WaldasDadNewPhrase RustboroCity_Flat1_2F_EventScript_GivePhrase:: special DoWaldaNamingScreen waitstate - compare VAR_0x8004, 1 - goto_if_eq RustboroCity_Flat1_2F_EventScript_CancelGivePhrase - compare VAR_0x8004, 2 - goto_if_eq RustboroCity_Flat1_2F_EventScript_CancelGiveFirstPhrase + goto_if_eq VAR_0x8004, 1, RustboroCity_Flat1_2F_EventScript_CancelGivePhrase + goto_if_eq VAR_0x8004, 2, RustboroCity_Flat1_2F_EventScript_CancelGiveFirstPhrase specialvar VAR_RESULT, TryGetWallpaperWithWaldaPhrase - compare VAR_RESULT, TRUE - goto_if_eq RustboroCity_Flat1_2F_EventScript_WaldaLikesPhrase - compare VAR_RESULT, FALSE - goto_if_eq RustboroCity_Flat1_2F_EventScript_WaldaDoesntLikePhrase + goto_if_eq VAR_RESULT, TRUE, RustboroCity_Flat1_2F_EventScript_WaldaLikesPhrase + goto_if_eq VAR_RESULT, FALSE, RustboroCity_Flat1_2F_EventScript_WaldaDoesntLikePhrase end RustboroCity_Flat1_2F_EventScript_WaldasDadFirstPhrase:: msgbox RustboroCity_Flat1_2F_Text_HelloDoYouKnowFunnyPhrase, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq RustboroCity_Flat1_2F_EventScript_DeclineGivePhrase + goto_if_eq VAR_RESULT, NO, RustboroCity_Flat1_2F_EventScript_DeclineGivePhrase msgbox RustboroCity_Flat1_2F_Text_WonderfulLetsHearSuggestion, MSGBOX_DEFAULT goto RustboroCity_Flat1_2F_EventScript_GivePhrase RustboroCity_Flat1_2F_EventScript_WaldasDadNewPhrase:: msgbox RustboroCity_Flat1_2F_Text_BeenSayingXDoYouKnowBetterPhrase, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq RustboroCity_Flat1_2F_EventScript_DeclineGivePhrase + goto_if_eq VAR_RESULT, NO, RustboroCity_Flat1_2F_EventScript_DeclineGivePhrase msgbox RustboroCity_Flat1_2F_Text_WonderfulLetsHearSuggestion, MSGBOX_DEFAULT goto RustboroCity_Flat1_2F_EventScript_GivePhrase diff --git a/data/maps/RustboroCity_Flat2_2F/scripts.inc b/data/maps/RustboroCity_Flat2_2F/scripts.inc index 29edb7b586..97145ce8f2 100644 --- a/data/maps/RustboroCity_Flat2_2F/scripts.inc +++ b/data/maps/RustboroCity_Flat2_2F/scripts.inc @@ -11,8 +11,7 @@ RustboroCity_Flat2_2F_EventScript_NinjaBoy:: goto_if_set FLAG_RECEIVED_PREMIER_BALL_RUSTBORO, RustboroCity_Flat2_2F_EventScript_GavePremierBall msgbox RustboroCity_Flat2_2F_Text_MyDaddyMadeThisYouCanHaveIt, MSGBOX_DEFAULT giveitem ITEM_PREMIER_BALL - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_PREMIER_BALL_RUSTBORO release end diff --git a/data/maps/RustboroCity_Gym/scripts.inc b/data/maps/RustboroCity_Gym/scripts.inc index 11354fac0a..e1596a9730 100644 --- a/data/maps/RustboroCity_Gym/scripts.inc +++ b/data/maps/RustboroCity_Gym/scripts.inc @@ -4,8 +4,7 @@ RustboroCity_Gym_MapScripts:: RustboroCity_Gym_EventScript_Roxanne:: trainerbattle_single TRAINER_ROXANNE_1, RustboroCity_Gym_Text_RoxanneIntro, RustboroCity_Gym_Text_RoxanneDefeat, RustboroCity_Gym_EventScript_RoxanneDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq RustboroCity_Gym_EventScript_RoxanneRematch + goto_if_eq VAR_RESULT, TRUE, RustboroCity_Gym_EventScript_RoxanneRematch goto_if_unset FLAG_RECEIVED_TM39, RustboroCity_Gym_EventScript_GiveRockTomb msgbox RustboroCity_Gym_Text_RoxannePostBattle, MSGBOX_DEFAULT release @@ -22,15 +21,13 @@ RustboroCity_Gym_EventScript_RoxanneDefeated:: addvar VAR_PETALBURG_GYM_STATE, 1 setvar VAR_0x8008, 1 call Common_EventScript_SetGymTrainers - compare VAR_PETALBURG_GYM_STATE, 6 - call_if_eq Common_EventScript_ReadyPetalburgGymForBattle + call_if_eq VAR_PETALBURG_GYM_STATE, 6, Common_EventScript_ReadyPetalburgGymForBattle goto RustboroCity_Gym_EventScript_GiveRockTomb end RustboroCity_Gym_EventScript_GiveRockTomb:: giveitem ITEM_TM39 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM39 msgbox RustboroCity_Gym_Text_ExplainRockTomb, MSGBOX_DEFAULT release diff --git a/data/maps/RustboroCity_House1/scripts.inc b/data/maps/RustboroCity_House1/scripts.inc index 0b7de48bc5..88a33786c0 100644 --- a/data/maps/RustboroCity_House1/scripts.inc +++ b/data/maps/RustboroCity_House1/scripts.inc @@ -10,18 +10,15 @@ RustboroCity_House1_EventScript_Trader:: specialvar VAR_RESULT, GetInGameTradeSpeciesInfo copyvar VAR_0x8009, VAR_RESULT msgbox RustboroCity_House1_Text_IllTradeIfYouWant, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq RustboroCity_House1_EventScript_DeclineTrade + goto_if_eq VAR_RESULT, NO, RustboroCity_House1_EventScript_DeclineTrade special ChoosePartyMon waitstate copyvar VAR_0x800A, VAR_0x8004 - compare VAR_0x8004, 255 - goto_if_eq RustboroCity_House1_EventScript_DeclineTrade + goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, RustboroCity_House1_EventScript_DeclineTrade copyvar VAR_0x8005, VAR_0x800A specialvar VAR_RESULT, GetTradeSpecies copyvar VAR_0x800B, VAR_RESULT - compare VAR_RESULT, VAR_0x8009 - goto_if_ne RustboroCity_House1_EventScript_NotRequestedMon + goto_if_ne VAR_RESULT, VAR_0x8009, RustboroCity_House1_EventScript_NotRequestedMon copyvar VAR_0x8004, VAR_0x8008 copyvar VAR_0x8005, VAR_0x800A special CreateInGameTradePokemon @@ -38,7 +35,7 @@ RustboroCity_House1_EventScript_DeclineTrade:: end RustboroCity_House1_EventScript_NotRequestedMon:: - bufferspeciesname 0, VAR_0x8009 + bufferspeciesname STR_VAR_1, VAR_0x8009 msgbox RustboroCity_House1_Text_DoesntLookLikeMonToMe, MSGBOX_DEFAULT release end diff --git a/data/maps/RustboroCity_PokemonSchool/scripts.inc b/data/maps/RustboroCity_PokemonSchool/scripts.inc index fcc374ddc7..8a409d49b3 100644 --- a/data/maps/RustboroCity_PokemonSchool/scripts.inc +++ b/data/maps/RustboroCity_PokemonSchool/scripts.inc @@ -78,14 +78,11 @@ RustboroCity_PokemonSchool_EventScript_Teacher:: lock faceplayer goto_if_set FLAG_RECEIVED_QUICK_CLAW, RustboroCity_PokemonSchool_EventScript_GaveQuickClaw - compare VAR_FACING, DIR_EAST - call_if_eq RustboroCity_PokemonSchool_EventScript_TeacherCheckOnStudentsEast - compare VAR_FACING, DIR_WEST - call_if_eq RustboroCity_PokemonSchool_EventScript_TeacherCheckOnStudentsWest + call_if_eq VAR_FACING, DIR_EAST, RustboroCity_PokemonSchool_EventScript_TeacherCheckOnStudentsEast + call_if_eq VAR_FACING, DIR_WEST, RustboroCity_PokemonSchool_EventScript_TeacherCheckOnStudentsWest msgbox RustboroCity_PokemonSchool_Text_StudentsWhoDontStudyGetQuickClaw, MSGBOX_DEFAULT giveitem ITEM_QUICK_CLAW - compare VAR_RESULT, 0 - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, 0, Common_EventScript_ShowBagIsFull closemessage applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFasterDown waitmovement 0 diff --git a/data/maps/RusturfTunnel/scripts.inc b/data/maps/RusturfTunnel/scripts.inc index 97a158f22d..e7eee5817a 100644 --- a/data/maps/RusturfTunnel/scripts.inc +++ b/data/maps/RusturfTunnel/scripts.inc @@ -15,8 +15,7 @@ RusturfTunnel_OnFrame: .2byte 0 RusturfTunnel_OnTransition: - compare VAR_RUSTURF_TUNNEL_STATE, 2 - call_if_eq RusturfTunnel_EventScript_SetAquaGruntAndPeekoPos + call_if_eq VAR_RUSTURF_TUNNEL_STATE, 2, RusturfTunnel_EventScript_SetAquaGruntAndPeekoPos end RusturfTunnel_EventScript_SetAquaGruntAndPeekoPos:: @@ -56,36 +55,25 @@ RusturfTunnel_EventScript_AlreadySpokenTo:: RusturfTunnel_EventScript_ClearTunnelScene:: lockall - compare VAR_TEMP_1, 1 - call_if_eq RusturfTunnel_EventScript_FaceWandasBoyfriend1 - compare VAR_TEMP_1, 2 - call_if_eq RusturfTunnel_EventScript_FaceWandasBoyfriend2 - compare VAR_TEMP_1, 3 - call_if_eq RusturfTunnel_EventScript_FaceWandasBoyfriend3 + call_if_eq VAR_TEMP_1, 1, RusturfTunnel_EventScript_FaceWandasBoyfriend1 + call_if_eq VAR_TEMP_1, 2, RusturfTunnel_EventScript_FaceWandasBoyfriend2 + call_if_eq VAR_TEMP_1, 3, RusturfTunnel_EventScript_FaceWandasBoyfriend3 call RusturfTunnel_EventScript_WandasBoyfriendNotice msgbox RusturfTunnel_Text_YouShatteredBoulderTakeHM, MSGBOX_DEFAULT - compare VAR_TEMP_1, 2 - call_if_eq RusturfTunnel_EventScript_WandasBoyfriendApproachPlayer - compare VAR_TEMP_1, 3 - call_if_eq RusturfTunnel_EventScript_WandasBoyfriendApproachPlayer + call_if_eq VAR_TEMP_1, 2, RusturfTunnel_EventScript_WandasBoyfriendApproachPlayer + call_if_eq VAR_TEMP_1, 3, RusturfTunnel_EventScript_WandasBoyfriendApproachPlayer giveitem ITEM_HM04 setflag FLAG_RECEIVED_HM04 msgbox RusturfTunnel_Text_ExplainStrength, MSGBOX_DEFAULT closemessage - compare VAR_TEMP_1, 1 - call_if_eq RusturfTunnel_EventScript_BoyfriendApproachWanda1 - compare VAR_TEMP_1, 2 - call_if_eq RusturfTunnel_EventScript_BoyfriendApproachWanda2 - compare VAR_TEMP_1, 3 - call_if_eq RusturfTunnel_EventScript_BoyfriendApproachWanda3 + call_if_eq VAR_TEMP_1, 1, RusturfTunnel_EventScript_BoyfriendApproachWanda1 + call_if_eq VAR_TEMP_1, 2, RusturfTunnel_EventScript_BoyfriendApproachWanda2 + call_if_eq VAR_TEMP_1, 3, RusturfTunnel_EventScript_BoyfriendApproachWanda3 msgbox RusturfTunnel_Text_WandaReunion, MSGBOX_DEFAULT closemessage - compare VAR_TEMP_1, 1 - call_if_eq RusturfTunnel_EventScript_WandaAndBoyfriendExit1 - compare VAR_TEMP_1, 2 - call_if_eq RusturfTunnel_EventScript_WandaAndBoyfriendExit - compare VAR_TEMP_1, 3 - call_if_eq RusturfTunnel_EventScript_WandaAndBoyfriendExit + call_if_eq VAR_TEMP_1, 1, RusturfTunnel_EventScript_WandaAndBoyfriendExit1 + call_if_eq VAR_TEMP_1, 2, RusturfTunnel_EventScript_WandaAndBoyfriendExit + call_if_eq VAR_TEMP_1, 3, RusturfTunnel_EventScript_WandaAndBoyfriendExit call RusturfTunnel_EventScript_SetRusturfTunnelOpen releaseall end diff --git a/data/maps/SSTidalCorridor/scripts.inc b/data/maps/SSTidalCorridor/scripts.inc index 4aa94de237..b39b9a4336 100644 --- a/data/maps/SSTidalCorridor/scripts.inc +++ b/data/maps/SSTidalCorridor/scripts.inc @@ -45,10 +45,8 @@ SSTidalRooms_EventScript_ArrivedInLilycove:: return SSTidalCorridor_EventScript_ReachedStepCount:: - compare VAR_SS_TIDAL_STATE, SS_TIDAL_DEPART_SLATEPORT - goto_if_eq SSTidalCorridor_EventScript_HalfwayToLilycove - compare VAR_SS_TIDAL_STATE, SS_TIDAL_HALFWAY_SLATEPORT - goto_if_eq SSTidalCorridor_EventScript_ArrivedInSlateport + goto_if_eq VAR_SS_TIDAL_STATE, SS_TIDAL_DEPART_SLATEPORT, SSTidalCorridor_EventScript_HalfwayToLilycove + goto_if_eq VAR_SS_TIDAL_STATE, SS_TIDAL_HALFWAY_SLATEPORT, SSTidalCorridor_EventScript_ArrivedInSlateport end SSTidalCorridor_EventScript_HalfwayToLilycove:: @@ -117,10 +115,8 @@ SSTidalCorridor_EventScript_Cabin4Sign:: SSTidalCorridor_EventScript_ExitSailor:: lock faceplayer - compare VAR_SS_TIDAL_STATE, SS_TIDAL_LAND_LILYCOVE - goto_if_eq SSTidalCorridor_EventScript_ExitLilycove - compare VAR_SS_TIDAL_STATE, SS_TIDAL_LAND_SLATEPORT - goto_if_eq SSTidalCorridor_EventScript_ExitSlateport + goto_if_eq VAR_SS_TIDAL_STATE, SS_TIDAL_LAND_LILYCOVE, SSTidalCorridor_EventScript_ExitLilycove + goto_if_eq VAR_SS_TIDAL_STATE, SS_TIDAL_LAND_SLATEPORT, SSTidalCorridor_EventScript_ExitSlateport msgbox SSTidalCorridor_Text_CanRestInCabin2, MSGBOX_DEFAULT release end @@ -129,7 +125,7 @@ SSTidalCorridor_EventScript_ExitLilycove:: setrespawn HEAL_LOCATION_LILYCOVE_CITY msgbox SSTidalCorridor_Text_WeveArrived, MSGBOX_DEFAULT call_if_set FLAG_RECEIVED_TM49, SSTidalCorridor_EventScript_HideSnatchGiver - warp MAP_LILYCOVE_CITY_HARBOR, 255, 8, 11 + warp MAP_LILYCOVE_CITY_HARBOR, 8, 11 waitstate release end @@ -138,7 +134,7 @@ SSTidalCorridor_EventScript_ExitSlateport:: setrespawn HEAL_LOCATION_SLATEPORT_CITY msgbox SSTidalCorridor_Text_WeveArrived, MSGBOX_DEFAULT call_if_set FLAG_RECEIVED_TM49, SSTidalCorridor_EventScript_HideSnatchGiver - warp MAP_SLATEPORT_CITY_HARBOR, 255, 8, 11 + warp MAP_SLATEPORT_CITY_HARBOR, 8, 11 waitstate release end @@ -149,10 +145,8 @@ SSTidalCorridor_EventScript_HideSnatchGiver:: SSTidalCorridor_EventScript_Porthole:: lockall - compare VAR_SS_TIDAL_STATE, SS_TIDAL_DEPART_SLATEPORT - goto_if_eq SSTidalCorridor_EventScript_LookThroughPorthole - compare VAR_SS_TIDAL_STATE, SS_TIDAL_HALFWAY_SLATEPORT - goto_if_eq SSTidalCorridor_EventScript_LookThroughPorthole + goto_if_eq VAR_SS_TIDAL_STATE, SS_TIDAL_DEPART_SLATEPORT, SSTidalCorridor_EventScript_LookThroughPorthole + goto_if_eq VAR_SS_TIDAL_STATE, SS_TIDAL_HALFWAY_SLATEPORT, SSTidalCorridor_EventScript_LookThroughPorthole msgbox SSTidalCorridor_Text_HorizonSpreadsBeyondPorthole, MSGBOX_DEFAULT releaseall end diff --git a/data/maps/SSTidalRooms/scripts.inc b/data/maps/SSTidalRooms/scripts.inc index c5cade489e..c3aa8ff8ab 100644 --- a/data/maps/SSTidalRooms/scripts.inc +++ b/data/maps/SSTidalRooms/scripts.inc @@ -7,8 +7,7 @@ SSTidalRooms_EventScript_SnatchGiver:: goto_if_set FLAG_RECEIVED_TM49, SSTidalRooms_EventScript_ExplainSnatch msgbox SSTidalRooms_Text_NotSuspiciousTakeThis, MSGBOX_DEFAULT giveitem ITEM_TM49 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM49 msgbox SSTidalRooms_Text_ExplainSnatch, MSGBOX_DEFAULT release diff --git a/data/maps/SafariZone_South/scripts.inc b/data/maps/SafariZone_South/scripts.inc index 791572fe0c..6b4c774c2b 100644 --- a/data/maps/SafariZone_South/scripts.inc +++ b/data/maps/SafariZone_South/scripts.inc @@ -21,8 +21,7 @@ SafariZone_South_EventScript_EnterSafariZone:: end SafariZone_South_OnTransition: - compare VAR_SAFARI_ZONE_STATE, 2 - call_if_eq SafariZone_South_EventScript_SetExitAttendantAside + call_if_eq VAR_SAFARI_ZONE_STATE, 2, SafariZone_South_EventScript_SetExitAttendantAside end SafariZone_South_EventScript_SetExitAttendantAside:: @@ -55,8 +54,7 @@ SafariZone_South_EventScript_ExitAttendant:: faceplayer goto_if_unset FLAG_GOOD_LUCK_SAFARI_ZONE, SafariZone_South_EventScript_GoodLuck msgbox SafariZone_South_Text_StillHaveTimeExit, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq SafariZone_South_EventScript_ExitEarly + goto_if_eq VAR_RESULT, YES, SafariZone_South_EventScript_ExitEarly msgbox SafariZone_South_Text_EnjoyTheRestOfYourAdventure, MSGBOX_DEFAULT release end @@ -94,7 +92,7 @@ SafariZone_South_EventScript_ExitEarlyEast:: SafariZone_South_EventScript_Exit:: setvar VAR_SAFARI_ZONE_STATE, 1 special ExitSafariMode - warpdoor MAP_ROUTE121_SAFARI_ZONE_ENTRANCE, 255, 2, 5 + warpdoor MAP_ROUTE121_SAFARI_ZONE_ENTRANCE, 2, 5 waitstate end diff --git a/data/maps/SeafloorCavern_Entrance/scripts.inc b/data/maps/SeafloorCavern_Entrance/scripts.inc index a4c621e3e0..eec69e6f80 100644 --- a/data/maps/SeafloorCavern_Entrance/scripts.inc +++ b/data/maps/SeafloorCavern_Entrance/scripts.inc @@ -5,14 +5,13 @@ SeafloorCavern_Entrance_MapScripts:: .byte 0 SeafloorCavern_Entrance_OnResume: - setdivewarp MAP_UNDERWATER_SEAFLOOR_CAVERN, 255, 6, 5 - setescapewarp MAP_UNDERWATER_SEAFLOOR_CAVERN, 255, 6, 5 + setdivewarp MAP_UNDERWATER_SEAFLOOR_CAVERN, 6, 5 + setescapewarp MAP_UNDERWATER_SEAFLOOR_CAVERN, 6, 5 end SeafloorCavern_Entrance_EventScript_Grunt:: lockall - compare VAR_HAS_TALKED_TO_SEAFLOOR_CAVERN_ENTRANCE_GRUNT, 1 - goto_if_eq SeafloorCavern_Entrance_EventScript_GruntSpeechShort + goto_if_eq VAR_HAS_TALKED_TO_SEAFLOOR_CAVERN_ENTRANCE_GRUNT, 1, SeafloorCavern_Entrance_EventScript_GruntSpeechShort waitse playse SE_PIN applymovement LOCALID_GRUNT, Common_Movement_ExclamationMark @@ -20,12 +19,9 @@ SeafloorCavern_Entrance_EventScript_Grunt:: applymovement LOCALID_GRUNT, Common_Movement_Delay48 waitmovement 0 delay 20 - compare VAR_FACING, DIR_WEST - call_if_eq SeafloorCavern_Entrance_EventScript_GruntFacePlayerWest - compare VAR_FACING, DIR_EAST - call_if_eq SeafloorCavern_Entrance_EventScript_GruntFacePlayerEast - compare VAR_FACING, DIR_NORTH - call_if_eq SeafloorCavern_Entrance_EventScript_GruntFacePlayerNorth + call_if_eq VAR_FACING, DIR_WEST, SeafloorCavern_Entrance_EventScript_GruntFacePlayerWest + call_if_eq VAR_FACING, DIR_EAST, SeafloorCavern_Entrance_EventScript_GruntFacePlayerEast + call_if_eq VAR_FACING, DIR_NORTH, SeafloorCavern_Entrance_EventScript_GruntFacePlayerNorth delay 30 setvar VAR_HAS_TALKED_TO_SEAFLOOR_CAVERN_ENTRANCE_GRUNT, 1 copyobjectxytoperm LOCALID_GRUNT @@ -37,12 +33,9 @@ SeafloorCavern_Entrance_EventScript_Grunt:: end SeafloorCavern_Entrance_EventScript_GruntSpeechShort:: - compare VAR_FACING, DIR_WEST - call_if_eq SeafloorCavern_Entrance_EventScript_GruntFacePlayerWest - compare VAR_FACING, DIR_EAST - call_if_eq SeafloorCavern_Entrance_EventScript_GruntFacePlayerEast - compare VAR_FACING, DIR_NORTH - call_if_eq SeafloorCavern_Entrance_EventScript_GruntFacePlayerNorth + call_if_eq VAR_FACING, DIR_WEST, SeafloorCavern_Entrance_EventScript_GruntFacePlayerWest + call_if_eq VAR_FACING, DIR_EAST, SeafloorCavern_Entrance_EventScript_GruntFacePlayerEast + call_if_eq VAR_FACING, DIR_NORTH, SeafloorCavern_Entrance_EventScript_GruntFacePlayerNorth msgbox SeafloorCavern_Entrance_Text_HearMagmaNearMossdeepShort, MSGBOX_DEFAULT closemessage applymovement LOCALID_GRUNT, Common_Movement_WalkInPlaceFasterUp diff --git a/data/maps/SeafloorCavern_Room9/scripts.inc b/data/maps/SeafloorCavern_Room9/scripts.inc index 3db2348a4a..63e6baf3c7 100644 --- a/data/maps/SeafloorCavern_Room9/scripts.inc +++ b/data/maps/SeafloorCavern_Room9/scripts.inc @@ -145,7 +145,7 @@ SeafloorCavern_Room9_EventScript_ArchieAwakenKyogre:: setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE setflag FLAG_HIDE_SEAFLOOR_CAVERN_AQUA_GRUNTS setflag FLAG_HIDE_MAP_NAME_POPUP - warp MAP_ROUTE128, 255, 38, 22 + warp MAP_ROUTE128, 38, 22 waitstate releaseall end diff --git a/data/maps/SealedChamber_InnerRoom/scripts.inc b/data/maps/SealedChamber_InnerRoom/scripts.inc index 7d240535ca..036ab4fb80 100644 --- a/data/maps/SealedChamber_InnerRoom/scripts.inc +++ b/data/maps/SealedChamber_InnerRoom/scripts.inc @@ -6,8 +6,7 @@ SealedChamber_InnerRoom_EventScript_BrailleBackWall:: braillemsgbox SealedChamber_InnerRoom_Braille_FirstWailordLastRelicanth goto_if_set FLAG_REGI_DOORS_OPENED, SealedChamber_InnerRoom_EventScript_NoEffect specialvar VAR_RESULT, CheckRelicanthWailord - compare VAR_RESULT, FALSE - goto_if_eq SealedChamber_InnerRoom_EventScript_NoEffect + goto_if_eq VAR_RESULT, FALSE, SealedChamber_InnerRoom_EventScript_NoEffect fadeoutbgm 0 playse SE_TRUCK_MOVE special DoSealedChamberShakingEffect_Long diff --git a/data/maps/SealedChamber_OuterRoom/scripts.inc b/data/maps/SealedChamber_OuterRoom/scripts.inc index 7d57ea5449..bf02c7fe37 100644 --- a/data/maps/SealedChamber_OuterRoom/scripts.inc +++ b/data/maps/SealedChamber_OuterRoom/scripts.inc @@ -5,8 +5,8 @@ SealedChamber_OuterRoom_MapScripts:: .byte 0 SealedChamber_OuterRoom_OnResume: - setdivewarp MAP_UNDERWATER_SEALED_CHAMBER, 255, 12, 44 - setescapewarp MAP_UNDERWATER_SEALED_CHAMBER, 255, 12, 44 + setdivewarp MAP_UNDERWATER_SEALED_CHAMBER, 12, 44 + setescapewarp MAP_UNDERWATER_SEALED_CHAMBER, 12, 44 end SealedChamber_OuterRoom_OnTransition: @@ -18,12 +18,12 @@ SealedChamber_OuterRoom_OnLoad: end SealedChamber_OuterRoom_EventScript_CloseInnerRoomEntrance:: - setmetatile 9, 1, METATILE_Cave_EntranceCover, 1 - setmetatile 10, 1, METATILE_Cave_EntranceCover, 1 - setmetatile 11, 1, METATILE_Cave_EntranceCover, 1 - setmetatile 9, 2, METATILE_Cave_SealedChamberBraille_Mid, 1 - setmetatile 10, 2, METATILE_Cave_SealedChamberBraille_Mid, 1 - setmetatile 11, 2, METATILE_Cave_SealedChamberBraille_Mid, 1 + setmetatile 9, 1, METATILE_Cave_EntranceCover, TRUE + setmetatile 10, 1, METATILE_Cave_EntranceCover, TRUE + setmetatile 11, 1, METATILE_Cave_EntranceCover, TRUE + setmetatile 9, 2, METATILE_Cave_SealedChamberBraille_Mid, TRUE + setmetatile 10, 2, METATILE_Cave_SealedChamberBraille_Mid, TRUE + setmetatile 11, 2, METATILE_Cave_SealedChamberBraille_Mid, TRUE return SealedChamber_OuterRoom_EventScript_BrailleABC:: diff --git a/data/maps/SecretBase_BlueCave1/map.json b/data/maps/SecretBase_BlueCave1/map.json index 3fb6157cca..066cfb3857 100644 --- a/data/maps/SecretBase_BlueCave1/map.json +++ b/data/maps/SecretBase_BlueCave1/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_BlueCave2/map.json b/data/maps/SecretBase_BlueCave2/map.json index ca15e39f18..b74fa5afb6 100644 --- a/data/maps/SecretBase_BlueCave2/map.json +++ b/data/maps/SecretBase_BlueCave2/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_BlueCave3/map.json b/data/maps/SecretBase_BlueCave3/map.json index 356b4894d4..dd67e2d546 100644 --- a/data/maps/SecretBase_BlueCave3/map.json +++ b/data/maps/SecretBase_BlueCave3/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_BlueCave4/map.json b/data/maps/SecretBase_BlueCave4/map.json index 078bada8e6..3c97371f53 100644 --- a/data/maps/SecretBase_BlueCave4/map.json +++ b/data/maps/SecretBase_BlueCave4/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_BrownCave1/map.json b/data/maps/SecretBase_BrownCave1/map.json index 6f2dc92f24..062eac9f4b 100644 --- a/data/maps/SecretBase_BrownCave1/map.json +++ b/data/maps/SecretBase_BrownCave1/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_BrownCave2/map.json b/data/maps/SecretBase_BrownCave2/map.json index 11559c12fb..eb04f2a8de 100644 --- a/data/maps/SecretBase_BrownCave2/map.json +++ b/data/maps/SecretBase_BrownCave2/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_BrownCave3/map.json b/data/maps/SecretBase_BrownCave3/map.json index c2dbb7fc45..1d00ee139a 100644 --- a/data/maps/SecretBase_BrownCave3/map.json +++ b/data/maps/SecretBase_BrownCave3/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_BrownCave4/map.json b/data/maps/SecretBase_BrownCave4/map.json index e7147ae85d..f1fb82eb4f 100644 --- a/data/maps/SecretBase_BrownCave4/map.json +++ b/data/maps/SecretBase_BrownCave4/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_RedCave1/map.json b/data/maps/SecretBase_RedCave1/map.json index fd264fc6cf..e83458a87a 100644 --- a/data/maps/SecretBase_RedCave1/map.json +++ b/data/maps/SecretBase_RedCave1/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_RedCave2/map.json b/data/maps/SecretBase_RedCave2/map.json index b60b3bbff2..9a0ac210f4 100644 --- a/data/maps/SecretBase_RedCave2/map.json +++ b/data/maps/SecretBase_RedCave2/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_RedCave3/map.json b/data/maps/SecretBase_RedCave3/map.json index 079837a621..ce405a40ab 100644 --- a/data/maps/SecretBase_RedCave3/map.json +++ b/data/maps/SecretBase_RedCave3/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_RedCave4/map.json b/data/maps/SecretBase_RedCave4/map.json index 10fbbfeb0d..2b1ad8c2c9 100644 --- a/data/maps/SecretBase_RedCave4/map.json +++ b/data/maps/SecretBase_RedCave4/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_Shrub1/map.json b/data/maps/SecretBase_Shrub1/map.json index e0d1015cbb..a028cbe62a 100644 --- a/data/maps/SecretBase_Shrub1/map.json +++ b/data/maps/SecretBase_Shrub1/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_Shrub2/map.json b/data/maps/SecretBase_Shrub2/map.json index 879b7464e9..60977e70d4 100644 --- a/data/maps/SecretBase_Shrub2/map.json +++ b/data/maps/SecretBase_Shrub2/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_Shrub3/map.json b/data/maps/SecretBase_Shrub3/map.json index 6751a74147..a513b0bd2b 100644 --- a/data/maps/SecretBase_Shrub3/map.json +++ b/data/maps/SecretBase_Shrub3/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_Shrub4/map.json b/data/maps/SecretBase_Shrub4/map.json index c193b8348e..6aded553b8 100644 --- a/data/maps/SecretBase_Shrub4/map.json +++ b/data/maps/SecretBase_Shrub4/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_Tree1/map.json b/data/maps/SecretBase_Tree1/map.json index cd0cad5f08..cd6a0b33af 100644 --- a/data/maps/SecretBase_Tree1/map.json +++ b/data/maps/SecretBase_Tree1/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_Tree2/map.json b/data/maps/SecretBase_Tree2/map.json index 1ac393a158..3aad151ffe 100644 --- a/data/maps/SecretBase_Tree2/map.json +++ b/data/maps/SecretBase_Tree2/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_Tree3/map.json b/data/maps/SecretBase_Tree3/map.json index b7eec22440..498852c024 100644 --- a/data/maps/SecretBase_Tree3/map.json +++ b/data/maps/SecretBase_Tree3/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_Tree4/map.json b/data/maps/SecretBase_Tree4/map.json index 0e068ec94d..b24d1d8a99 100644 --- a/data/maps/SecretBase_Tree4/map.json +++ b/data/maps/SecretBase_Tree4/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_YellowCave1/map.json b/data/maps/SecretBase_YellowCave1/map.json index 1d873bfe29..54916fda32 100644 --- a/data/maps/SecretBase_YellowCave1/map.json +++ b/data/maps/SecretBase_YellowCave1/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_YellowCave2/map.json b/data/maps/SecretBase_YellowCave2/map.json index af2e957bc6..f9d9a572be 100644 --- a/data/maps/SecretBase_YellowCave2/map.json +++ b/data/maps/SecretBase_YellowCave2/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_YellowCave3/map.json b/data/maps/SecretBase_YellowCave3/map.json index d78aa28628..fdcc94c18b 100644 --- a/data/maps/SecretBase_YellowCave3/map.json +++ b/data/maps/SecretBase_YellowCave3/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/SecretBase_YellowCave4/map.json b/data/maps/SecretBase_YellowCave4/map.json index 0ca4bc4d32..246974eaad 100644 --- a/data/maps/SecretBase_YellowCave4/map.json +++ b/data/maps/SecretBase_YellowCave4/map.json @@ -26,7 +26,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SecretBase_EventScript_RecordMixTrainer", - "flag": "FLAG_DECORATION_0" + "flag": "FLAG_HIDE_SECRET_BASE_TRAINER" }, { "graphics_id": "OBJ_EVENT_GFX_VAR_0", diff --git a/data/maps/ShoalCave_LowTideEntranceRoom/scripts.inc b/data/maps/ShoalCave_LowTideEntranceRoom/scripts.inc index a1206dfb47..905a9a77a7 100644 --- a/data/maps/ShoalCave_LowTideEntranceRoom/scripts.inc +++ b/data/maps/ShoalCave_LowTideEntranceRoom/scripts.inc @@ -21,25 +21,19 @@ ShoalCave_LowTideEntranceRoom_EventScript_ShellBellExpert:: dotimebasedevents call_if_set FLAG_SYS_SHOAL_ITEM, ShoalCave_LowTideEntranceRoom_EventScript_ResetShoalItems checkitem ITEM_SHOAL_SALT, 4 - compare VAR_RESULT, FALSE - goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_NotEnoughShoalSaltOrShells + goto_if_eq VAR_RESULT, FALSE, ShoalCave_LowTideEntranceRoom_EventScript_NotEnoughShoalSaltOrShells checkitem ITEM_SHOAL_SHELL, 4 - compare VAR_RESULT, FALSE - goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_NotEnoughShoalSaltOrShells + goto_if_eq VAR_RESULT, FALSE, ShoalCave_LowTideEntranceRoom_EventScript_NotEnoughShoalSaltOrShells msgbox ShoalCave_LowTideEntranceRoom_Text_WouldYouLikeShellBell, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_DeclineShellBell - checkitemspace ITEM_SHELL_BELL, 1 - compare VAR_RESULT, FALSE - call_if_eq ShoalCave_LowTideEntranceRoom_EventScript_CheckSpaceWillBeFreed - compare VAR_RESULT, 2 - goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_NoRoomForShellBell + goto_if_eq VAR_RESULT, NO, ShoalCave_LowTideEntranceRoom_EventScript_DeclineShellBell + checkitemspace ITEM_SHELL_BELL + call_if_eq VAR_RESULT, FALSE, ShoalCave_LowTideEntranceRoom_EventScript_CheckSpaceWillBeFreed + goto_if_eq VAR_RESULT, 2, ShoalCave_LowTideEntranceRoom_EventScript_NoRoomForShellBell msgbox ShoalCave_LowTideEntranceRoom_Text_MakeShellBellRightAway, MSGBOX_DEFAULT removeitem ITEM_SHOAL_SALT, 4 removeitem ITEM_SHOAL_SHELL, 4 giveitem ITEM_SHELL_BELL - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull msgbox ShoalCave_LowTideEntranceRoom_Text_ExplainShellBell, MSGBOX_DEFAULT setflag FLAG_TEMP_2 release @@ -48,14 +42,12 @@ ShoalCave_LowTideEntranceRoom_EventScript_ShellBellExpert:: @ If the bag is full, check if a slot will be freed when 4 Shoal Salt or Shells are given ShoalCave_LowTideEntranceRoom_EventScript_CheckSpaceWillBeFreed:: checkitem ITEM_SHOAL_SALT, 5 - compare VAR_RESULT, TRUE - goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_CheckSpaceWillBeFreedShells + goto_if_eq VAR_RESULT, TRUE, ShoalCave_LowTideEntranceRoom_EventScript_CheckSpaceWillBeFreedShells return ShoalCave_LowTideEntranceRoom_EventScript_CheckSpaceWillBeFreedShells:: checkitem ITEM_SHOAL_SHELL, 5 - compare VAR_RESULT, TRUE - goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_NoSpaceWillBeFreed + goto_if_eq VAR_RESULT, TRUE, ShoalCave_LowTideEntranceRoom_EventScript_NoSpaceWillBeFreed return ShoalCave_LowTideEntranceRoom_EventScript_NoSpaceWillBeFreed:: @@ -68,12 +60,10 @@ ShoalCave_LowTideEntranceRoom_EventScript_NoRoomForShellBell:: end ShoalCave_LowTideEntranceRoom_EventScript_NotEnoughShoalSaltOrShells:: - checkitem ITEM_SHOAL_SALT, 1 - compare VAR_RESULT, TRUE - goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_HasSomeShoalSaltOrShell - checkitem ITEM_SHOAL_SHELL, 1 - compare VAR_RESULT, TRUE - goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_HasSomeShoalSaltOrShell + checkitem ITEM_SHOAL_SALT + goto_if_eq VAR_RESULT, TRUE, ShoalCave_LowTideEntranceRoom_EventScript_HasSomeShoalSaltOrShell + checkitem ITEM_SHOAL_SHELL + goto_if_eq VAR_RESULT, TRUE, ShoalCave_LowTideEntranceRoom_EventScript_HasSomeShoalSaltOrShell msgbox ShoalCave_LowTideEntranceRoom_Text_AreYouPlanningOnGoingInThere, MSGBOX_DEFAULT release end diff --git a/data/maps/ShoalCave_LowTideInnerRoom/scripts.inc b/data/maps/ShoalCave_LowTideInnerRoom/scripts.inc index 9692d2f694..17f6a7ca6b 100644 --- a/data/maps/ShoalCave_LowTideInnerRoom/scripts.inc +++ b/data/maps/ShoalCave_LowTideInnerRoom/scripts.inc @@ -22,38 +22,38 @@ ShoalCave_LowTideInnerRoom_OnLoad: ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles:: goto_if_set FLAG_RECEIVED_SHOAL_SALT_1, ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles2 goto_if_set FLAG_SYS_SHOAL_TIDE, ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles2 - setmetatile 31, 8, METATILE_Cave_ShoalCave_DirtPile_Large, 1 + setmetatile 31, 8, METATILE_Cave_ShoalCave_DirtPile_Large, TRUE goto ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles2 end ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles2:: goto_if_set FLAG_RECEIVED_SHOAL_SALT_2, ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles3 goto_if_set FLAG_SYS_SHOAL_TIDE, ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles3 - setmetatile 14, 26, METATILE_Cave_ShoalCave_DirtPile_Large, 1 + setmetatile 14, 26, METATILE_Cave_ShoalCave_DirtPile_Large, TRUE goto ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles3 end ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles3:: goto_if_set FLAG_RECEIVED_SHOAL_SHELL_1, ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles4 - setmetatile 41, 20, METATILE_Cave_ShoalCave_BlueStone_Large, 1 + setmetatile 41, 20, METATILE_Cave_ShoalCave_BlueStone_Large, TRUE goto ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles4 end ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles4:: goto_if_set FLAG_RECEIVED_SHOAL_SHELL_2, ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles5 - setmetatile 41, 10, METATILE_Cave_ShoalCave_BlueStone_Large, 1 + setmetatile 41, 10, METATILE_Cave_ShoalCave_BlueStone_Large, TRUE goto ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles5 end ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles5:: goto_if_set FLAG_RECEIVED_SHOAL_SHELL_3, ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles6 - setmetatile 6, 9, METATILE_Cave_ShoalCave_BlueStone_Large, 1 + setmetatile 6, 9, METATILE_Cave_ShoalCave_BlueStone_Large, TRUE goto ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles6 end ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatiles6:: goto_if_set FLAG_RECEIVED_SHOAL_SHELL_4, ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatilesEnd - setmetatile 16, 13, METATILE_Cave_ShoalCave_BlueStone_Large, 1 + setmetatile 16, 13, METATILE_Cave_ShoalCave_BlueStone_Large, TRUE return ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatilesEnd:: @@ -63,9 +63,8 @@ ShoalCave_LowTideInnerRoom_EventScript_ShoalShell1:: lockall goto_if_set FLAG_RECEIVED_SHOAL_SHELL_1, ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalShell giveitem ITEM_SHOAL_SHELL - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull - setmetatile 41, 20, METATILE_Cave_ShoalCave_BlueStone_Small, 0 + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull + setmetatile 41, 20, METATILE_Cave_ShoalCave_BlueStone_Small, FALSE special DrawWholeMapView setflag FLAG_RECEIVED_SHOAL_SHELL_1 releaseall @@ -80,9 +79,8 @@ ShoalCave_LowTideInnerRoom_EventScript_ShoalShell2:: lockall goto_if_set FLAG_RECEIVED_SHOAL_SHELL_2, ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalShell giveitem ITEM_SHOAL_SHELL - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull - setmetatile 41, 10, METATILE_Cave_ShoalCave_BlueStone_Small, 0 + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull + setmetatile 41, 10, METATILE_Cave_ShoalCave_BlueStone_Small, FALSE special DrawWholeMapView setflag FLAG_RECEIVED_SHOAL_SHELL_2 releaseall @@ -92,9 +90,8 @@ ShoalCave_LowTideInnerRoom_EventScript_ShoalShell3:: lockall goto_if_set FLAG_RECEIVED_SHOAL_SHELL_3, ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalShell giveitem ITEM_SHOAL_SHELL - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull - setmetatile 6, 9, METATILE_Cave_ShoalCave_BlueStone_Small, 0 + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull + setmetatile 6, 9, METATILE_Cave_ShoalCave_BlueStone_Small, FALSE special DrawWholeMapView setflag FLAG_RECEIVED_SHOAL_SHELL_3 releaseall @@ -104,9 +101,8 @@ ShoalCave_LowTideInnerRoom_EventScript_ShoalShell4:: lockall goto_if_set FLAG_RECEIVED_SHOAL_SHELL_4, ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalShell giveitem ITEM_SHOAL_SHELL - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull - setmetatile 16, 13, METATILE_Cave_ShoalCave_BlueStone_Small, 0 + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull + setmetatile 16, 13, METATILE_Cave_ShoalCave_BlueStone_Small, FALSE special DrawWholeMapView setflag FLAG_RECEIVED_SHOAL_SHELL_4 releaseall @@ -116,9 +112,8 @@ ShoalCave_LowTideInnerRoom_EventScript_ShoalSalt1:: lockall goto_if_set FLAG_RECEIVED_SHOAL_SALT_1, ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalSalt giveitem ITEM_SHOAL_SALT - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull - setmetatile 31, 8, METATILE_Cave_ShoalCave_DirtPile_Small, 0 + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull + setmetatile 31, 8, METATILE_Cave_ShoalCave_DirtPile_Small, FALSE special DrawWholeMapView setflag FLAG_RECEIVED_SHOAL_SALT_1 releaseall @@ -133,9 +128,8 @@ ShoalCave_LowTideInnerRoom_EventScript_ShoalSalt2:: lockall goto_if_set FLAG_RECEIVED_SHOAL_SALT_2, ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalSalt giveitem ITEM_SHOAL_SALT - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull - setmetatile 14, 26, METATILE_Cave_ShoalCave_DirtPile_Small, 0 + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull + setmetatile 14, 26, METATILE_Cave_ShoalCave_DirtPile_Small, FALSE special DrawWholeMapView setflag FLAG_RECEIVED_SHOAL_SALT_2 releaseall diff --git a/data/maps/ShoalCave_LowTideLowerRoom/scripts.inc b/data/maps/ShoalCave_LowTideLowerRoom/scripts.inc index d7937998ee..a06d46cc2a 100644 --- a/data/maps/ShoalCave_LowTideLowerRoom/scripts.inc +++ b/data/maps/ShoalCave_LowTideLowerRoom/scripts.inc @@ -8,7 +8,7 @@ ShoalCave_LowTideLowerRoom_OnLoad: ShoalCave_LowTideLowerRoom_EventScript_SetShoalItemMetatiles:: goto_if_set FLAG_RECEIVED_SHOAL_SALT_4, ShoalCave_LowTideLowerRoom_EventScript_SetShoalItemMetatilesEnd - setmetatile 18, 2, METATILE_Cave_ShoalCave_DirtPile_Large, 1 + setmetatile 18, 2, METATILE_Cave_ShoalCave_DirtPile_Large, TRUE return ShoalCave_LowTideLowerRoom_EventScript_SetShoalItemMetatilesEnd:: @@ -18,9 +18,8 @@ ShoalCave_LowTideLowerRoom_EventScript_ShoalSalt4:: lockall goto_if_set FLAG_RECEIVED_SHOAL_SALT_4, ShoalCave_LowTideLowerRoom_EventScript_ReceivedShoalSalt giveitem ITEM_SHOAL_SALT - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull - setmetatile 18, 2, METATILE_Cave_ShoalCave_DirtPile_Small, 0 + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull + setmetatile 18, 2, METATILE_Cave_ShoalCave_DirtPile_Small, FALSE special DrawWholeMapView setflag FLAG_RECEIVED_SHOAL_SALT_4 releaseall @@ -37,8 +36,7 @@ ShoalCave_LowTideLowerRoom_EventScript_BlackBelt:: goto_if_set FLAG_RECEIVED_FOCUS_BAND, ShoalCave_LowTideLowerRoom_EventScript_ReceivedFocusBand msgbox ShoalCave_LowTideLowerRoom_Text_CanOvercomeColdWithFocus, MSGBOX_DEFAULT giveitem ITEM_FOCUS_BAND - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_FOCUS_BAND release end diff --git a/data/maps/ShoalCave_LowTideStairsRoom/scripts.inc b/data/maps/ShoalCave_LowTideStairsRoom/scripts.inc index a778a18e11..655711e9c6 100644 --- a/data/maps/ShoalCave_LowTideStairsRoom/scripts.inc +++ b/data/maps/ShoalCave_LowTideStairsRoom/scripts.inc @@ -8,7 +8,7 @@ ShoalCave_LowTideStairsRoom_OnLoad: ShoalCave_LowTideStairsRoom_EventScript_SetShoalItemMetatiles:: goto_if_set FLAG_RECEIVED_SHOAL_SALT_3, ShoalCave_LowTideStairsRoom_EventScript_SetShoalItemMetatilesEnd - setmetatile 11, 11, METATILE_Cave_ShoalCave_DirtPile_Large, 1 + setmetatile 11, 11, METATILE_Cave_ShoalCave_DirtPile_Large, TRUE return ShoalCave_LowTideStairsRoom_EventScript_SetShoalItemMetatilesEnd:: @@ -18,9 +18,8 @@ ShoalCave_LowTideStairsRoom_EventScript_ShoalSalt3:: lockall goto_if_set FLAG_RECEIVED_SHOAL_SALT_3, ShoalCave_LowTideStairsRoom_EventScript_ReceivedShoalSalt giveitem ITEM_SHOAL_SALT - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull - setmetatile 11, 11, METATILE_Cave_ShoalCave_DirtPile_Small, 0 + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull + setmetatile 11, 11, METATILE_Cave_ShoalCave_DirtPile_Small, FALSE special DrawWholeMapView setflag FLAG_RECEIVED_SHOAL_SALT_3 releaseall diff --git a/data/maps/SkyPillar_1F/scripts.inc b/data/maps/SkyPillar_1F/scripts.inc index 3ef94b261c..b521b541c1 100644 --- a/data/maps/SkyPillar_1F/scripts.inc +++ b/data/maps/SkyPillar_1F/scripts.inc @@ -3,8 +3,7 @@ SkyPillar_1F_MapScripts:: .byte 0 SkyPillar_1F_OnTransition: - compare VAR_SKY_PILLAR_STATE, 2 - call_if_lt SkyPillar_1F_EventScript_CleanFloor + call_if_lt VAR_SKY_PILLAR_STATE, 2, SkyPillar_1F_EventScript_CleanFloor end SkyPillar_1F_EventScript_CleanFloor:: diff --git a/data/maps/SkyPillar_2F/scripts.inc b/data/maps/SkyPillar_2F/scripts.inc index 9990ebba96..bad2488f0b 100644 --- a/data/maps/SkyPillar_2F/scripts.inc +++ b/data/maps/SkyPillar_2F/scripts.inc @@ -5,8 +5,7 @@ SkyPillar_2F_MapScripts:: .byte 0 SkyPillar_2F_OnTransition: - compare VAR_SKY_PILLAR_STATE, 2 - call_if_lt SkyPillar_2F_EventScript_CleanFloor + call_if_lt VAR_SKY_PILLAR_STATE, 2, SkyPillar_2F_EventScript_CleanFloor copyvar VAR_ICE_STEP_COUNT, 1 end @@ -16,6 +15,6 @@ SkyPillar_2F_EventScript_CleanFloor:: SkyPillar_2F_SetHoleWarp: setstepcallback STEP_CB_CRACKED_FLOOR - setholewarp MAP_SKY_PILLAR_1F, 255, 0, 0 + setholewarp MAP_SKY_PILLAR_1F end diff --git a/data/maps/SkyPillar_3F/scripts.inc b/data/maps/SkyPillar_3F/scripts.inc index 681137df08..07ef3bb449 100644 --- a/data/maps/SkyPillar_3F/scripts.inc +++ b/data/maps/SkyPillar_3F/scripts.inc @@ -3,8 +3,7 @@ SkyPillar_3F_MapScripts:: .byte 0 SkyPillar_3F_OnTransition: - compare VAR_SKY_PILLAR_STATE, 2 - call_if_lt SkyPillar_3F_EventScript_CleanFloor + call_if_lt VAR_SKY_PILLAR_STATE, 2, SkyPillar_3F_EventScript_CleanFloor end SkyPillar_3F_EventScript_CleanFloor:: diff --git a/data/maps/SkyPillar_4F/scripts.inc b/data/maps/SkyPillar_4F/scripts.inc index bed91a1751..9e8f1e80ea 100644 --- a/data/maps/SkyPillar_4F/scripts.inc +++ b/data/maps/SkyPillar_4F/scripts.inc @@ -5,8 +5,7 @@ SkyPillar_4F_MapScripts:: .byte 0 SkyPillar_4F_OnTransition: - compare VAR_SKY_PILLAR_STATE, 2 - call_if_lt SkyPillar_4F_EventScript_CleanFloor + call_if_lt VAR_SKY_PILLAR_STATE, 2, SkyPillar_4F_EventScript_CleanFloor copyvar VAR_ICE_STEP_COUNT, 1 end @@ -16,6 +15,6 @@ SkyPillar_4F_EventScript_CleanFloor:: SkyPillar_4F_SetHoleWarp: setstepcallback STEP_CB_CRACKED_FLOOR - setholewarp MAP_SKY_PILLAR_3F, 255, 0, 0 + setholewarp MAP_SKY_PILLAR_3F end diff --git a/data/maps/SkyPillar_5F/scripts.inc b/data/maps/SkyPillar_5F/scripts.inc index 12fc72f493..47d02fb61b 100644 --- a/data/maps/SkyPillar_5F/scripts.inc +++ b/data/maps/SkyPillar_5F/scripts.inc @@ -3,8 +3,7 @@ SkyPillar_5F_MapScripts:: .byte 0 SkyPillar_5F_OnTransition: - compare VAR_SKY_PILLAR_STATE, 2 - call_if_lt SkyPillar_5F_EventScript_CleanFloor + call_if_lt VAR_SKY_PILLAR_STATE, 2, SkyPillar_5F_EventScript_CleanFloor return SkyPillar_5F_EventScript_CleanFloor:: diff --git a/data/maps/SkyPillar_Outside/scripts.inc b/data/maps/SkyPillar_Outside/scripts.inc index 9ffcd2de73..f25c82df65 100644 --- a/data/maps/SkyPillar_Outside/scripts.inc +++ b/data/maps/SkyPillar_Outside/scripts.inc @@ -7,10 +7,8 @@ SkyPillar_Outside_MapScripts:: .byte 0 SkyPillar_Outside_OnTransition: - compare VAR_SOOTOPOLIS_CITY_STATE, 3 - call_if_eq SkyPillar_Outside_EventScript_HideMapNamePopup - compare VAR_SOOTOPOLIS_CITY_STATE, 4 - call_if_ge SkyPillar_Outside_EventScript_CheckSetAbnormalWeather + call_if_eq VAR_SOOTOPOLIS_CITY_STATE, 3, SkyPillar_Outside_EventScript_HideMapNamePopup + call_if_ge VAR_SOOTOPOLIS_CITY_STATE, 4, SkyPillar_Outside_EventScript_CheckSetAbnormalWeather end SkyPillar_Outside_EventScript_HideMapNamePopup:: @@ -26,8 +24,8 @@ SkyPillar_Outside_OnLoad: end SkyPillar_Outside_EventScript_OpenDoor:: - setmetatile 14, 4, METATILE_Pacifidlog_SkyPillar_DoorOpen_Top, 0 - setmetatile 14, 5, METATILE_Pacifidlog_SkyPillar_DoorOpen_Bottom, 0 + setmetatile 14, 4, METATILE_Pacifidlog_SkyPillar_DoorOpen_Top, FALSE + setmetatile 14, 5, METATILE_Pacifidlog_SkyPillar_DoorOpen_Bottom, FALSE return SkyPillar_Outside_OnFrame: diff --git a/data/maps/SkyPillar_Top/scripts.inc b/data/maps/SkyPillar_Top/scripts.inc index 2b3c021200..7b65d9e257 100644 --- a/data/maps/SkyPillar_Top/scripts.inc +++ b/data/maps/SkyPillar_Top/scripts.inc @@ -12,16 +12,13 @@ SkyPillar_Top_OnResume: SkyPillar_Top_EventScript_TryRemoveRayquaza:: specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_CAUGHT - goto_if_ne Common_EventScript_NopReturn + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn removeobject VAR_LAST_TALKED return SkyPillar_Top_OnTransition: - compare VAR_SKY_PILLAR_STATE, 2 - call_if_lt SkyPillar_Top_EventScript_SetCleanLayout - compare VAR_SKY_PILLAR_STATE, 2 - call_if_ge SkyPillar_Top_EventScript_TryShowRayquaza + call_if_lt VAR_SKY_PILLAR_STATE, 2, SkyPillar_Top_EventScript_SetCleanLayout + call_if_ge VAR_SKY_PILLAR_STATE, 2, SkyPillar_Top_EventScript_TryShowRayquaza end SkyPillar_Top_EventScript_SetCleanLayout:: @@ -51,18 +48,15 @@ SkyPillar_Top_EventScript_Rayquaza:: playmoncry SPECIES_RAYQUAZA, CRY_MODE_ENCOUNTER delay 40 waitmoncry - setwildbattle SPECIES_RAYQUAZA, 70, ITEM_NONE + setwildbattle SPECIES_RAYQUAZA, 70 setflag FLAG_SYS_CTRL_OBJ_DELETE special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq SkyPillar_Top_EventScript_DefeatedRayquaza - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq SkyPillar_Top_EventScript_RanFromRayquaza - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq SkyPillar_Top_EventScript_RanFromRayquaza + goto_if_eq VAR_RESULT, B_OUTCOME_WON, SkyPillar_Top_EventScript_DefeatedRayquaza + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, SkyPillar_Top_EventScript_RanFromRayquaza + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, SkyPillar_Top_EventScript_RanFromRayquaza setflag FLAG_DEFEATED_RAYQUAZA releaseall end @@ -88,7 +82,7 @@ SkyPillar_Top_EventScript_RanFromRayquaza2:: fadescreenswapbuffers FADE_TO_BLACK removeobject VAR_LAST_TALKED fadescreenswapbuffers FADE_FROM_BLACK - bufferspeciesname 0, VAR_0x8004 + bufferspeciesname STR_VAR_1, VAR_0x8004 msgbox gText_LegendaryFlewAway, MSGBOX_DEFAULT releaseall end diff --git a/data/maps/SlateportCity/scripts.inc b/data/maps/SlateportCity/scripts.inc index 3e8648531f..653f405c45 100644 --- a/data/maps/SlateportCity/scripts.inc +++ b/data/maps/SlateportCity/scripts.inc @@ -19,6 +19,8 @@ .set LOCALID_GRUNT_11, 33 .set LOCALID_SCOTT, 35 +@ Note: LOCALID_SLATEPORT_ENERGY_GURU is a local id for this map used elsewhere. It's defined in event_objects.h + SlateportCity_MapScripts:: map_script MAP_SCRIPT_ON_TRANSITION, SlateportCity_OnTransition map_script MAP_SCRIPT_ON_FRAME_TABLE, SlateportCity_OnFrame @@ -27,10 +29,8 @@ SlateportCity_MapScripts:: SlateportCity_OnTransition: setvar VAR_SLATEPORT_MUSEUM_1F_STATE, 0 call SlateportCity_EventScript_EnterSlateport - compare VAR_SLATEPORT_CITY_STATE, 1 - call_if_eq SlateportCity_EventScript_MovePeopleForSternInterview - compare VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE, 1 - call_if_eq SlateportCity_EventScript_SetReadyForScottScene + call_if_eq VAR_SLATEPORT_CITY_STATE, 1, SlateportCity_EventScript_MovePeopleForSternInterview + call_if_eq VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE, 1, SlateportCity_EventScript_SetReadyForScottScene end SlateportCity_EventScript_EnterSlateport:: @@ -59,8 +59,7 @@ SlateportCity_EventScript_MovePeopleForSternInterview:: SlateportCity_EventScript_SetReadyForScottScene:: setflag FLAG_HIDE_MAP_NAME_POPUP getplayerxy VAR_0x8004, VAR_0x8005 - compare VAR_0x8004, 30 - goto_if_eq SlateportCity_EventScript_MoveScottLeft + goto_if_eq VAR_0x8004, 30, SlateportCity_EventScript_MoveScottLeft setobjectxyperm LOCALID_SCOTT, 23, 27 setobjectmovementtype LOCALID_SCOTT, MOVEMENT_TYPE_FACE_RIGHT return @@ -162,14 +161,12 @@ SlateportCity_Pokemart_EnergyGuru: SlateportCity_EventScript_EffortRibbonWoman:: lock faceplayer - bufferleadmonspeciesname 0 + bufferleadmonspeciesname STR_VAR_1 msgbox SlateportCity_Text_OhYourPokemon, MSGBOX_DEFAULT specialvar VAR_RESULT, LeadMonHasEffortRibbon - compare VAR_RESULT, TRUE - call_if_eq SlateportCity_EventScript_MonHasEffortRibbon + call_if_eq VAR_RESULT, TRUE, SlateportCity_EventScript_MonHasEffortRibbon specialvar VAR_RESULT, Special_AreLeadMonEVsMaxedOut - compare VAR_RESULT, FALSE - call_if_eq SlateportCity_EventScript_MonEVsNotMaxed + call_if_eq VAR_RESULT, FALSE, SlateportCity_EventScript_MonEVsNotMaxed msgbox SlateportCity_Text_PleaseGiveItThisEffortRibbon, MSGBOX_DEFAULT playfanfare MUS_OBTAIN_ITEM message SlateportCity_Text_ReceivedEffortRibbon @@ -192,8 +189,7 @@ SlateportCity_EventScript_MonHasEffortRibbon:: SlateportCity_EventScript_Cook:: lock faceplayer - compare VAR_SLATEPORT_CITY_STATE, 1 - call_if_eq SlateportCity_EventScript_CookSternInterview + call_if_eq VAR_SLATEPORT_CITY_STATE, 1, SlateportCity_EventScript_CookSternInterview msgbox SlateportCity_Text_SeaweedFullOfLife, MSGBOX_DEFAULT release end @@ -206,8 +202,7 @@ SlateportCity_EventScript_CookSternInterview:: SlateportCity_EventScript_OldWoman:: lock faceplayer - compare VAR_SLATEPORT_CITY_STATE, 1 - call_if_eq SlateportCity_EventScript_OldWomanSternInterview + call_if_eq VAR_SLATEPORT_CITY_STATE, 1, SlateportCity_EventScript_OldWomanSternInterview msgbox SlateportCity_Text_HowTownIsBornAndGrows, MSGBOX_DEFAULT release end @@ -220,8 +215,7 @@ SlateportCity_EventScript_OldWomanSternInterview:: SlateportCity_EventScript_Girl:: lock faceplayer - compare VAR_SLATEPORT_CITY_STATE, 1 - call_if_eq SlateportCity_EventScript_GirlSternInterview + call_if_eq VAR_SLATEPORT_CITY_STATE, 1, SlateportCity_EventScript_GirlSternInterview goto_if_set FLAG_RECEIVED_SECRET_POWER, SlateportCity_EventScript_GirlSecretBase msgbox SlateportCity_Text_SlateportWonderfulPlace, MSGBOX_DEFAULT release @@ -240,8 +234,7 @@ SlateportCity_EventScript_GirlSecretBase:: SlateportCity_EventScript_RichBoy:: lock faceplayer - compare VAR_SLATEPORT_CITY_STATE, 1 - call_if_eq SlateportCity_EventScript_RichBoySternInterview + call_if_eq VAR_SLATEPORT_CITY_STATE, 1, SlateportCity_EventScript_RichBoySternInterview msgbox SlateportCity_Text_GoingToCompeteInBattleTent, MSGBOX_DEFAULT release end @@ -252,8 +245,7 @@ SlateportCity_EventScript_RichBoySternInterview:: end SlateportCity_EventScript_FatMan:: - compare VAR_SLATEPORT_CITY_STATE, 1 - goto_if_eq SlateportCity_EventScript_FatManSternInterview + goto_if_eq VAR_SLATEPORT_CITY_STATE, 1, SlateportCity_EventScript_FatManSternInterview msgbox SlateportCity_Text_BushedHikingFromMauville, MSGBOX_NPC end @@ -264,8 +256,7 @@ SlateportCity_EventScript_FatManSternInterview:: SlateportCity_EventScript_Man1:: lock faceplayer - compare VAR_SLATEPORT_CITY_STATE, 1 - call_if_eq SlateportCity_EventScript_Man1SternInterview + call_if_eq VAR_SLATEPORT_CITY_STATE, 1, SlateportCity_EventScript_Man1SternInterview msgbox SlateportCity_Text_EveryoneCallsHimCaptStern, MSGBOX_DEFAULT release end @@ -345,8 +336,7 @@ SlateportCity_EventScript_NameRatersHouseSign:: SlateportCity_EventScript_Maniac:: lock faceplayer - compare VAR_SLATEPORT_CITY_STATE, 1 - call_if_eq SlateportCity_EventScript_ManiacSternInterview + call_if_eq VAR_SLATEPORT_CITY_STATE, 1, SlateportCity_EventScript_ManiacSternInterview msgbox SlateportCity_Text_GetNameRaterToHelpYou, MSGBOX_DEFAULT release end @@ -635,7 +625,7 @@ SlateportCity_EventScript_CaptStern:: clearflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_AQUA_GRUNT clearflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_ARCHIE setvar VAR_SLATEPORT_CITY_STATE, 2 - warp MAP_SLATEPORT_CITY_HARBOR, 255, 11, 14 + warp MAP_SLATEPORT_CITY_HARBOR, 11, 14 waitstate releaseall end @@ -758,8 +748,7 @@ SlateportCity_EventScript_BerryPowderClerk:: SlateportCity_EventScript_ReceivedPowderJar:: setvar VAR_0x8004, 1 specialvar VAR_RESULT, HasEnoughBerryPowder - compare VAR_RESULT, FALSE - goto_if_eq SlateportCity_EventScript_ExplainBerryPowder + goto_if_eq VAR_RESULT, FALSE, SlateportCity_EventScript_ExplainBerryPowder msgbox SlateportCity_Text_BroughtMeSomeBerryPowder, MSGBOX_DEFAULT special DisplayBerryPowderVendorMenu goto SlateportCity_EventScript_ChooseBerryPowderItem @@ -793,77 +782,77 @@ SlateportCity_EventScript_ChooseBerryPowderItem:: end SlateportCity_EventScript_EnergyPowder:: - bufferitemname 0, ITEM_ENERGY_POWDER + bufferitemname STR_VAR_1, ITEM_ENERGY_POWDER setvar VAR_0x8008, ITEM_ENERGY_POWDER setvar VAR_0x8009, 50 goto SlateportCity_EventScript_TryBuyBerryPowderItem end SlateportCity_EventScript_EnergyRoot:: - bufferitemname 0, ITEM_ENERGY_ROOT + bufferitemname STR_VAR_1, ITEM_ENERGY_ROOT setvar VAR_0x8008, ITEM_ENERGY_ROOT setvar VAR_0x8009, 80 goto SlateportCity_EventScript_TryBuyBerryPowderItem end SlateportCity_EventScript_HealPowder:: - bufferitemname 0, ITEM_HEAL_POWDER + bufferitemname STR_VAR_1, ITEM_HEAL_POWDER setvar VAR_0x8008, ITEM_HEAL_POWDER setvar VAR_0x8009, 50 goto SlateportCity_EventScript_TryBuyBerryPowderItem end SlateportCity_EventScript_RevivalHerb:: - bufferitemname 0, ITEM_REVIVAL_HERB + bufferitemname STR_VAR_1, ITEM_REVIVAL_HERB setvar VAR_0x8008, ITEM_REVIVAL_HERB setvar VAR_0x8009, 300 goto SlateportCity_EventScript_TryBuyBerryPowderItem end SlateportCity_EventScript_Protein:: - bufferitemname 0, ITEM_PROTEIN + bufferitemname STR_VAR_1, ITEM_PROTEIN setvar VAR_0x8008, ITEM_PROTEIN setvar VAR_0x8009, 1000 goto SlateportCity_EventScript_TryBuyBerryPowderItem end SlateportCity_EventScript_Iron:: - bufferitemname 0, ITEM_IRON + bufferitemname STR_VAR_1, ITEM_IRON setvar VAR_0x8008, ITEM_IRON setvar VAR_0x8009, 1000 goto SlateportCity_EventScript_TryBuyBerryPowderItem end SlateportCity_EventScript_Carbos:: - bufferitemname 0, ITEM_CARBOS + bufferitemname STR_VAR_1, ITEM_CARBOS setvar VAR_0x8008, ITEM_CARBOS setvar VAR_0x8009, 1000 goto SlateportCity_EventScript_TryBuyBerryPowderItem end SlateportCity_EventScript_Calcium:: - bufferitemname 0, ITEM_CALCIUM + bufferitemname STR_VAR_1, ITEM_CALCIUM setvar VAR_0x8008, ITEM_CALCIUM setvar VAR_0x8009, 1000 goto SlateportCity_EventScript_TryBuyBerryPowderItem end SlateportCity_EventScript_Zinc:: - bufferitemname 0, ITEM_ZINC + bufferitemname STR_VAR_1, ITEM_ZINC setvar VAR_0x8008, ITEM_ZINC setvar VAR_0x8009, 1000 goto SlateportCity_EventScript_TryBuyBerryPowderItem end SlateportCity_EventScript_HPUp:: - bufferitemname 0, ITEM_HP_UP + bufferitemname STR_VAR_1, ITEM_HP_UP setvar VAR_0x8008, ITEM_HP_UP setvar VAR_0x8009, 1000 goto SlateportCity_EventScript_TryBuyBerryPowderItem end SlateportCity_EventScript_PPUp:: - bufferitemname 0, ITEM_PP_UP + bufferitemname STR_VAR_1, ITEM_PP_UP setvar VAR_0x8008, ITEM_PP_UP setvar VAR_0x8009, 3000 goto SlateportCity_EventScript_TryBuyBerryPowderItem @@ -877,21 +866,17 @@ SlateportCity_EventScript_CancelPowderItemSelect:: SlateportCity_EventScript_TryBuyBerryPowderItem:: msgbox SlateportCity_Text_ExchangeBerryPowderForItem, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SlateportCity_EventScript_ChooseBerryPowderItem + goto_if_eq VAR_RESULT, NO, SlateportCity_EventScript_ChooseBerryPowderItem copyvar VAR_0x8004, VAR_0x8009 specialvar VAR_RESULT, HasEnoughBerryPowder - compare VAR_RESULT, FALSE - goto_if_eq SlateportCity_EventScript_NotEnoughBerryPowder + goto_if_eq VAR_RESULT, FALSE, SlateportCity_EventScript_NotEnoughBerryPowder giveitem VAR_0x8008 - compare VAR_RESULT, FALSE - goto_if_eq SlateportCity_EventScript_NoRoomForBerryPowderItem + goto_if_eq VAR_RESULT, FALSE, SlateportCity_EventScript_NoRoomForBerryPowderItem copyvar VAR_0x8004, VAR_0x8009 special TakeBerryPowder special PrintPlayerBerryPowderAmount msgbox SlateportCity_Text_FineBerryPowderTradeSomethingElse, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq SlateportCity_EventScript_ChooseBerryPowderItem + goto_if_eq VAR_RESULT, YES, SlateportCity_EventScript_ChooseBerryPowderItem msgbox SlateportCity_Text_WhenYouGetMoreBringItToMe, MSGBOX_DEFAULT special RemoveBerryPowderVendorMenu release diff --git a/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc b/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc index 06052e1451..53514bb5e9 100644 --- a/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc +++ b/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc @@ -16,10 +16,8 @@ SlateportCity_BattleTentBattleRoom_OnTransition: SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfx:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfxMale - compare VAR_RESULT, FEMALE - goto_if_eq SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale + goto_if_eq VAR_RESULT, MALE, SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfxMale + goto_if_eq VAR_RESULT, FEMALE, SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale return SlateportCity_BattleTentBattleRoom_EventScript_SetPlayerGfxMale:: @@ -68,7 +66,7 @@ SlateportCity_BattleTentBattleRoom_EventScript_EnterRoom:: SlateportCity_BattleTent_EventScript_WarpToLobbyLost:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST special LoadPlayerParty - warp MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY, 255, 6, 6 + warp MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY, 6, 6 waitstate @ forced stop @@ -79,14 +77,14 @@ SlateportCity_BattleTentBattleRoom_EventScript_DefeatedOpponent:: switch VAR_RESULT case 3, SlateportCity_BattleTentBattleRoom_EventScript_WarpToLobbyWon setvar VAR_0x8006, 1 - warp MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR, 255, 2, 3 + warp MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR, 2, 3 waitstate @ forced stop SlateportCity_BattleTentBattleRoom_EventScript_WarpToLobbyWon:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON special LoadPlayerParty - warp MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY, 255, 6, 6 + warp MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY, 6, 6 waitstate @ forced stop diff --git a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc index 37b0f6fc88..75156f68f0 100644 --- a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc +++ b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc @@ -13,8 +13,7 @@ SlateportCity_BattleTentCorridor_OnWarp: SlateportCity_BattleTentCorridor_EventScript_SetUpObjects:: setvar VAR_TEMP_1, 1 - compare VAR_0x8006, 1 - goto_if_ne SlateportCity_BattleTentCorridor_EventScript_TurnPlayerNorth + goto_if_ne VAR_0x8006, 1, SlateportCity_BattleTentCorridor_EventScript_TurnPlayerNorth setobjectxy LOCALID_ATTENDANT, 2, 2 turnobject LOCALID_ATTENDANT, DIR_SOUTH SlateportCity_BattleTentCorridor_EventScript_TurnPlayerNorth:: @@ -26,14 +25,12 @@ SlateportCity_BattleTentCorridor_OnFrame: .2byte 0 SlateportCity_BattleTentCorridor_EventScript_EnterCorridor:: - compare VAR_0x8006, 1 - goto_if_eq SlateportCity_BattleTentCorridor_EventScript_ReturnToRoomFromBattle + goto_if_eq VAR_0x8006, 1, SlateportCity_BattleTentCorridor_EventScript_ReturnToRoomFromBattle setvar VAR_TEMP_0, 1 applymovement LOCALID_ATTENDANT, SlateportCity_BattleTentCorridor_Movement_AttendantEnter applymovement OBJ_EVENT_ID_PLAYER, SlateportCity_BattleTentCorridor_Movement_PlayerEnter waitmovement 0 - compare VAR_0x8006, 2 - goto_if_eq SlateportCity_BattleTentCorridor_EventScript_ResumeChallenge + goto_if_eq VAR_0x8006, 2, SlateportCity_BattleTentCorridor_EventScript_ResumeChallenge slateporttent_generaterentalmons slateporttent_generateopponentmons msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_HoldMonsChooseFromSelection, MSGBOX_DEFAULT @@ -52,7 +49,7 @@ SlateportCity_BattleTentCorridor_EventScript_EnterBattleRoom:: waitmovement 0 closedoor 2, 1 waitdooranim - warp MAP_SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM, 255, 4, 4 + warp MAP_SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM, 4, 4 waitstate end @@ -65,10 +62,8 @@ SlateportCity_BattleTentCorridor_EventScript_ReturnToRoomFromBattle:: special HealPlayerParty SlateportCity_BattleTentCorridor_EventScript_AskReadyForOpponent:: frontier_get FRONTIER_DATA_BATTLE_NUM - compare VAR_RESULT, 1 - call_if_eq SlateportCity_BattleTentCorridor_EventScript_ReadyFor2ndOpponent - compare VAR_RESULT, 2 - call_if_eq SlateportCity_BattleTentCorridor_EventScript_ReadyFor3rdOpponent + call_if_eq VAR_RESULT, 1, SlateportCity_BattleTentCorridor_EventScript_ReadyFor2ndOpponent + call_if_eq VAR_RESULT, 2, SlateportCity_BattleTentCorridor_EventScript_ReadyFor3rdOpponent multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE switch VAR_RESULT case 0, SlateportCity_BattleTentCorridor_EventScript_AskSwapMon @@ -103,8 +98,7 @@ SlateportCity_BattleTentCorridor_EventScript_SwapMons:: fadescreen FADE_TO_BLACK slateporttent_swapmons waitstate - compare VAR_RESULT, 1 - goto_if_eq SlateportCity_BattleTentCorridor_EventScript_EnterBattleRoom + goto_if_eq VAR_RESULT, 1, SlateportCity_BattleTentCorridor_EventScript_EnterBattleRoom msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_YourSwapIsComplete, MSGBOX_DEFAULT goto SlateportCity_BattleTentCorridor_EventScript_EnterBattleRoom diff --git a/data/maps/SlateportCity_BattleTentLobby/scripts.inc b/data/maps/SlateportCity_BattleTentLobby/scripts.inc index 8361cdfcc3..0d3fae875f 100644 --- a/data/maps/SlateportCity_BattleTentLobby/scripts.inc +++ b/data/maps/SlateportCity_BattleTentLobby/scripts.inc @@ -93,8 +93,7 @@ SlateportCity_BattleTentLobby_EventScript_Attendant:: lock faceplayer slateporttent_getprize - compare VAR_RESULT, ITEM_NONE - goto_if_ne SlateportCity_BattleTentLobby_EventScript_GivePrize + goto_if_ne VAR_RESULT, ITEM_NONE, SlateportCity_BattleTentLobby_EventScript_GivePrize special SavePlayerParty msgbox SlateportCity_BattleTentLobby_Text_WelcomeToBattleTent, MSGBOX_DEFAULT SlateportCity_BattleTentLobby_EventScript_AskEnterChallenge:: @@ -127,14 +126,13 @@ SlateportCity_BattleTentLobby_EventScript_SaveBeforeChallenge:: delay 2 call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 - compare VAR_RESULT, 0 - goto_if_eq SlateportCity_BattleTentLobby_EventScript_CancelChallengeSaveFailed + goto_if_eq VAR_RESULT, 0, SlateportCity_BattleTentLobby_EventScript_CancelChallengeSaveFailed setvar VAR_0x8006, 0 SlateportCity_BattleTentLobby_EventScript_EnterChallenge:: msgbox SlateportCity_BattleTentLobby_Text_StepThisWay, MSGBOX_DEFAULT closemessage call SlateportCity_BattleTentLobby_EventScript_WalkToDoor - warp MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR, 255, 2, 7 + warp MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR, 2, 7 setvar VAR_TEMP_0, 0 waitstate end @@ -204,8 +202,7 @@ SlateportCity_BattleTentLobby_EventScript_TormentGiver:: goto_if_set FLAG_RECEIVED_TM41, SlateportCity_BattleTentLobby_EventScript_ReceivedTorment msgbox SlateportCity_BattleTentLobby_Text_CouldntFindMonForMe, MSGBOX_DEFAULT giveitem ITEM_TM41 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM41 msgbox SlateportCity_BattleTentLobby_Text_ExplainTorment, MSGBOX_DEFAULT release diff --git a/data/maps/SlateportCity_Harbor/scripts.inc b/data/maps/SlateportCity_Harbor/scripts.inc index 58e5978cf0..b2a71f2b7c 100644 --- a/data/maps/SlateportCity_Harbor/scripts.inc +++ b/data/maps/SlateportCity_Harbor/scripts.inc @@ -9,10 +9,9 @@ SlateportCity_Harbor_MapScripts:: .byte 0 SlateportCity_Harbor_OnTransition: - setescapewarp MAP_SLATEPORT_CITY, 255, 28, 13 + setescapewarp MAP_SLATEPORT_CITY, 28, 13 setvar VAR_TEMP_1, 0 - compare VAR_SLATEPORT_HARBOR_STATE, 1 - call_if_eq SlateportCity_Harbor_EventScript_ReadyAquaEscapeScene + call_if_eq VAR_SLATEPORT_HARBOR_STATE, 1, SlateportCity_Harbor_EventScript_ReadyAquaEscapeScene call_if_set FLAG_SYS_GAME_CLEAR, SlateportCity_Harbor_EventScript_ShowSSTidal end @@ -71,14 +70,10 @@ SlateportCity_Harbor_EventScript_AquaEscapeScene:: setvar VAR_SLATEPORT_HARBOR_STATE, 2 setflag FLAG_MET_TEAM_AQUA_HARBOR setflag FLAG_HIDE_LILYCOVE_MOTEL_SCOTT - compare VAR_0x8008, 0 - call_if_eq SlateportCity_Harbor_EventScript_SternApproachPlayer0 - compare VAR_0x8008, 1 - call_if_eq SlateportCity_Harbor_EventScript_SternApproachPlayer1 - compare VAR_0x8008, 2 - call_if_eq SlateportCity_Harbor_EventScript_SternApproachPlayer - compare VAR_0x8008, 3 - call_if_eq SlateportCity_Harbor_EventScript_SternApproachPlayer + call_if_eq VAR_0x8008, 0, SlateportCity_Harbor_EventScript_SternApproachPlayer0 + call_if_eq VAR_0x8008, 1, SlateportCity_Harbor_EventScript_SternApproachPlayer1 + call_if_eq VAR_0x8008, 2, SlateportCity_Harbor_EventScript_SternApproachPlayer + call_if_eq VAR_0x8008, 3, SlateportCity_Harbor_EventScript_SternApproachPlayer msgbox SlateportCity_Harbor_Text_CaptSternWhyStealMySubmarine, MSGBOX_DEFAULT closemessage setflag FLAG_HIDE_AQUA_HIDEOUT_1F_GRUNT_1_BLOCKING_ENTRANCE @@ -206,21 +201,19 @@ SlateportCity_Harbor_EventScript_NoTicket:: SlateportCity_Harbor_EventScript_Lilycove:: msgbox SlateportCity_Harbor_Text_LilycoveItIs, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SlateportCity_Harbor_EventScript_ChooseNewDestination + goto_if_eq VAR_RESULT, NO, SlateportCity_Harbor_EventScript_ChooseNewDestination setvar VAR_SS_TIDAL_STATE, SS_TIDAL_BOARD_SLATEPORT call SlateportCity_Harbor_EventScript_BoardFerry - warp MAP_SS_TIDAL_CORRIDOR, 255, 1, 10 + warp MAP_SS_TIDAL_CORRIDOR, 1, 10 waitstate release end SlateportCity_Harbor_EventScript_BattleFrontier:: msgbox SlateportCity_Harbor_Text_BattleFrontierItIs, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SlateportCity_Harbor_EventScript_ChooseNewDestination + goto_if_eq VAR_RESULT, NO, SlateportCity_Harbor_EventScript_ChooseNewDestination call SlateportCity_Harbor_EventScript_BoardFerry - warp MAP_BATTLE_FRONTIER_OUTSIDE_WEST, 255, 19, 67 + warp MAP_BATTLE_FRONTIER_OUTSIDE_WEST, 19, 67 waitstate release end @@ -238,10 +231,8 @@ SlateportCity_Harbor_EventScript_BoardFerry:: waitmovement 0 delay 30 hideobjectat VAR_LAST_TALKED, MAP_SLATEPORT_CITY_HARBOR - compare VAR_FACING, DIR_NORTH - call_if_eq SlateportCity_Harbor_EventScript_BoardFerryNorth - compare VAR_FACING, DIR_EAST - call_if_eq SlateportCity_Harbor_EventScript_BoardFerryEast + call_if_eq VAR_FACING, DIR_NORTH, SlateportCity_Harbor_EventScript_BoardFerryNorth + call_if_eq VAR_FACING, DIR_EAST, SlateportCity_Harbor_EventScript_BoardFerryEast delay 30 hideobjectat OBJ_EVENT_ID_PLAYER, 0 setvar VAR_0x8004, LOCALID_SS_TIDAL @@ -279,8 +270,7 @@ SlateportCity_Harbor_EventScript_Sailor:: setvar VAR_0x8004, 0 call_if_set FLAG_DEFEATED_KYOGRE, SlateportCity_Harbor_EventScript_CountDefeatedLegendary call_if_set FLAG_DEFEATED_GROUDON, SlateportCity_Harbor_EventScript_CountDefeatedLegendary - compare VAR_0x8004, 2 @ Defeated both - goto_if_eq SlateportCity_Harbor_EventScript_SailorNoAbnormalWeather + goto_if_eq VAR_0x8004, 2, SlateportCity_Harbor_EventScript_SailorNoAbnormalWeather @ Defeated both msgbox SlateportCity_Harbor_Text_AbnormalWeather, MSGBOX_DEFAULT release end @@ -304,8 +294,7 @@ SlateportCity_Harbor_EventScript_CaptStern:: goto_if_set FLAG_BADGE07_GET, SlateportCity_Harbor_EventScript_CaptSternFerryOrScannerComment goto_if_set FLAG_EVIL_TEAM_ESCAPED_STERN_SPOKE, SlateportCity_Harbor_EventScript_NeedDive goto_if_set FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, SlateportCity_Harbor_EventScript_TeamAquaLeftNeedDive - compare VAR_SLATEPORT_HARBOR_STATE, 2 - goto_if_eq SlateportCity_Harbor_EventScript_WhyStealSubmarine + goto_if_eq VAR_SLATEPORT_HARBOR_STATE, 2, SlateportCity_Harbor_EventScript_WhyStealSubmarine msgbox SlateportCity_Harbor_Text_SameThugsTriedToRobAtMuseum, MSGBOX_DEFAULT closemessage applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection @@ -330,11 +319,9 @@ SlateportCity_Harbor_EventScript_NeedDive:: end SlateportCity_Harbor_EventScript_CaptSternFerryOrScannerComment:: - compare VAR_TEMP_1, 1 - goto_if_eq SlateportCity_Harbor_EventScript_TradedScanner - checkitem ITEM_SCANNER, 1 - compare VAR_RESULT, TRUE - goto_if_eq SlateportCity_Harbor_EventScript_AskToTradeScanner + goto_if_eq VAR_TEMP_1, 1, SlateportCity_Harbor_EventScript_TradedScanner + checkitem ITEM_SCANNER + goto_if_eq VAR_RESULT, TRUE, SlateportCity_Harbor_EventScript_AskToTradeScanner goto_if_set FLAG_SYS_GAME_CLEAR, SlateportCity_Harbor_EventScript_FerryFinished msgbox SlateportCity_Harbor_Text_WontBeLongBeforeWeFinishFerry, MSGBOX_DEFAULT release @@ -362,11 +349,9 @@ SlateportCity_Harbor_EventScript_ChooseScannerTrade:: SlateportCity_Harbor_EventScript_DeepSeaTooth:: msgbox SlateportCity_Harbor_Text_TradeForDeepSeaTooth, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SlateportCity_Harbor_EventScript_ChooseDifferentTrade + goto_if_eq VAR_RESULT, NO, SlateportCity_Harbor_EventScript_ChooseDifferentTrade giveitem ITEM_DEEP_SEA_TOOTH - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull removeitem ITEM_SCANNER msgbox SlateportCity_Harbor_Text_HandedScannerToStern, MSGBOX_DEFAULT setflag FLAG_EXCHANGED_SCANNER @@ -375,11 +360,9 @@ SlateportCity_Harbor_EventScript_DeepSeaTooth:: SlateportCity_Harbor_EventScript_DeepSeaScale:: msgbox SlateportCity_Harbor_Text_TradeForDeepSeaScale, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SlateportCity_Harbor_EventScript_ChooseDifferentTrade + goto_if_eq VAR_RESULT, NO, SlateportCity_Harbor_EventScript_ChooseDifferentTrade giveitem ITEM_DEEP_SEA_SCALE - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull removeitem ITEM_SCANNER msgbox SlateportCity_Harbor_Text_HandedScannerToStern, MSGBOX_DEFAULT setflag FLAG_EXCHANGED_SCANNER diff --git a/data/maps/SlateportCity_NameRatersHouse/scripts.inc b/data/maps/SlateportCity_NameRatersHouse/scripts.inc index 87ed2d07f8..34d788a6aa 100644 --- a/data/maps/SlateportCity_NameRatersHouse/scripts.inc +++ b/data/maps/SlateportCity_NameRatersHouse/scripts.inc @@ -5,20 +5,16 @@ SlateportCity_NameRatersHouse_EventScript_NameRater:: lock faceplayer msgbox SlateportCity_NameRatersHouse_Text_PleasedToRateMonNickname, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq SlateportCity_NameRatersHouse_EventScript_ChooseMonToRate - compare VAR_RESULT, NO - goto_if_eq SlateportCity_NameRatersHouse_EventScript_DeclineNameRate + goto_if_eq VAR_RESULT, YES, SlateportCity_NameRatersHouse_EventScript_ChooseMonToRate + goto_if_eq VAR_RESULT, NO, SlateportCity_NameRatersHouse_EventScript_DeclineNameRate end SlateportCity_NameRatersHouse_EventScript_ChooseMonToRate:: msgbox SlateportCity_NameRatersHouse_Text_CritiqueWhichMonNickname, MSGBOX_DEFAULT special ChoosePartyMon waitstate - compare VAR_0x8004, 255 - goto_if_ne SlateportCity_NameRatersHouse_EventScript_RateMonNickname - compare VAR_0x8004, 255 - goto_if_eq SlateportCity_NameRatersHouse_EventScript_DeclineNameRate + goto_if_ne VAR_0x8004, PARTY_NOTHING_CHOSEN, SlateportCity_NameRatersHouse_EventScript_RateMonNickname + goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, SlateportCity_NameRatersHouse_EventScript_DeclineNameRate end SlateportCity_NameRatersHouse_EventScript_DeclineNameRate:: @@ -28,21 +24,16 @@ SlateportCity_NameRatersHouse_EventScript_DeclineNameRate:: SlateportCity_NameRatersHouse_EventScript_RateMonNickname:: specialvar VAR_RESULT, ScriptGetPartyMonSpecies - compare VAR_RESULT, SPECIES_EGG - goto_if_eq SlateportCity_NameRatersHouse_EventScript_CantRateEgg + goto_if_eq VAR_RESULT, SPECIES_EGG, SlateportCity_NameRatersHouse_EventScript_CantRateEgg special BufferMonNickname special IsMonOTIDNotPlayers - compare VAR_RESULT, TRUE - goto_if_eq SlateportCity_NameRatersHouse_EventScript_PlayerNotMonsOT + goto_if_eq VAR_RESULT, TRUE, SlateportCity_NameRatersHouse_EventScript_PlayerNotMonsOT specialvar VAR_RESULT, MonOTNameNotPlayer special BufferMonNickname - compare VAR_RESULT, TRUE - goto_if_eq SlateportCity_NameRatersHouse_EventScript_PlayerNotMonsOT + goto_if_eq VAR_RESULT, TRUE, SlateportCity_NameRatersHouse_EventScript_PlayerNotMonsOT msgbox SlateportCity_NameRatersHouse_Text_FineNameSuggestBetterOne, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq SlateportCity_NameRatersHouse_EventScript_ChangeNickname - compare VAR_RESULT, NO - goto_if_eq SlateportCity_NameRatersHouse_EventScript_DeclineNameRate + goto_if_eq VAR_RESULT, YES, SlateportCity_NameRatersHouse_EventScript_ChangeNickname + goto_if_eq VAR_RESULT, NO, SlateportCity_NameRatersHouse_EventScript_DeclineNameRate end SlateportCity_NameRatersHouse_EventScript_CantRateEgg:: @@ -60,8 +51,7 @@ SlateportCity_NameRatersHouse_EventScript_ChangeNickname:: call Common_EventScript_NameReceivedPartyMon specialvar VAR_RESULT, TryPutNameRaterShowOnTheAir special BufferMonNickname - compare VAR_RESULT, TRUE - goto_if_eq SlateportCity_NameRatersHouse_EventScript_NewNameDifferent + goto_if_eq VAR_RESULT, TRUE, SlateportCity_NameRatersHouse_EventScript_NewNameDifferent msgbox SlateportCity_NameRatersHouse_Text_NameNoDifferentYetSuperior, MSGBOX_DEFAULT release end diff --git a/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc index cfe547de56..96892f948d 100644 --- a/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc +++ b/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc @@ -22,10 +22,9 @@ SlateportCity_OceanicMuseum_1F_EventScript_PayEntranceFeeRight:: end SlateportCity_OceanicMuseum_1F_EventScript_PayEntranceFee:: - showmoneybox 0, 0, 0 + showmoneybox 0, 0 msgbox SlateportCity_OceanicMuseum_1F_Text_WouldYouLikeToEnter, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_CheckMoneyForFee + goto_if_eq VAR_RESULT, YES, SlateportCity_OceanicMuseum_1F_EventScript_CheckMoneyForFee closemessage hidemoneybox applymovement OBJ_EVENT_ID_PLAYER, SlateportCity_OceanicMuseum_1F_Movement_PushPlayerBackFromCounter @@ -34,12 +33,11 @@ SlateportCity_OceanicMuseum_1F_EventScript_PayEntranceFee:: end SlateportCity_OceanicMuseum_1F_EventScript_CheckMoneyForFee:: - checkmoney 50, 0 - compare VAR_RESULT, FALSE - goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_NotEnoughMoney + checkmoney 50 + goto_if_eq VAR_RESULT, FALSE, SlateportCity_OceanicMuseum_1F_EventScript_NotEnoughMoney playse SE_SHOP - removemoney 50, 0 - updatemoneybox 0, 0 + removemoney 50 + updatemoneybox msgbox SlateportCity_OceanicMuseum_1F_Text_PleaseEnjoyYourself, MSGBOX_DEFAULT setvar VAR_SLATEPORT_MUSEUM_1F_STATE, 1 hidemoneybox @@ -154,19 +152,14 @@ SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGrunt:: waitmovement 0 msgbox SlateportCity_OceanicMuseum_1F_Text_RememberMeTakeThis, MSGBOX_DEFAULT giveitem ITEM_TM46 - compare VAR_RESULT, 0 - goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_NoRoomForThief + goto_if_eq VAR_RESULT, 0, SlateportCity_OceanicMuseum_1F_EventScript_NoRoomForThief setflag FLAG_RECEIVED_TM46 msgbox SlateportCity_OceanicMuseum_1F_Text_HopeINeverSeeYouAgain, MSGBOX_DEFAULT closemessage - compare VAR_FACING, DIR_NORTH - goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExitNorth - compare VAR_FACING, DIR_SOUTH - goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExitSouth - compare VAR_FACING, DIR_WEST - goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExitWestEast - compare VAR_FACING, DIR_EAST - goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExitWestEast + goto_if_eq VAR_FACING, DIR_NORTH, SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExitNorth + goto_if_eq VAR_FACING, DIR_SOUTH, SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExitSouth + goto_if_eq VAR_FACING, DIR_WEST, SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExitWestEast + goto_if_eq VAR_FACING, DIR_EAST, SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExitWestEast end SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExitNorth:: diff --git a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc index b993c9fab1..59131fd7ee 100644 --- a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc +++ b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc @@ -21,22 +21,17 @@ SlateportCity_OceanicMuseum_2F_EventScript_CaptStern:: applymovement LOCALID_GRUNT_1, SlateportCity_OceanicMuseum_2F_Movement_FirstGruntApproach applymovement LOCALID_GRUNT_2, SlateportCity_OceanicMuseum_2F_Movement_SecondGruntApproach waitmovement 0 - compare VAR_FACING, DIR_SOUTH - call_if_eq SlateportCity_OceanicMuseum_2F_EventScript_PlayerFaceGrunts - compare VAR_FACING, DIR_EAST - call_if_eq SlateportCity_OceanicMuseum_2F_EventScript_PlayerFaceGrunts + call_if_eq VAR_FACING, DIR_SOUTH, SlateportCity_OceanicMuseum_2F_EventScript_PlayerFaceGrunts + call_if_eq VAR_FACING, DIR_EAST, SlateportCity_OceanicMuseum_2F_EventScript_PlayerFaceGrunts msgbox SlateportCity_OceanicMuseum_2F_Text_WellTakeThoseParts, MSGBOX_DEFAULT - compare VAR_FACING, DIR_EAST - call_if_ne SlateportCity_OceanicMuseum_2F_EventScript_SternFaceGrunts + call_if_ne VAR_FACING, DIR_EAST, SlateportCity_OceanicMuseum_2F_EventScript_SternFaceGrunts msgbox SlateportCity_OceanicMuseum_2F_Text_SternWhoAreYou, MSGBOX_DEFAULT msgbox SlateportCity_OceanicMuseum_2F_Text_WereTeamAqua, MSGBOX_DEFAULT closemessage applymovement LOCALID_GRUNT_2, SlateportCity_OceanicMuseum_2F_Movement_GruntApproachToBattle waitmovement 0 - compare VAR_FACING, DIR_SOUTH - call_if_eq SlateportCity_OceanicMuseum_2F_EventScript_PlayerApproachGruntSouth - compare VAR_FACING, DIR_WEST - call_if_eq SlateportCity_OceanicMuseum_2F_EventScript_PlayerApproachGruntWest + call_if_eq VAR_FACING, DIR_SOUTH, SlateportCity_OceanicMuseum_2F_EventScript_PlayerApproachGruntSouth + call_if_eq VAR_FACING, DIR_WEST, SlateportCity_OceanicMuseum_2F_EventScript_PlayerApproachGruntWest trainerbattle_no_intro TRAINER_GRUNT_MUSEUM_1, SlateportCity_OceanicMuseum_2F_Text_Grunt1Defeat msgbox SlateportCity_OceanicMuseum_2F_Text_BossGoingToBeFurious, MSGBOX_DEFAULT closemessage @@ -86,8 +81,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_CaptStern:: special HealPlayerParty removeobject LOCALID_CAPT_STERN setflag FLAG_HIDE_ROUTE_110_TEAM_AQUA - compare VAR_REGISTER_BIRCH_STATE, 0 - call_if_eq SlateportCity_OceanicMuseum_2F_EventScript_ReadyRegisterBirch + call_if_eq VAR_REGISTER_BIRCH_STATE, 0, SlateportCity_OceanicMuseum_2F_EventScript_ReadyRegisterBirch setflag FLAG_DELIVERED_DEVON_GOODS clearflag FLAG_HIDE_ROUTE_116_DEVON_EMPLOYEE setflag FLAG_HIDE_RUSTBORO_CITY_DEVON_CORP_3F_EMPLOYEE diff --git a/data/maps/SlateportCity_PokemonFanClub/scripts.inc b/data/maps/SlateportCity_PokemonFanClub/scripts.inc index 96e1a7633d..b97e29a028 100644 --- a/data/maps/SlateportCity_PokemonFanClub/scripts.inc +++ b/data/maps/SlateportCity_PokemonFanClub/scripts.inc @@ -26,10 +26,8 @@ SlateportCity_PokemonFanClub_EventScript_ChairmanTryAssessPokemon:: call_if_set FLAG_RECEIVED_PINK_SCARF, SlateportCity_PokemonFanClub_EventScript_CountReceivedScarf call_if_set FLAG_RECEIVED_BLUE_SCARF, SlateportCity_PokemonFanClub_EventScript_CountReceivedScarf call_if_set FLAG_RECEIVED_RED_SCARF, SlateportCity_PokemonFanClub_EventScript_CountReceivedScarf - compare VAR_TEMP_2, CONTEST_CATEGORIES_COUNT - call_if_eq SlateportCity_PokemonFanClub_EventScript_ReceivedAllScarves - compare VAR_SLATEPORT_FAN_CLUB_STATE, 2 - goto_if_eq SlateportCity_PokemonFanClub_EventScript_NoMoreScarves + call_if_eq VAR_TEMP_2, CONTEST_CATEGORIES_COUNT, SlateportCity_PokemonFanClub_EventScript_ReceivedAllScarves + goto_if_eq VAR_SLATEPORT_FAN_CLUB_STATE, 2, SlateportCity_PokemonFanClub_EventScript_NoMoreScarves msgbox SlateportCity_PokemonFanClub_Text_HowIsYourPokemonGrowing, MSGBOX_DEFAULT goto SlateportCity_PokemonFanClub_EventScript_ChairmanAssessLeadMon end @@ -47,7 +45,7 @@ SlateportCity_PokemonFanClub_EventScript_ChairmanAssessLeadMon:: call_if_unset FLAG_RECEIVED_PINK_SCARF, SlateportCity_PokemonFanClub_EventScript_CheckMonCute call_if_unset FLAG_RECEIVED_BLUE_SCARF, SlateportCity_PokemonFanClub_EventScript_CheckMonBeauty call_if_unset FLAG_RECEIVED_RED_SCARF, SlateportCity_PokemonFanClub_EventScript_CheckMonCool - bufferleadmonspeciesname 0 + bufferleadmonspeciesname STR_VAR_1 switch VAR_TEMP_1 case 0, SlateportCity_PokemonFanClub_EventScript_NoHighConditions case 1, SlateportCity_PokemonFanClub_EventScript_GiveRedScarf @@ -72,9 +70,8 @@ SlateportCity_PokemonFanClub_EventScript_NoHighConditions:: end SlateportCity_PokemonFanClub_EventScript_GiveRedScarf:: - checkitemspace ITEM_RED_SCARF, 1 - compare VAR_RESULT, FALSE - goto_if_eq SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf + checkitemspace ITEM_RED_SCARF + goto_if_eq VAR_RESULT, FALSE, SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf msgbox SlateportCity_PokemonFanClub_Text_MonMostImpressiveGiveItThis, MSGBOX_DEFAULT setflag FLAG_RECEIVED_RED_SCARF giveitem ITEM_RED_SCARF @@ -83,9 +80,8 @@ SlateportCity_PokemonFanClub_EventScript_GiveRedScarf:: end SlateportCity_PokemonFanClub_EventScript_GiveBlueScarf:: - checkitemspace ITEM_BLUE_SCARF, 1 - compare VAR_RESULT, FALSE - goto_if_eq SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf + checkitemspace ITEM_BLUE_SCARF + goto_if_eq VAR_RESULT, FALSE, SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf msgbox SlateportCity_PokemonFanClub_Text_MonMostImpressiveGiveItThis, MSGBOX_DEFAULT setflag FLAG_RECEIVED_BLUE_SCARF giveitem ITEM_BLUE_SCARF @@ -94,9 +90,8 @@ SlateportCity_PokemonFanClub_EventScript_GiveBlueScarf:: end SlateportCity_PokemonFanClub_EventScript_GivePinkScarf:: - checkitemspace ITEM_PINK_SCARF, 1 - compare VAR_RESULT, FALSE - goto_if_eq SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf + checkitemspace ITEM_PINK_SCARF + goto_if_eq VAR_RESULT, FALSE, SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf msgbox SlateportCity_PokemonFanClub_Text_MonMostImpressiveGiveItThis, MSGBOX_DEFAULT setflag FLAG_RECEIVED_PINK_SCARF giveitem ITEM_PINK_SCARF @@ -105,9 +100,8 @@ SlateportCity_PokemonFanClub_EventScript_GivePinkScarf:: end SlateportCity_PokemonFanClub_EventScript_GiveGreenScarf:: - checkitemspace ITEM_GREEN_SCARF, 1 - compare VAR_RESULT, FALSE - goto_if_eq SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf + checkitemspace ITEM_GREEN_SCARF + goto_if_eq VAR_RESULT, FALSE, SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf msgbox SlateportCity_PokemonFanClub_Text_MonMostImpressiveGiveItThis, MSGBOX_DEFAULT setflag FLAG_RECEIVED_GREEN_SCARF giveitem ITEM_GREEN_SCARF @@ -116,9 +110,8 @@ SlateportCity_PokemonFanClub_EventScript_GiveGreenScarf:: end SlateportCity_PokemonFanClub_EventScript_GiveYellowScarf:: - checkitemspace ITEM_YELLOW_SCARF, 1 - compare VAR_RESULT, FALSE - goto_if_eq SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf + checkitemspace ITEM_YELLOW_SCARF + goto_if_eq VAR_RESULT, FALSE, SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf msgbox SlateportCity_PokemonFanClub_Text_MonMostImpressiveGiveItThis, MSGBOX_DEFAULT setflag FLAG_RECEIVED_YELLOW_SCARF giveitem ITEM_YELLOW_SCARF @@ -133,8 +126,7 @@ SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf:: SlateportCity_PokemonFanClub_EventScript_CheckMonCool:: specialvar VAR_RESULT, CheckLeadMonCool - compare VAR_RESULT, TRUE - call_if_eq SlateportCity_PokemonFanClub_EventScript_SetMonCool + call_if_eq VAR_RESULT, TRUE, SlateportCity_PokemonFanClub_EventScript_SetMonCool return SlateportCity_PokemonFanClub_EventScript_SetMonCool:: @@ -143,8 +135,7 @@ SlateportCity_PokemonFanClub_EventScript_SetMonCool:: SlateportCity_PokemonFanClub_EventScript_CheckMonBeauty:: specialvar VAR_RESULT, CheckLeadMonBeauty - compare VAR_RESULT, TRUE - call_if_eq SlateportCity_PokemonFanClub_EventScript_SetMonBeauty + call_if_eq VAR_RESULT, TRUE, SlateportCity_PokemonFanClub_EventScript_SetMonBeauty return SlateportCity_PokemonFanClub_EventScript_SetMonBeauty:: @@ -153,8 +144,7 @@ SlateportCity_PokemonFanClub_EventScript_SetMonBeauty:: SlateportCity_PokemonFanClub_EventScript_CheckMonCute:: specialvar VAR_RESULT, CheckLeadMonCute - compare VAR_RESULT, TRUE - call_if_eq SlateportCity_PokemonFanClub_EventScript_SetMonCute + call_if_eq VAR_RESULT, TRUE, SlateportCity_PokemonFanClub_EventScript_SetMonCute return SlateportCity_PokemonFanClub_EventScript_SetMonCute:: @@ -163,8 +153,7 @@ SlateportCity_PokemonFanClub_EventScript_SetMonCute:: SlateportCity_PokemonFanClub_EventScript_CheckMonSmart:: specialvar VAR_RESULT, CheckLeadMonSmart - compare VAR_RESULT, TRUE - call_if_eq SlateportCity_PokemonFanClub_EventScript_SetMonSmart + call_if_eq VAR_RESULT, TRUE, SlateportCity_PokemonFanClub_EventScript_SetMonSmart return SlateportCity_PokemonFanClub_EventScript_SetMonSmart:: @@ -173,8 +162,7 @@ SlateportCity_PokemonFanClub_EventScript_SetMonSmart:: SlateportCity_PokemonFanClub_EventScript_CheckMonTough:: specialvar VAR_RESULT, CheckLeadMonTough - compare VAR_RESULT, TRUE - call_if_eq SlateportCity_PokemonFanClub_EventScript_SetMonTough + call_if_eq VAR_RESULT, TRUE, SlateportCity_PokemonFanClub_EventScript_SetMonTough return SlateportCity_PokemonFanClub_EventScript_SetMonTough:: @@ -204,8 +192,7 @@ SlateportCity_PokemonFanClub_EventScript_SootheBellWoman:: goto_if_set FLAG_RECEIVED_SOOTHE_BELL, SlateportCity_PokemonFanClub_EventScript_ReceivedSootheBell msgbox SlateportCity_PokemonFanClub_Text_ShowMePokemonThatLoveYou, MSGBOX_DEFAULT specialvar VAR_RESULT, GetLeadMonFriendshipScore - compare VAR_RESULT, 4 - goto_if_ge SlateportCity_PokemonFanClub_EventScript_GiveSootheBell + goto_if_ge VAR_RESULT, 4, SlateportCity_PokemonFanClub_EventScript_GiveSootheBell release end @@ -217,8 +204,7 @@ SlateportCity_PokemonFanClub_EventScript_GiveSootheBell:: waitmovement 0 msgbox SlateportCity_PokemonFanClub_Text_PokemonAdoresYou, MSGBOX_DEFAULT giveitem ITEM_SOOTHE_BELL - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_SOOTHE_BELL release end diff --git a/data/maps/SootopolisCity/scripts.inc b/data/maps/SootopolisCity/scripts.inc index f3f8ea024a..69f74880ec 100644 --- a/data/maps/SootopolisCity/scripts.inc +++ b/data/maps/SootopolisCity/scripts.inc @@ -34,49 +34,37 @@ SootopolisCity_EventScript_LegendariesNotArrived:: end SootopolisCity_EventScript_LockHouseDoors:: - setmetatile 9, 6, METATILE_Sootopolis_Door_Closed, 1 - setmetatile 9, 17, METATILE_Sootopolis_Door_Closed, 1 - setmetatile 9, 26, METATILE_Sootopolis_Door_Closed, 1 - setmetatile 44, 17, METATILE_Sootopolis_Door_Closed, 1 - setmetatile 8, 35, METATILE_Sootopolis_Door_Closed, 1 - setmetatile 53, 28, METATILE_Sootopolis_Door_Closed, 1 - setmetatile 45, 6, METATILE_Sootopolis_Door_Closed, 1 - setmetatile 48, 25, METATILE_Sootopolis_Door_Closed, 1 - setmetatile 51, 36, METATILE_Sootopolis_Door_Closed, 1 + setmetatile 9, 6, METATILE_Sootopolis_Door_Closed, TRUE + setmetatile 9, 17, METATILE_Sootopolis_Door_Closed, TRUE + setmetatile 9, 26, METATILE_Sootopolis_Door_Closed, TRUE + setmetatile 44, 17, METATILE_Sootopolis_Door_Closed, TRUE + setmetatile 8, 35, METATILE_Sootopolis_Door_Closed, TRUE + setmetatile 53, 28, METATILE_Sootopolis_Door_Closed, TRUE + setmetatile 45, 6, METATILE_Sootopolis_Door_Closed, TRUE + setmetatile 48, 25, METATILE_Sootopolis_Door_Closed, TRUE + setmetatile 51, 36, METATILE_Sootopolis_Door_Closed, TRUE return SootopolisCity_EventScript_LockGymDoor:: - setmetatile 31, 32, METATILE_Sootopolis_GymDoor_Closed, 1 + setmetatile 31, 32, METATILE_Sootopolis_GymDoor_Closed, TRUE return SootopolisCity_OnTransition: setflag FLAG_VISITED_SOOTOPOLIS_CITY - compare VAR_SOOTOPOLIS_CITY_STATE, 1 - call_if_eq SootopolisCity_EventScript_HideMapNamePopup - compare VAR_SKY_PILLAR_STATE, 1 - call_if_eq SootopolisCity_EventScript_HideMapNamePopup + call_if_eq VAR_SOOTOPOLIS_CITY_STATE, 1, SootopolisCity_EventScript_HideMapNamePopup + call_if_eq VAR_SKY_PILLAR_STATE, 1, SootopolisCity_EventScript_HideMapNamePopup call SootopolisCity_EventScript_SetWeather call SootopolisCity_EventScript_SetLayout - compare VAR_SOOTOPOLIS_CITY_STATE, 1 - call_if_eq SootopolisCity_EventScript_SetBattleSpectators - compare VAR_SOOTOPOLIS_CITY_STATE, 2 - call_if_eq SootopolisCity_EventScript_SetBattleSpectators - compare VAR_SOOTOPOLIS_CITY_STATE, 3 - call_if_eq SootopolisCity_EventScript_SetBattleSpectators - compare VAR_SOOTOPOLIS_CITY_STATE, 4 - call_if_eq SootopolisCity_EventScript_SetBattleSpectators - compare VAR_SOOTOPOLIS_CITY_STATE, 5 - call_if_eq SootopolisCity_EventScript_SetBattleSpectators - compare VAR_SOOTOPOLIS_CITY_STATE, 2 - call_if_eq SootopolisCity_EventScript_CheckSetEnterCaveOfOriginObjPos - compare VAR_SOOTOPOLIS_CITY_STATE, 3 - call_if_eq SootopolisCity_EventScript_CheckSetEnterCaveOfOriginObjPos - compare VAR_SOOTOPOLIS_CITY_STATE, 4 - call_if_eq SootopolisCity_EventScript_SetExitCaveOfOriginObjPos - compare VAR_SOOTOPOLIS_CITY_STATE, 5 - call_if_eq SootopolisCity_EventScript_SetOutsideGymObjPos - compare VAR_SOOTOPOLIS_CITY_STATE, 6 - call_if_eq SootopolisCity_EventScript_SetExpertBlockCaveEntrance + call_if_eq VAR_SOOTOPOLIS_CITY_STATE, 1, SootopolisCity_EventScript_SetBattleSpectators + call_if_eq VAR_SOOTOPOLIS_CITY_STATE, 2, SootopolisCity_EventScript_SetBattleSpectators + call_if_eq VAR_SOOTOPOLIS_CITY_STATE, 3, SootopolisCity_EventScript_SetBattleSpectators + call_if_eq VAR_SOOTOPOLIS_CITY_STATE, 4, SootopolisCity_EventScript_SetBattleSpectators + call_if_eq VAR_SOOTOPOLIS_CITY_STATE, 5, SootopolisCity_EventScript_SetBattleSpectators + call_if_eq VAR_SOOTOPOLIS_CITY_STATE, 2, SootopolisCity_EventScript_CheckSetEnterCaveOfOriginObjPos + call_if_eq VAR_SOOTOPOLIS_CITY_STATE, 3, SootopolisCity_EventScript_CheckSetEnterCaveOfOriginObjPos + call_if_eq VAR_SOOTOPOLIS_CITY_STATE, 4, SootopolisCity_EventScript_SetExitCaveOfOriginObjPos + call_if_eq VAR_SOOTOPOLIS_CITY_STATE, 5, SootopolisCity_EventScript_SetOutsideGymObjPos + call_if_eq VAR_SOOTOPOLIS_CITY_STATE, 6, SootopolisCity_EventScript_SetExpertBlockCaveEntrance end SootopolisCity_EventScript_HideMapNamePopup:: @@ -95,20 +83,13 @@ SootopolisCity_EventScript_SetBattleSpectators:: return SootopolisCity_EventScript_SetLayout:: - compare VAR_SOOTOPOLIS_CITY_STATE, 0 - goto_if_eq SootopolisCity_EventScript_SetNormalLayout - compare VAR_SOOTOPOLIS_CITY_STATE, 6 - goto_if_ge SootopolisCity_EventScript_SetNormalLayout - compare VAR_SOOTOPOLIS_CITY_STATE, 1 - goto_if_eq SootopolisCity_EventScript_SetLegendariesLayout - compare VAR_SOOTOPOLIS_CITY_STATE, 2 - goto_if_eq SootopolisCity_EventScript_SetLegendariesLayout - compare VAR_SOOTOPOLIS_CITY_STATE, 3 - goto_if_eq SootopolisCity_EventScript_SetLegendariesLayout - compare VAR_SOOTOPOLIS_CITY_STATE, 4 - goto_if_eq SootopolisCity_EventScript_SetLegendariesLayout - compare VAR_SKY_PILLAR_STATE, 1 - goto_if_le SootopolisCity_EventScript_SetLegendariesLayout + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 0, SootopolisCity_EventScript_SetNormalLayout + goto_if_ge VAR_SOOTOPOLIS_CITY_STATE, 6, SootopolisCity_EventScript_SetNormalLayout + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 1, SootopolisCity_EventScript_SetLegendariesLayout + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 2, SootopolisCity_EventScript_SetLegendariesLayout + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 3, SootopolisCity_EventScript_SetLegendariesLayout + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 4, SootopolisCity_EventScript_SetLegendariesLayout + goto_if_le VAR_SKY_PILLAR_STATE, 1, SootopolisCity_EventScript_SetLegendariesLayout return SootopolisCity_EventScript_SetNormalLayout:: @@ -119,16 +100,11 @@ SootopolisCity_EventScript_SetLegendariesLayout:: return SootopolisCity_EventScript_SetWeather:: - compare VAR_SOOTOPOLIS_CITY_STATE, 0 - goto_if_eq SootopolisCity_EventScript_SetNormalWeather - compare VAR_SOOTOPOLIS_CITY_STATE, 6 - goto_if_ge SootopolisCity_EventScript_SetNormalWeather - compare VAR_SOOTOPOLIS_CITY_STATE, 1 - goto_if_eq SootopolisCity_EventScript_SetDownpour - compare VAR_SKY_PILLAR_STATE, 1 - goto_if_eq SootopolisCity_EventScript_SetDownpour - compare VAR_SKY_PILLAR_STATE, 1 - goto_if_le Common_EventScript_SetAbnormalWeather + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 0, SootopolisCity_EventScript_SetNormalWeather + goto_if_ge VAR_SOOTOPOLIS_CITY_STATE, 6, SootopolisCity_EventScript_SetNormalWeather + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 1, SootopolisCity_EventScript_SetDownpour + goto_if_eq VAR_SKY_PILLAR_STATE, 1, SootopolisCity_EventScript_SetDownpour + goto_if_le VAR_SKY_PILLAR_STATE, 1, Common_EventScript_SetAbnormalWeather return SootopolisCity_EventScript_SetNormalWeather:: @@ -158,12 +134,9 @@ SootopolisCity_EventScript_SetOutsideGymObjPos:: setobjectxyperm LOCALID_STEVEN, 29, 33 setobjectxyperm LOCALID_MAXIE, 33, 35 setobjectxyperm LOCALID_ARCHIE, 34, 35 - compare VAR_SOOTOPOLIS_WALLACE_STATE, 0 - call_if_eq SootopolisCity_EventScript_SetWallaceMiddle - compare VAR_SOOTOPOLIS_WALLACE_STATE, 1 - call_if_eq SootopolisCity_EventScript_SetWallaceRight - compare VAR_SOOTOPOLIS_WALLACE_STATE, 2 - call_if_eq SootopolisCity_EventScript_SetWallaceLeft + call_if_eq VAR_SOOTOPOLIS_WALLACE_STATE, 0, SootopolisCity_EventScript_SetWallaceMiddle + call_if_eq VAR_SOOTOPOLIS_WALLACE_STATE, 1, SootopolisCity_EventScript_SetWallaceRight + call_if_eq VAR_SOOTOPOLIS_WALLACE_STATE, 2, SootopolisCity_EventScript_SetWallaceLeft return SootopolisCity_EventScript_SetWallaceMiddle:: @@ -190,10 +163,8 @@ SootopolisCity_OnWarp: .2byte 0 SootopolisCity_EventScript_PlayerFaceLegendaries:: - compare VAR_SKY_PILLAR_STATE, 1 - call_if_eq SootopolisCity_EventScript_PlayerFaceLegendaries1 - compare VAR_SKY_PILLAR_STATE, 2 - call_if_eq SootopolisCity_EventScript_PlayerFaceLegendaries2 + call_if_eq VAR_SKY_PILLAR_STATE, 1, SootopolisCity_EventScript_PlayerFaceLegendaries1 + call_if_eq VAR_SKY_PILLAR_STATE, 2, SootopolisCity_EventScript_PlayerFaceLegendaries2 end SootopolisCity_EventScript_PlayerFaceLegendaries1:: @@ -206,7 +177,7 @@ SootopolisCity_EventScript_PlayerFaceLegendaries2:: return SootopolisCity_OnResume: - setdivewarp MAP_UNDERWATER_SOOTOPOLIS_CITY, 255, 9, 6 + setdivewarp MAP_UNDERWATER_SOOTOPOLIS_CITY, 9, 6 end SootopolisCity_OnFrame: @@ -218,10 +189,8 @@ SootopolisCity_OnFrame: SootopolisCity_EventScript_StartLegendariesScene:: lockall special StorePlayerCoordsInVars - compare VAR_0x8004, 43 - goto_if_ne SootopolisCity_EventScript_LegendariesSceneFromDive - compare VAR_0x8005, 32 - goto_if_ne SootopolisCity_EventScript_LegendariesSceneFromDive + goto_if_ne VAR_0x8004, 43, SootopolisCity_EventScript_LegendariesSceneFromDive + goto_if_ne VAR_0x8005, 32, SootopolisCity_EventScript_LegendariesSceneFromDive goto SootopolisCity_EventScript_LegendariesSceneFromPokeCenter end @@ -509,10 +478,8 @@ SootopolisCity_Movement_GroudonIdle: SootopolisCity_EventScript_StartRayquazaScene:: lockall special StorePlayerCoordsInVars - compare VAR_0x8004, 43 - goto_if_ne SootopolisCity_EventScript_RayquazaSceneFromDive - compare VAR_0x8005, 32 - goto_if_ne SootopolisCity_EventScript_RayquazaSceneFromDive + goto_if_ne VAR_0x8004, 43, SootopolisCity_EventScript_RayquazaSceneFromDive + goto_if_ne VAR_0x8005, 32, SootopolisCity_EventScript_RayquazaSceneFromDive goto SootopolisCity_EventScript_RayquazaSceneFromPokeCenter end @@ -565,7 +532,7 @@ SootopolisCity_EventScript_RayquazaSceneFromPokeCenter:: fadenewbgm MUS_SOOTOPOLIS delay 120 clearflag FLAG_HIDE_MAP_NAME_POPUP - warpsootopolislegend MAP_SOOTOPOLIS_CITY, 255, 43, 32 + warpwhitefade MAP_SOOTOPOLIS_CITY, 43, 32 waitstate end @@ -618,35 +585,35 @@ SootopolisCity_EventScript_RayquazaSceneFromDive:: fadenewbgm MUS_SURF delay 120 clearflag FLAG_HIDE_MAP_NAME_POPUP - warpsootopolislegend MAP_SOOTOPOLIS_CITY, 255, 29, 53 + warpwhitefade MAP_SOOTOPOLIS_CITY, 29, 53 waitstate end SootopolisCity_EventScript_SetRoughWater:: - setmetatile 27, 43, METATILE_Sootopolis_RoughWater, 0 - setmetatile 28, 43, METATILE_Sootopolis_RoughWater, 0 - setmetatile 29, 43, METATILE_Sootopolis_RoughWater, 0 - setmetatile 30, 43, METATILE_Sootopolis_RoughWater, 0 - setmetatile 27, 44, METATILE_Sootopolis_RoughWater, 0 - setmetatile 28, 44, METATILE_Sootopolis_RoughWater, 0 - setmetatile 29, 44, METATILE_Sootopolis_RoughWater, 0 - setmetatile 30, 44, METATILE_Sootopolis_RoughWater, 0 - setmetatile 27, 45, METATILE_Sootopolis_RoughWater, 0 - setmetatile 28, 45, METATILE_Sootopolis_RoughWater, 0 - setmetatile 29, 45, METATILE_Sootopolis_RoughWater, 0 - setmetatile 30, 45, METATILE_Sootopolis_RoughWater, 0 - setmetatile 32, 43, METATILE_Sootopolis_RoughWater, 0 - setmetatile 33, 43, METATILE_Sootopolis_RoughWater, 0 - setmetatile 34, 43, METATILE_Sootopolis_RoughWater, 0 - setmetatile 35, 43, METATILE_Sootopolis_RoughWater, 0 - setmetatile 32, 44, METATILE_Sootopolis_RoughWater, 0 - setmetatile 33, 44, METATILE_Sootopolis_RoughWater, 0 - setmetatile 34, 44, METATILE_Sootopolis_RoughWater, 0 - setmetatile 35, 44, METATILE_Sootopolis_RoughWater, 0 - setmetatile 32, 45, METATILE_Sootopolis_RoughWater, 0 - setmetatile 33, 45, METATILE_Sootopolis_RoughWater, 0 - setmetatile 34, 45, METATILE_Sootopolis_RoughWater, 0 - setmetatile 35, 45, METATILE_Sootopolis_RoughWater, 0 + setmetatile 27, 43, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 28, 43, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 29, 43, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 30, 43, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 27, 44, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 28, 44, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 29, 44, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 30, 44, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 27, 45, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 28, 45, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 29, 45, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 30, 45, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 32, 43, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 33, 43, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 34, 43, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 35, 43, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 32, 44, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 33, 44, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 34, 44, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 35, 44, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 32, 45, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 33, 45, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 34, 45, METATILE_Sootopolis_RoughWater, FALSE + setmetatile 35, 45, METATILE_Sootopolis_RoughWater, FALSE return SootopolisCity_Movement_RayquazaFlyOff: @@ -717,12 +684,9 @@ SootopolisCity_Movement_UnusedPanBack: SootopolisCity_EventScript_CaveOfOriginExpert:: lock faceplayer - compare VAR_SOOTOPOLIS_CITY_STATE, 6 - goto_if_ge SootopolisCity_EventScript_ExpertPostLegendaries - compare VAR_SOOTOPOLIS_CITY_STATE, 5 - goto_if_eq SootopolisCity_EventScript_ExpertLegendaries - compare VAR_SOOTOPOLIS_CITY_STATE, 2 - goto_if_ge SootopolisCity_EventScript_ExpertLeadToCave + goto_if_ge VAR_SOOTOPOLIS_CITY_STATE, 6, SootopolisCity_EventScript_ExpertPostLegendaries + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 5, SootopolisCity_EventScript_ExpertLegendaries + goto_if_ge VAR_SOOTOPOLIS_CITY_STATE, 2, SootopolisCity_EventScript_ExpertLeadToCave msgbox SootopolisCity_Text_CaveOfOriginPleaseLeave, MSGBOX_DEFAULT release end @@ -745,12 +709,9 @@ SootopolisCity_EventScript_ExpertLegendaries:: SootopolisCity_EventScript_Kiri:: lock faceplayer - compare VAR_SOOTOPOLIS_CITY_STATE, 1 - goto_if_le SootopolisCity_EventScript_KiriGiveBerry - compare VAR_SOOTOPOLIS_CITY_STATE, 6 - goto_if_ge SootopolisCity_EventScript_KiriGiveBerry - compare VAR_SOOTOPOLIS_CITY_STATE, 5 - goto_if_eq SootopolisCity_EventScript_KiriRayquaza + goto_if_le VAR_SOOTOPOLIS_CITY_STATE, 1, SootopolisCity_EventScript_KiriGiveBerry + goto_if_ge VAR_SOOTOPOLIS_CITY_STATE, 6, SootopolisCity_EventScript_KiriGiveBerry + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 5, SootopolisCity_EventScript_KiriRayquaza msgbox SootopolisCity_Text_BigPokemonFighting, MSGBOX_DEFAULT closemessage applymovement LOCALID_KIRI, Common_Movement_FaceOriginalDirection @@ -774,37 +735,31 @@ SootopolisCity_EventScript_KiriGiveBerry:: addvar VAR_RESULT, NUM_KIRI_BERRIES_SKIPPED addvar VAR_RESULT, FIRST_BERRY_INDEX giveitem VAR_RESULT - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_DAILY_SOOTOPOLIS_RECEIVED_BERRY msgbox SootopolisCity_Text_GiveYouThisBerryToo, MSGBOX_DEFAULT random 2 - compare VAR_RESULT, 0 - goto_if_eq SootopolisCity_EventScript_GiveFigyBerry - compare VAR_RESULT, 1 - goto_if_eq SootopolisCity_EventScript_GiveIapapaBerry + goto_if_eq VAR_RESULT, 0, SootopolisCity_EventScript_GiveFigyBerry + goto_if_eq VAR_RESULT, 1, SootopolisCity_EventScript_GiveIapapaBerry end SootopolisCity_EventScript_GiveFigyBerry:: giveitem ITEM_FIGY_BERRY - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull msgbox SootopolisCity_Text_WhatKindOfWishInYourName, MSGBOX_DEFAULT release end SootopolisCity_EventScript_GiveIapapaBerry:: giveitem ITEM_IAPAPA_BERRY - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull msgbox SootopolisCity_Text_WhatKindOfWishInYourName, MSGBOX_DEFAULT release end SootopolisCity_EventScript_KiriReceivedBerry:: msgbox SootopolisCity_Text_LikeSeasonBornIn, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq SootopolisCity_EventScript_KiriLikeSeasonBornIn + goto_if_eq VAR_RESULT, YES, SootopolisCity_EventScript_KiriLikeSeasonBornIn msgbox SootopolisCity_Text_OhDoesntMatter, MSGBOX_DEFAULT release end @@ -818,8 +773,7 @@ SootopolisCity_EventScript_Woman2:: lockall applymovement LOCALID_WOMAN_2, Common_Movement_FacePlayer waitmovement 0 - compare VAR_SOOTOPOLIS_CITY_STATE, 5 - goto_if_eq SootopolisCity_EventScript_Woman2Rayquaza + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 5, SootopolisCity_EventScript_Woman2Rayquaza msgbox SootopolisCity_Text_WeatherWentWild, MSGBOX_DEFAULT closemessage applymovement LOCALID_WOMAN_2, Common_Movement_FaceOriginalDirection @@ -835,8 +789,7 @@ SootopolisCity_EventScript_Woman2Rayquaza:: SootopolisCity_EventScript_Man:: lock faceplayer - compare VAR_SOOTOPOLIS_CITY_STATE, 6 - goto_if_ge SootopolisCity_EventScript_ManPostLegendaries + goto_if_ge VAR_SOOTOPOLIS_CITY_STATE, 6, SootopolisCity_EventScript_ManPostLegendaries msgbox SootopolisCity_Text_NoOrdinaryTourist, MSGBOX_DEFAULT release end @@ -849,12 +802,9 @@ SootopolisCity_EventScript_ManPostLegendaries:: SootopolisCity_EventScript_Woman1:: lock faceplayer - compare VAR_SOOTOPOLIS_CITY_STATE, 6 - goto_if_ge SootopolisCity_EventScript_Woman1PostLegendaries - compare VAR_SOOTOPOLIS_CITY_STATE, 5 - goto_if_eq SootopolisCity_EventScript_Woman1Rayquaza - compare VAR_SOOTOPOLIS_CITY_STATE, 2 - goto_if_ge SootopolisCity_EventScript_Woman1Legendaries + goto_if_ge VAR_SOOTOPOLIS_CITY_STATE, 6, SootopolisCity_EventScript_Woman1PostLegendaries + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 5, SootopolisCity_EventScript_Woman1Rayquaza + goto_if_ge VAR_SOOTOPOLIS_CITY_STATE, 2, SootopolisCity_EventScript_Woman1Legendaries msgbox SootopolisCity_Text_SootopolisSkyBeautiful, MSGBOX_DEFAULT release end @@ -881,12 +831,9 @@ SootopolisCity_EventScript_NinjaBoy:: lockall applymovement LOCALID_NINJA_BOY, Common_Movement_FacePlayer waitmovement 0 - compare VAR_SOOTOPOLIS_CITY_STATE, 5 - goto_if_eq SootopolisCity_EventScript_NinjaBoyRayquaza - compare VAR_SOOTOPOLIS_CITY_STATE, 6 - goto_if_ge SootopolisCity_EventScript_NinjaBoyNormal - compare VAR_SOOTOPOLIS_CITY_STATE, 1 - goto_if_le SootopolisCity_EventScript_NinjaBoyNormal + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 5, SootopolisCity_EventScript_NinjaBoyRayquaza + goto_if_ge VAR_SOOTOPOLIS_CITY_STATE, 6, SootopolisCity_EventScript_NinjaBoyNormal + goto_if_le VAR_SOOTOPOLIS_CITY_STATE, 1, SootopolisCity_EventScript_NinjaBoyNormal msgbox SootopolisCity_Text_ThisIsWicked, MSGBOX_DEFAULT closemessage applymovement LOCALID_NINJA_BOY, Common_Movement_FaceOriginalDirection @@ -908,13 +855,10 @@ SootopolisCity_EventScript_Boy1:: lockall applymovement LOCALID_BOY_1, Common_Movement_FacePlayer waitmovement 0 - compare VAR_SOOTOPOLIS_CITY_STATE, 5 - goto_if_eq SootopolisCity_EventScript_Boy1Rayquaza + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 5, SootopolisCity_EventScript_Boy1Rayquaza goto_if_set FLAG_SYS_GAME_CLEAR, SootopolisCity_EventScript_Boy1GameClear - compare VAR_SOOTOPOLIS_CITY_STATE, 6 - goto_if_ge SootopolisCity_EventScript_Boy1Normal - compare VAR_SOOTOPOLIS_CITY_STATE, 1 - goto_if_le SootopolisCity_EventScript_Boy1Normal + goto_if_ge VAR_SOOTOPOLIS_CITY_STATE, 6, SootopolisCity_EventScript_Boy1Normal + goto_if_le VAR_SOOTOPOLIS_CITY_STATE, 1, SootopolisCity_EventScript_Boy1Normal msgbox SootopolisCity_Text_GiantPokemonSuddenlyAppeared, MSGBOX_DEFAULT closemessage applymovement LOCALID_BOY_1, Common_Movement_FaceOriginalDirection @@ -954,12 +898,9 @@ SootopolisCity_EventScript_Steven:: applymovement LOCALID_STEVEN, Common_Movement_FacePlayer waitmovement 0 call_if_unset FLAG_STEVEN_GUIDES_TO_CAVE_OF_ORIGIN, SootopolisCity_EventScript_StevenLeadPlayerCaveOfOrigin - compare VAR_SOOTOPOLIS_CITY_STATE, 2 - goto_if_eq SootopolisCity_EventScript_StevenHelpWallace - compare VAR_SOOTOPOLIS_CITY_STATE, 3 - goto_if_eq SootopolisCity_EventScript_StevenHelpedWallace - compare VAR_SOOTOPOLIS_CITY_STATE, 4 - goto_if_eq SootopolisCity_EventScript_StevenHelpedWallace + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 2, SootopolisCity_EventScript_StevenHelpWallace + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 3, SootopolisCity_EventScript_StevenHelpedWallace + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 4, SootopolisCity_EventScript_StevenHelpedWallace goto_if_set FLAG_SOOTOPOLIS_ARCHIE_MAXIE_LEAVE, SootopolisCity_EventScript_StevenMaxieArchieLeft msgbox SootopolisCity_Text_SoThatsRayquaza, MSGBOX_DEFAULT releaseall @@ -983,10 +924,8 @@ SootopolisCity_EventScript_StevenHelpedWallace:: SootopolisCity_EventScript_StevenLeadPlayerCaveOfOrigin:: msgbox SootopolisCity_Text_InvolvedWithCrisisComeWithMe, MSGBOX_DEFAULT closemessage - compare VAR_FACING, DIR_WEST - call_if_eq SootopolisCity_EventScript_StartWalkToCaveOfOriginWest - compare VAR_FACING, DIR_NORTH - call_if_eq SootopolisCity_EventScript_StartWalkToCaveOfOriginNorth + call_if_eq VAR_FACING, DIR_WEST, SootopolisCity_EventScript_StartWalkToCaveOfOriginWest + call_if_eq VAR_FACING, DIR_NORTH, SootopolisCity_EventScript_StartWalkToCaveOfOriginNorth msgbox SootopolisCity_Text_DoesThisMakeYourFearPokemon, MSGBOX_DEFAULT closemessage applymovement LOCALID_STEVEN, SootopolisCity_Movement_StevenWalkToCaveOfOrigin @@ -1003,7 +942,7 @@ SootopolisCity_EventScript_StevenLeadPlayerCaveOfOrigin:: setflag FLAG_STEVEN_GUIDES_TO_CAVE_OF_ORIGIN applymovement OBJ_EVENT_ID_PLAYER, SootopolisCity_Movement_PlayerEnterCaveOfOrigin waitmovement 0 - warp MAP_CAVE_OF_ORIGIN_ENTRANCE, 255, 9, 20 + warp MAP_CAVE_OF_ORIGIN_ENTRANCE, 9, 20 waitstate end @@ -1287,8 +1226,7 @@ SootopolisCity_EventScript_Boy2:: lockall applymovement LOCALID_BOY_2, Common_Movement_FacePlayer waitmovement 0 - compare VAR_SOOTOPOLIS_CITY_STATE, 5 - goto_if_eq SootopolisCity_EventScript_Boy2Rayquaza + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 5, SootopolisCity_EventScript_Boy2Rayquaza msgbox SootopolisCity_Text_TwoPokemonArentAngry, MSGBOX_DEFAULT closemessage applymovement LOCALID_BOY_2, Common_Movement_FaceOriginalDirection @@ -1304,8 +1242,7 @@ SootopolisCity_EventScript_Boy2Rayquaza:: SootopolisCity_EventScript_BlackBelt:: lockall - compare VAR_SOOTOPOLIS_CITY_STATE, 5 - goto_if_eq SootopolisCity_EventScript_BlackBeltRayquaza + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 5, SootopolisCity_EventScript_BlackBeltRayquaza msgbox SootopolisCity_Text_GoRedAndBlueMon, MSGBOX_DEFAULT closemessage applymovement LOCALID_BLACK_BELT, Common_Movement_FacePlayer @@ -1328,8 +1265,7 @@ SootopolisCity_EventScript_Girl:: lockall applymovement LOCALID_GIRL, Common_Movement_FacePlayer waitmovement 0 - compare VAR_SOOTOPOLIS_CITY_STATE, 5 - goto_if_eq SootopolisCity_EventScript_GirlRayquaza + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 5, SootopolisCity_EventScript_GirlRayquaza msgbox SootopolisCity_Text_SootopolisWillBeWrecked, MSGBOX_DEFAULT closemessage applymovement LOCALID_GIRL, Common_Movement_FaceOriginalDirection @@ -1347,8 +1283,7 @@ SootopolisCity_EventScript_Maniac:: lockall applymovement LOCALID_MANIAC, Common_Movement_FacePlayer waitmovement 0 - compare VAR_SOOTOPOLIS_CITY_STATE, 5 - goto_if_eq SootopolisCity_EventScript_ManiacRayquaza + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 5, SootopolisCity_EventScript_ManiacRayquaza msgbox SootopolisCity_Text_SeeingLegendWithOwnEyes, MSGBOX_DEFAULT closemessage applymovement LOCALID_MANIAC, Common_Movement_FaceOriginalDirection @@ -1364,8 +1299,7 @@ SootopolisCity_EventScript_ManiacRayquaza:: SootopolisCity_EventScript_Wallace:: lock faceplayer - compare VAR_SOOTOPOLIS_CITY_STATE, 4 - goto_if_eq SootopolisCity_EventScript_GoToSkyPillar + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 4, SootopolisCity_EventScript_GoToSkyPillar goto_if_set FLAG_RECEIVED_HM07, SootopolisCity_EventScript_GoToGym goto_if_set FLAG_SOOTOPOLIS_ARCHIE_MAXIE_LEAVE, SootopolisCity_EventScript_GiveWaterfall msgbox SootopolisCity_Text_AquaMagmaDidntMeanHarm, MSGBOX_DEFAULT @@ -1378,12 +1312,9 @@ SootopolisCity_EventScript_GiveWaterfall:: setflag FLAG_RECEIVED_HM07 msgbox SootopolisCity_Text_ExplainWaterfallGoToGym, MSGBOX_DEFAULT closemessage - compare VAR_FACING, DIR_NORTH - call_if_eq SootopolisCity_EventScript_WallaceMoveFromGym - compare VAR_FACING, DIR_EAST - call_if_eq SootopolisCity_EventScript_WallaceMoveFromGym - compare VAR_FACING, DIR_WEST - call_if_eq SootopolisCity_EventScript_WallaceMoveFromGymWest + call_if_eq VAR_FACING, DIR_NORTH, SootopolisCity_EventScript_WallaceMoveFromGym + call_if_eq VAR_FACING, DIR_EAST, SootopolisCity_EventScript_WallaceMoveFromGym + call_if_eq VAR_FACING, DIR_WEST, SootopolisCity_EventScript_WallaceMoveFromGymWest release end @@ -1423,8 +1354,7 @@ SootopolisCity_Movement_WallaceMoveFromGymWest: SootopolisCity_EventScript_Maxie:: lockall - compare VAR_SOOTOPOLIS_CITY_STATE, 5 - goto_if_eq SootopolisCity_EventScript_MaxieRayquaza + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 5, SootopolisCity_EventScript_MaxieRayquaza msgbox SootopolisCity_Text_GroudonPleaseStop, MSGBOX_DEFAULT closemessage releaseall @@ -1439,8 +1369,7 @@ SootopolisCity_EventScript_MaxieRayquaza:: SootopolisCity_EventScript_Archie:: lockall - compare VAR_SOOTOPOLIS_CITY_STATE, 5 - goto_if_eq SootopolisCity_EventScript_ArchieRayquaza + goto_if_eq VAR_SOOTOPOLIS_CITY_STATE, 5, SootopolisCity_EventScript_ArchieRayquaza msgbox SootopolisCity_Text_KyogreCalmDown, MSGBOX_DEFAULT closemessage releaseall @@ -1460,7 +1389,7 @@ SootopolisCity_EventScript_MaxieArchieLeave:: clearflag FLAG_HIDE_MT_PYRE_SUMMIT_MAXIE clearflag FLAG_HIDE_MT_PYRE_SUMMIT_ARCHIE setvar VAR_MT_PYRE_STATE, 2 - warpsilent MAP_SOOTOPOLIS_CITY, 255, 31, 34 + warpsilent MAP_SOOTOPOLIS_CITY, 31, 34 waitstate releaseall end diff --git a/data/maps/SootopolisCity_Gym_1F/scripts.inc b/data/maps/SootopolisCity_Gym_1F/scripts.inc index b20cf78887..7f739935b1 100644 --- a/data/maps/SootopolisCity_Gym_1F/scripts.inc +++ b/data/maps/SootopolisCity_Gym_1F/scripts.inc @@ -19,20 +19,17 @@ SootopolisCity_Gym_1F_OnLoad: end SootopolisCity_Gym_1F_EventScript_CheckSetStairMetatiles:: - compare VAR_ICE_STEP_COUNT, 8 - goto_if_lt SootopolisCity_Gym_1F_EventScript_StopCheckingStairs @ All stairs ice - compare VAR_ICE_STEP_COUNT, 28 - goto_if_lt SootopolisCity_Gym_1F_EventScript_OpenFirstStairs - compare VAR_ICE_STEP_COUNT, 67 - goto_if_lt SootopolisCity_Gym_1F_EventScript_OpenFirstAndSecondStairs - setmetatile 8, 4, METATILE_SootopolisGym_Stairs, 0 - setmetatile 8, 5, METATILE_SootopolisGym_Stairs, 0 + goto_if_lt VAR_ICE_STEP_COUNT, 8, SootopolisCity_Gym_1F_EventScript_StopCheckingStairs @ All stairs ice + goto_if_lt VAR_ICE_STEP_COUNT, 28, SootopolisCity_Gym_1F_EventScript_OpenFirstStairs + goto_if_lt VAR_ICE_STEP_COUNT, 67, SootopolisCity_Gym_1F_EventScript_OpenFirstAndSecondStairs + setmetatile 8, 4, METATILE_SootopolisGym_Stairs, FALSE + setmetatile 8, 5, METATILE_SootopolisGym_Stairs, FALSE SootopolisCity_Gym_1F_EventScript_OpenFirstAndSecondStairs:: - setmetatile 8, 10, METATILE_SootopolisGym_Stairs, 0 - setmetatile 8, 11, METATILE_SootopolisGym_Stairs, 0 + setmetatile 8, 10, METATILE_SootopolisGym_Stairs, FALSE + setmetatile 8, 11, METATILE_SootopolisGym_Stairs, FALSE SootopolisCity_Gym_1F_EventScript_OpenFirstStairs:: - setmetatile 8, 15, METATILE_SootopolisGym_Stairs, 0 - setmetatile 8, 16, METATILE_SootopolisGym_Stairs, 0 + setmetatile 8, 15, METATILE_SootopolisGym_Stairs, FALSE + setmetatile 8, 16, METATILE_SootopolisGym_Stairs, FALSE SootopolisCity_Gym_1F_EventScript_StopCheckingStairs:: return @@ -85,8 +82,7 @@ SootopolisCity_Gym_1F_Movement_FallThroughIce: SootopolisCity_Gym_1F_EventScript_Juan:: trainerbattle_single TRAINER_JUAN_1, SootopolisCity_Gym_1F_Text_JuanIntro, SootopolisCity_Gym_1F_Text_JuanDefeat, SootopolisCity_Gym_1F_EventScript_JuanDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq SootopolisCity_Gym_1F_EventScript_JuanRematch + goto_if_eq VAR_RESULT, TRUE, SootopolisCity_Gym_1F_EventScript_JuanRematch goto_if_unset FLAG_RECEIVED_TM03, SootopolisCity_Gym_1F_EventScript_GiveWaterPulse2 goto_if_unset FLAG_BADGE06_GET, SootopolisCity_Gym_1F_EventScript_GoGetFortreeBadge msgbox SootopolisCity_Gym_1F_Text_JuanPostBattle, MSGBOX_DEFAULT @@ -121,16 +117,14 @@ SootopolisCity_Gym_1F_EventScript_JuanDefeated:: SootopolisCity_Gym_1F_EventScript_GiveWaterPulse:: giveitem ITEM_TM03 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_BagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_BagIsFull msgbox SootopolisCity_Gym_1F_Text_ExplainWaterPulse, MSGBOX_DEFAULT setflag FLAG_RECEIVED_TM03 return SootopolisCity_Gym_1F_EventScript_GiveWaterPulse2:: giveitem ITEM_TM03 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull msgbox SootopolisCity_Gym_1F_Text_ExplainWaterPulse, MSGBOX_DEFAULT setflag FLAG_RECEIVED_TM03 release diff --git a/data/maps/SootopolisCity_House1/scripts.inc b/data/maps/SootopolisCity_House1/scripts.inc index 65df8587f3..40f22a9c1f 100644 --- a/data/maps/SootopolisCity_House1/scripts.inc +++ b/data/maps/SootopolisCity_House1/scripts.inc @@ -7,8 +7,7 @@ SootopolisCity_House1_EventScript_BrickBreakBlackBelt:: goto_if_set FLAG_RECEIVED_TM31, SootopolisCity_House1_EventScript_ReceivedBrickBreak msgbox SootopolisCity_House1_Text_DevelopedThisTM, MSGBOX_DEFAULT giveitem ITEM_TM31 - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM31 msgbox SootopolisCity_House1_Text_ExplainBrickBreak, MSGBOX_DEFAULT release diff --git a/data/maps/SootopolisCity_House2/scripts.inc b/data/maps/SootopolisCity_House2/scripts.inc index a9c2ed255d..68cf96a906 100644 --- a/data/maps/SootopolisCity_House2/scripts.inc +++ b/data/maps/SootopolisCity_House2/scripts.inc @@ -5,10 +5,8 @@ SootopolisCity_House2_EventScript_ExpertF:: lock faceplayer msgbox SootopolisCity_House2_Text_DidYouKnowAboutMtPyreOrbs, MSGBOX_YESNO - compare VAR_RESULT, YES - call_if_eq SootopolisCity_House2_EventScript_KnowAboutOrbs - compare VAR_RESULT, NO - call_if_eq SootopolisCity_House2_EventScript_DontKnowAboutOrbs + call_if_eq VAR_RESULT, YES, SootopolisCity_House2_EventScript_KnowAboutOrbs + call_if_eq VAR_RESULT, NO, SootopolisCity_House2_EventScript_DontKnowAboutOrbs release end diff --git a/data/maps/SootopolisCity_House3/scripts.inc b/data/maps/SootopolisCity_House3/scripts.inc index 02546968b5..621738c4f1 100644 --- a/data/maps/SootopolisCity_House3/scripts.inc +++ b/data/maps/SootopolisCity_House3/scripts.inc @@ -5,8 +5,7 @@ SootopolisCity_House3_EventScript_Woman:: lock faceplayer msgbox SootopolisCity_House3_Text_JuanHasManyFansDoYou, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq SootopolisCity_House3_EventScript_HaveFans + goto_if_eq VAR_RESULT, YES, SootopolisCity_House3_EventScript_HaveFans msgbox SootopolisCity_House3_Text_LonesomeTryWorkingHarder, MSGBOX_DEFAULT release end diff --git a/data/maps/SootopolisCity_House6/scripts.inc b/data/maps/SootopolisCity_House6/scripts.inc index be2dad11f2..35f7acc7b5 100644 --- a/data/maps/SootopolisCity_House6/scripts.inc +++ b/data/maps/SootopolisCity_House6/scripts.inc @@ -6,12 +6,10 @@ SootopolisCity_House6_EventScript_Woman:: faceplayer goto_if_set FLAG_RECEIVED_WAILMER_DOLL, SootopolisCity_House6_EventScript_ReceivedWailmerDoll msgbox SootopolisCity_House6_Text_FirstGuestInWhileTakeDoll, MSGBOX_YESNO - compare VAR_RESULT, NO - call_if_eq SootopolisCity_House6_EventScript_DeclineWailmerDoll + call_if_eq VAR_RESULT, NO, SootopolisCity_House6_EventScript_DeclineWailmerDoll msgbox SootopolisCity_House6_Text_TakeGoodCareOfIt, MSGBOX_DEFAULT givedecoration DECOR_WAILMER_DOLL - compare VAR_RESULT, FALSE - goto_if_eq SootopolisCity_House6_EventScript_NoRoomForWailmerDoll + goto_if_eq VAR_RESULT, FALSE, SootopolisCity_House6_EventScript_NoRoomForWailmerDoll setflag FLAG_RECEIVED_WAILMER_DOLL release end @@ -27,7 +25,7 @@ SootopolisCity_House6_EventScript_ReceivedWailmerDoll:: end SootopolisCity_House6_EventScript_NoRoomForWailmerDoll:: - bufferdecorationname 1, DECOR_WAILMER_DOLL + bufferdecorationname STR_VAR_2, DECOR_WAILMER_DOLL msgbox gText_NoRoomLeftForAnother, MSGBOX_DEFAULT msgbox SootopolisCity_House6_Text_IllHoldItForYou, MSGBOX_DEFAULT release diff --git a/data/maps/SootopolisCity_LotadAndSeedotHouse/scripts.inc b/data/maps/SootopolisCity_LotadAndSeedotHouse/scripts.inc index ab087696e8..52bdf3acee 100644 --- a/data/maps/SootopolisCity_LotadAndSeedotHouse/scripts.inc +++ b/data/maps/SootopolisCity_LotadAndSeedotHouse/scripts.inc @@ -9,15 +9,11 @@ SootopolisCity_LotadAndSeedotHouse_EventScript_SeedotBrother:: special ChoosePartyMon waitstate copyvar VAR_RESULT, VAR_0x8004 - compare VAR_RESULT, 255 - goto_if_eq SootopolisCity_LotadAndSeedotHouse_EventScript_CancelShowSeedot + goto_if_eq VAR_RESULT, PARTY_NOTHING_CHOSEN, SootopolisCity_LotadAndSeedotHouse_EventScript_CancelShowSeedot special CompareSeedotSize - compare VAR_RESULT, 1 - goto_if_eq SootopolisCity_LotadAndSeedotHouse_EventScript_NotSeedot - compare VAR_RESULT, 2 - goto_if_eq SootopolisCity_LotadAndSeedotHouse_EventScript_SmallSeedot - compare VAR_RESULT, 3 - goto_if_eq SootopolisCity_LotadAndSeedotHouse_EventScript_BigSeedot + goto_if_eq VAR_RESULT, 1, SootopolisCity_LotadAndSeedotHouse_EventScript_NotSeedot + goto_if_eq VAR_RESULT, 2, SootopolisCity_LotadAndSeedotHouse_EventScript_SmallSeedot + goto_if_eq VAR_RESULT, 3, SootopolisCity_LotadAndSeedotHouse_EventScript_BigSeedot release end @@ -39,8 +35,7 @@ SootopolisCity_LotadAndSeedotHouse_EventScript_SmallSeedot:: SootopolisCity_LotadAndSeedotHouse_EventScript_BigSeedot:: msgbox SootopolisCity_LotadAndSeedotHouse_Text_GoshMightBeBiggerThanLotad, MSGBOX_DEFAULT giveitem ITEM_ELIXIR - compare VAR_RESULT, FALSE - goto_if_eq SootopolisCity_LotadAndSeedotHouse_EventScript_NoRoomForElixir1 + goto_if_eq VAR_RESULT, FALSE, SootopolisCity_LotadAndSeedotHouse_EventScript_NoRoomForElixir1 closemessage release end @@ -58,15 +53,11 @@ SootopolisCity_LotadAndSeedotHouse_EventScript_LotadBrother:: special ChoosePartyMon waitstate copyvar VAR_RESULT, VAR_0x8004 - compare VAR_RESULT, 255 - goto_if_eq SootopolisCity_LotadAndSeedotHouse_EventScript_CancelShowLotad + goto_if_eq VAR_RESULT, PARTY_NOTHING_CHOSEN, SootopolisCity_LotadAndSeedotHouse_EventScript_CancelShowLotad special CompareLotadSize - compare VAR_RESULT, 1 - goto_if_eq SootopolisCity_LotadAndSeedotHouse_EventScript_NotLotad - compare VAR_RESULT, 2 - goto_if_eq SootopolisCity_LotadAndSeedotHouse_EventScript_SmallLotad - compare VAR_RESULT, 3 - goto_if_eq SootopolisCity_LotadAndSeedotHouse_EventScript_BigLotad + goto_if_eq VAR_RESULT, 1, SootopolisCity_LotadAndSeedotHouse_EventScript_NotLotad + goto_if_eq VAR_RESULT, 2, SootopolisCity_LotadAndSeedotHouse_EventScript_SmallLotad + goto_if_eq VAR_RESULT, 3, SootopolisCity_LotadAndSeedotHouse_EventScript_BigLotad release end @@ -88,8 +79,7 @@ SootopolisCity_LotadAndSeedotHouse_EventScript_SmallLotad:: SootopolisCity_LotadAndSeedotHouse_EventScript_BigLotad:: msgbox SootopolisCity_LotadAndSeedotHouse_Text_WowMightBeBiggerThanSeedot, MSGBOX_DEFAULT giveitem ITEM_ELIXIR - compare VAR_RESULT, FALSE - goto_if_eq SootopolisCity_LotadAndSeedotHouse_EventScript_NoRoomForElixir2 + goto_if_eq VAR_RESULT, FALSE, SootopolisCity_LotadAndSeedotHouse_EventScript_NoRoomForElixir2 closemessage release end diff --git a/data/maps/SootopolisCity_Mart/scripts.inc b/data/maps/SootopolisCity_Mart/scripts.inc index 0975abd2b0..3cade5fbc4 100644 --- a/data/maps/SootopolisCity_Mart/scripts.inc +++ b/data/maps/SootopolisCity_Mart/scripts.inc @@ -29,8 +29,7 @@ SootopolisCity_Mart_Pokemart: SootopolisCity_Mart_EventScript_FatMan:: lock faceplayer - compare VAR_SKY_PILLAR_STATE, 2 - goto_if_ge SootopolisCity_Mart_EventScript_FatManNoLegendaries + goto_if_ge VAR_SKY_PILLAR_STATE, 2, SootopolisCity_Mart_EventScript_FatManNoLegendaries goto_if_unset FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, SootopolisCity_Mart_EventScript_FatManNoLegendaries msgbox SootopolisCity_Mart_Text_TooScaryOutside, MSGBOX_DEFAULT release @@ -44,8 +43,7 @@ SootopolisCity_Mart_EventScript_FatManNoLegendaries:: SootopolisCity_Mart_EventScript_Gentleman:: lock faceplayer - compare VAR_SKY_PILLAR_STATE, 2 - goto_if_ge SootopolisCity_Mart_EventScript_GentlemanNoLegendaries + goto_if_ge VAR_SKY_PILLAR_STATE, 2, SootopolisCity_Mart_EventScript_GentlemanNoLegendaries goto_if_unset FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, SootopolisCity_Mart_EventScript_GentlemanNoLegendaries msgbox SootopolisCity_Mart_Text_DidSomethingAwaken, MSGBOX_DEFAULT release diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc index 1fb8a8f723..374adbfc66 100644 --- a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc +++ b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc @@ -7,10 +7,8 @@ SootopolisCity_MysteryEventsHouse_1F_MapScripts:: SootopolisCity_MysteryEventsHouse_1F_OnTransition: frontier_checkvisittrainer - compare VAR_RESULT, 0 - call_if_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_SetTrainerVisitingLayout - compare VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE, 0 - call_if_ne SootopolisCity_MysteryEventsHouse_1F_EventScript_MoveOldManToDoor + call_if_eq VAR_RESULT, 0, SootopolisCity_MysteryEventsHouse_1F_EventScript_SetTrainerVisitingLayout + call_if_ne VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE, 0, SootopolisCity_MysteryEventsHouse_1F_EventScript_MoveOldManToDoor end SootopolisCity_MysteryEventsHouse_1F_EventScript_SetTrainerVisitingLayout:: @@ -40,12 +38,9 @@ SootopolisCity_MysteryEventsHouse_1F_EventScript_OldManCommentOnBattle:: copyobjectxytoperm LOCALID_OLD_MAN applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 - compare VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE, 1 - call_if_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_BattleWonComment - compare VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE, 2 - call_if_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_BattleLostComment - compare VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE, 3 - call_if_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_BattleTiedComment + call_if_eq VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE, 1, SootopolisCity_MysteryEventsHouse_1F_EventScript_BattleWonComment + call_if_eq VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE, 2, SootopolisCity_MysteryEventsHouse_1F_EventScript_BattleLostComment + call_if_eq VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE, 3, SootopolisCity_MysteryEventsHouse_1F_EventScript_BattleTiedComment special LoadPlayerParty setvar VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE, 0 releaseall @@ -76,10 +71,8 @@ SootopolisCity_MysteryEventsHouse_1F_EventScript_OldMan:: lock faceplayer frontier_checkvisittrainer - compare VAR_RESULT, 1 - goto_if_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_InvalidVisitingTrainer - compare VAR_TEMP_1, 1 - goto_if_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_TrainerVisiting + goto_if_eq VAR_RESULT, 1, SootopolisCity_MysteryEventsHouse_1F_EventScript_InvalidVisitingTrainer + goto_if_eq VAR_TEMP_1, 1, SootopolisCity_MysteryEventsHouse_1F_EventScript_TrainerVisiting msgbox SootopolisCity_MysteryEventsHouse_1F_Text_OnlyAmusementWatchingBattles, MSGBOX_DEFAULT release end @@ -93,29 +86,22 @@ SootopolisCity_MysteryEventsHouse_1F_EventScript_TrainerVisiting:: special SavePlayerParty special BufferEReaderTrainerName msgbox SootopolisCity_MysteryEventsHouse_1F_Text_ChallengeVisitingTrainer, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_DeclineBattle + goto_if_eq VAR_RESULT, NO, SootopolisCity_MysteryEventsHouse_1F_EventScript_DeclineBattle call SootopolisCity_MysteryEventsHouse_1F_EventScript_ChooseParty - compare VAR_RESULT, 0 - goto_if_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_DeclineBattle + goto_if_eq VAR_RESULT, 0, SootopolisCity_MysteryEventsHouse_1F_EventScript_DeclineBattle msgbox SootopolisCity_MysteryEventsHouse_1F_Text_SaveProgressBeforeBattle, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_DeclineBattle + goto_if_eq VAR_RESULT, NO, SootopolisCity_MysteryEventsHouse_1F_EventScript_DeclineBattle special LoadPlayerParty call Common_EventScript_SaveGame - compare VAR_RESULT, FALSE - goto_if_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_DeclineBattle + goto_if_eq VAR_RESULT, FALSE, SootopolisCity_MysteryEventsHouse_1F_EventScript_DeclineBattle special SavePlayerParty special ReducePlayerPartyToSelectedMons msgbox SootopolisCity_MysteryEventsHouse_1F_Text_HopeToSeeGoodMatch, MSGBOX_DEFAULT closemessage - compare VAR_FACING, DIR_NORTH - call_if_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_EnterBasementNorth - compare VAR_FACING, DIR_EAST - call_if_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_EnterBasementEast - compare VAR_FACING, DIR_WEST - call_if_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_EnterBasementWest - warp MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F, 255, 3, 1 + call_if_eq VAR_FACING, DIR_NORTH, SootopolisCity_MysteryEventsHouse_1F_EventScript_EnterBasementNorth + call_if_eq VAR_FACING, DIR_EAST, SootopolisCity_MysteryEventsHouse_1F_EventScript_EnterBasementEast + call_if_eq VAR_FACING, DIR_WEST, SootopolisCity_MysteryEventsHouse_1F_EventScript_EnterBasementWest + warp MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F, 3, 1 waitstate release end diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_B1F/scripts.inc b/data/maps/SootopolisCity_MysteryEventsHouse_B1F/scripts.inc index f0ebbf516f..533eb7cfa5 100644 --- a/data/maps/SootopolisCity_MysteryEventsHouse_B1F/scripts.inc +++ b/data/maps/SootopolisCity_MysteryEventsHouse_B1F/scripts.inc @@ -22,19 +22,16 @@ SootopolisCity_MysteryEventsHouse_B1F_EventScript_BattleVisitingTrainer:: setvar VAR_0x8005, 0 special DoSpecialTrainerBattle waitstate - compare VAR_RESULT, B_OUTCOME_DREW - call_if_eq SootopolisCity_MysteryEventsHouse_B1F_EventScript_BattleTie - compare VAR_RESULT, B_OUTCOME_WON - call_if_eq SootopolisCity_MysteryEventsHouse_B1F_EventScript_BattleWon - compare VAR_RESULT, B_OUTCOME_LOST - call_if_eq SootopolisCity_MysteryEventsHouse_B1F_EventScript_BattleLost + call_if_eq VAR_RESULT, B_OUTCOME_DREW, SootopolisCity_MysteryEventsHouse_B1F_EventScript_BattleTie + call_if_eq VAR_RESULT, B_OUTCOME_WON, SootopolisCity_MysteryEventsHouse_B1F_EventScript_BattleWon + call_if_eq VAR_RESULT, B_OUTCOME_LOST, SootopolisCity_MysteryEventsHouse_B1F_EventScript_BattleLost closemessage special HealPlayerParty applymovement OBJ_EVENT_ID_PLAYER, SootopolisCity_MysteryEventsHouse_B1F_Movement_PlayerExitBasement waitmovement 0 special LoadPlayerParty setvar VAR_TEMP_1, 1 - warp MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F, 255, 3, 1 + warp MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F, 3, 1 waitstate releaseall end diff --git a/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc b/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc index 9e017861b7..e1e13b35c8 100644 --- a/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc @@ -20,8 +20,7 @@ SootopolisCity_PokemonCenter_1F_EventScript_Nurse:: SootopolisCity_PokemonCenter_1F_EventScript_Gentleman:: lock faceplayer - compare VAR_SKY_PILLAR_STATE, 2 - goto_if_ge SootopolisCity_PokemonCenter_1F_EventScript_GentlemanNoLegendaries + goto_if_ge VAR_SKY_PILLAR_STATE, 2, SootopolisCity_PokemonCenter_1F_EventScript_GentlemanNoLegendaries goto_if_unset FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, SootopolisCity_PokemonCenter_1F_EventScript_GentlemanNoLegendaries msgbox SootopolisCity_PokemonCenter_1F_Text_EveryoneTakenRefuge, MSGBOX_DEFAULT release @@ -35,8 +34,7 @@ SootopolisCity_PokemonCenter_1F_EventScript_GentlemanNoLegendaries:: SootopolisCity_PokemonCenter_1F_EventScript_Woman:: lock faceplayer - compare VAR_SKY_PILLAR_STATE, 2 - goto_if_ge SootopolisCity_PokemonCenter_1F_EventScript_WomanNoLegendaries + goto_if_ge VAR_SKY_PILLAR_STATE, 2, SootopolisCity_PokemonCenter_1F_EventScript_WomanNoLegendaries goto_if_unset FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, SootopolisCity_PokemonCenter_1F_EventScript_WomanNoLegendaries msgbox SootopolisCity_PokemonCenter_1F_Text_ArentPokemonOurFriends, MSGBOX_DEFAULT release diff --git a/data/maps/SouthernIsland_Exterior/scripts.inc b/data/maps/SouthernIsland_Exterior/scripts.inc index b491c2f6c5..b393413fe3 100644 --- a/data/maps/SouthernIsland_Exterior/scripts.inc +++ b/data/maps/SouthernIsland_Exterior/scripts.inc @@ -13,8 +13,7 @@ SouthernIsland_Exterior_EventScript_Sailor:: lock faceplayer msgbox EventTicket_Text_SouthernIslandSailBack, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SouthernIsland_Exterior_EventScript_AsYouLike + goto_if_eq VAR_RESULT, NO, SouthernIsland_Exterior_EventScript_AsYouLike msgbox EventTicket_Text_SailHome, MSGBOX_DEFAULT closemessage applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFasterDown @@ -23,7 +22,7 @@ SouthernIsland_Exterior_EventScript_Sailor:: hideobjectat LOCALID_SAILOR, MAP_SOUTHERN_ISLAND_EXTERIOR setvar VAR_0x8004, LOCALID_SS_TIDAL call Common_EventScript_FerryDepartIsland - warp MAP_LILYCOVE_CITY_HARBOR, 255, 8, 11 + warp MAP_LILYCOVE_CITY_HARBOR, 8, 11 waitstate release end diff --git a/data/maps/SouthernIsland_Interior/scripts.inc b/data/maps/SouthernIsland_Interior/scripts.inc index 4ce90e249f..8486739d93 100644 --- a/data/maps/SouthernIsland_Interior/scripts.inc +++ b/data/maps/SouthernIsland_Interior/scripts.inc @@ -11,16 +11,13 @@ SouthernIsland_Interior_OnResume: SouthernIsland_Interior_EventScript_TryRemoveLati:: specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_CAUGHT - goto_if_ne Common_EventScript_NopReturn + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn removeobject LOCALID_LATI return SouthernIsland_Interior_OnTransition: - compare VAR_ROAMER_POKEMON, 0 - call_if_eq SouthernIsland_Interior_EventScript_SetUpLatios - compare VAR_ROAMER_POKEMON, 0 - call_if_ne SouthernIsland_Interior_EventScript_SetUpLatias + call_if_eq VAR_ROAMER_POKEMON, 0, SouthernIsland_Interior_EventScript_SetUpLatios + call_if_ne VAR_ROAMER_POKEMON, 0, SouthernIsland_Interior_EventScript_SetUpLatias call SouthernIsland_Interior_EventScript_SetUpPlayerGfx end @@ -36,10 +33,8 @@ SouthernIsland_Interior_EventScript_SetUpLatias:: SouthernIsland_Interior_EventScript_SetUpPlayerGfx:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq SouthernIsland_Interior_EventScript_SetBrendanGfx - compare VAR_RESULT, FEMALE - goto_if_eq SouthernIsland_Interior_EventScript_SetMayGfx + goto_if_eq VAR_RESULT, MALE, SouthernIsland_Interior_EventScript_SetBrendanGfx + goto_if_eq VAR_RESULT, FEMALE, SouthernIsland_Interior_EventScript_SetMayGfx end SouthernIsland_Interior_EventScript_SetBrendanGfx:: @@ -52,7 +47,7 @@ SouthernIsland_Interior_EventScript_SetMayGfx:: SouthernIsland_Interior_EventScript_TryLatiEncounter:: lockall - setvar VAR_0x8008, 12 + setvar VAR_0x8008, 12 @ Player's Y coordinate. Not read goto SouthernIsland_Interior_EventScript_Lati end @@ -79,21 +74,16 @@ SouthernIsland_Interior_EventScript_Lati:: delay 50 special RemoveCameraObject setvar VAR_LAST_TALKED, LOCALID_LATI - compare VAR_ROAMER_POKEMON, 0 - call_if_eq SouthernIsland_Interior_EventScript_SetLatiosBattleVars - compare VAR_ROAMER_POKEMON, 0 - call_if_ne SouthernIsland_Interior_EventScript_SetLatiasBattleVars + call_if_eq VAR_ROAMER_POKEMON, 0, SouthernIsland_Interior_EventScript_SetLatiosBattleVars + call_if_ne VAR_ROAMER_POKEMON, 0, SouthernIsland_Interior_EventScript_SetLatiasBattleVars setflag FLAG_SYS_CTRL_OBJ_DELETE special BattleSetup_StartLatiBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq SouthernIsland_Interior_EventScript_LatiDefeated - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq SouthernIsland_Interior_EventScript_RanFromLati - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq SouthernIsland_Interior_EventScript_RanFromLati + goto_if_eq VAR_RESULT, B_OUTCOME_WON, SouthernIsland_Interior_EventScript_LatiDefeated + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, SouthernIsland_Interior_EventScript_RanFromLati + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, SouthernIsland_Interior_EventScript_RanFromLati setflag FLAG_CAUGHT_LATIAS_OR_LATIOS releaseall end @@ -115,17 +105,11 @@ SouthernIsland_Interior_EventScript_Sign:: end SouthernIsland_Interior_EventScript_SetLatiosBattleVars:: - setvar VAR_0x8004, SPECIES_LATIOS - setvar VAR_0x8005, 50 @ level - setvar VAR_0x8006, ITEM_SOUL_DEW - special CreateEventLegalEnemyMon + seteventmon SPECIES_LATIOS, 50, ITEM_SOUL_DEW return SouthernIsland_Interior_EventScript_SetLatiasBattleVars:: - setvar VAR_0x8004, SPECIES_LATIAS - setvar VAR_0x8005, 50 @ level - setvar VAR_0x8006, ITEM_SOUL_DEW - special CreateEventLegalEnemyMon + seteventmon SPECIES_LATIAS, 50, ITEM_SOUL_DEW return SouthernIsland_Interior_Movement_CameraPanUp: diff --git a/data/maps/TerraCave_End/scripts.inc b/data/maps/TerraCave_End/scripts.inc index 0036f33b5a..8b2732d45e 100644 --- a/data/maps/TerraCave_End/scripts.inc +++ b/data/maps/TerraCave_End/scripts.inc @@ -11,8 +11,7 @@ TerraCave_End_OnResume: TerraCave_End_EventScript_TryRemoveGroudon:: specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_CAUGHT - goto_if_ne Common_EventScript_NopReturn + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn removeobject LOCALID_GROUDON return @@ -36,19 +35,16 @@ TerraCave_End_EventScript_Groudon:: delay 40 waitmoncry setvar VAR_LAST_TALKED, LOCALID_GROUDON - setwildbattle SPECIES_GROUDON, 70, ITEM_NONE + setwildbattle SPECIES_GROUDON, 70 setflag FLAG_SYS_CTRL_OBJ_DELETE special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE setvar VAR_TEMP_1, 0 specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq TerraCave_End_EventScript_DefeatedGroudon - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq TerraCave_End_EventScript_RanFromGroudon - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq TerraCave_End_EventScript_RanFromGroudon + goto_if_eq VAR_RESULT, B_OUTCOME_WON, TerraCave_End_EventScript_DefeatedGroudon + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, TerraCave_End_EventScript_RanFromGroudon + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, TerraCave_End_EventScript_RanFromGroudon setvar VAR_SHOULD_END_ABNORMAL_WEATHER, 1 setflag FLAG_DEFEATED_GROUDON releaseall diff --git a/data/maps/TrainerHill_Elevator/scripts.inc b/data/maps/TrainerHill_Elevator/scripts.inc index f4ebc7ea91..bec1ffbff1 100644 --- a/data/maps/TrainerHill_Elevator/scripts.inc +++ b/data/maps/TrainerHill_Elevator/scripts.inc @@ -15,7 +15,7 @@ TrainerHill_Elevator_EventScript_ExitToRoof:: applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Elevator_Movement_PlayerExitElevatorToRoof waitmovement 0 releaseall - warp MAP_TRAINER_HILL_ROOF, 255, 15, 5 + warp MAP_TRAINER_HILL_ROOF, 15, 5 waitstate end @@ -26,8 +26,7 @@ TrainerHill_Elevator_EventScript_EnterElevator:: waitmovement 0 lockall msgbox TrainerHill_Elevator_Text_ReturnToReception, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq TrainerHill_Elevator_EventScript_ExitToRoof + goto_if_eq VAR_RESULT, NO, TrainerHill_Elevator_EventScript_ExitToRoof releaseall applymovement LOCALID_ATTENDANT, TrainerHill_Elevator_Movement_AttendantFaceDown waitmovement 0 @@ -37,7 +36,7 @@ TrainerHill_Elevator_EventScript_EnterElevator:: delay 25 applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Elevator_Movement_PlayerExitElevator waitmovement 0 - warp MAP_TRAINER_HILL_ENTRANCE, 255, 17, 8 + warp MAP_TRAINER_HILL_ENTRANCE, 17, 8 waitstate end diff --git a/data/maps/TrainerHill_Entrance/scripts.inc b/data/maps/TrainerHill_Entrance/scripts.inc index af4a4c1235..8989883e47 100644 --- a/data/maps/TrainerHill_Entrance/scripts.inc +++ b/data/maps/TrainerHill_Entrance/scripts.inc @@ -24,16 +24,14 @@ TrainerHill_Entrance_OnResume: trainerhill_resumetimer setvar VAR_TEMP_0, 0 trainerhill_getusingereader - compare VAR_RESULT, FALSE @ VAR_RESULT always FALSE here - goto_if_eq TrainerHill_Entrance_EventScript_TryFaceAttendant + goto_if_eq VAR_RESULT, FALSE, TrainerHill_Entrance_EventScript_TryFaceAttendant @ VAR_RESULT always FALSE here setobjectxy OBJ_EVENT_ID_PLAYER, 9, 6 applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Entrance_Movement_PlayerFaceAttendant end TrainerHill_Entrance_EventScript_TryFaceAttendant:: trainerhill_getwon - compare VAR_RESULT, TRUE - goto_if_eq TrainerHill_Entrance_EventScript_PlayerDontFaceAttendant + goto_if_eq VAR_RESULT, TRUE, TrainerHill_Entrance_EventScript_PlayerDontFaceAttendant applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Entrance_Movement_PlayerFaceAttendant end @@ -48,12 +46,11 @@ TrainerHill_Entrance_OnReturn: end TrainerHill_Entrance_OnLoad: - compare VAR_TEMP_D, 17 - call_if_eq TrainerHill_Entrance_EventScript_OpenCounterDoor + call_if_eq VAR_TEMP_D, 17, TrainerHill_Entrance_EventScript_OpenCounterDoor end TrainerHill_Entrance_EventScript_OpenCounterDoor:: - setmetatile 17, 10, METATILE_TrainerHill_GreenFloorTile, 0 + setmetatile 17, 10, METATILE_TrainerHill_GreenFloorTile, FALSE return TrainerHill_Entrance_OnFrame: @@ -67,7 +64,7 @@ TrainerHill_Entrance_EventScript_ExitElevator:: lockall applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Entrance_Movement_PlayerExitElevator waitmovement 0 - setmetatile 17, 10, METATILE_TrainerHill_CounterDoor, 1 + setmetatile 17, 10, METATILE_TrainerHill_CounterDoor, TRUE special DrawWholeMapView playse SE_CLICK waitse @@ -115,8 +112,7 @@ TrainerHill_Entrance_EventScript_Attendant:: lock faceplayer trainerhill_inchallenge - compare VAR_RESULT, FALSE - goto_if_eq TrainerHill_Entrance_EventScript_ThanksForPlaying + goto_if_eq VAR_RESULT, FALSE, TrainerHill_Entrance_EventScript_ThanksForPlaying msgbox TrainerHill_Entrance_Text_HopeYouGiveItYourBest, MSGBOX_DEFAULT goto TrainerHill_Entrance_EventScript_AttendantEnd @@ -132,11 +128,9 @@ TrainerHill_Entrance_EventScript_EntryTrigger:: goto_if_unset FLAG_SYS_GAME_CLEAR, TrainerHill_Entrance_EventScript_Closed msgbox TrainerHill_Entrance_Text_WelcomeToTrainerHill, MSGBOX_DEFAULT trainerhill_getsaved - compare VAR_RESULT, FALSE - call_if_eq TrainerHill_Entrance_EventScript_SaveGame + call_if_eq VAR_RESULT, FALSE, TrainerHill_Entrance_EventScript_SaveGame trainerhill_allfloorsused - compare VAR_RESULT, TRUE - goto_if_eq TrainerHill_Entrance_EventScript_AllFloorsUsed + goto_if_eq VAR_RESULT, TRUE, TrainerHill_Entrance_EventScript_AllFloorsUsed msgbox TrainerHill_Entrance_Text_TrainersUpToFloorX, MSGBOX_DEFAULT goto TrainerHill_Entrance_EventScript_AskChallengeTrainers @@ -186,8 +180,7 @@ TrainerHill_Entrance_EventScript_SaveGame:: trainerhill_setsaved setvar VAR_TEMP_5, 1 call Common_EventScript_SaveGame - compare VAR_RESULT, FALSE - goto_if_eq TrainerHill_Entrance_EventScript_SaveFailed + goto_if_eq VAR_RESULT, FALSE, TrainerHill_Entrance_EventScript_SaveFailed trainerhill_setsaved return diff --git a/data/maps/Underwater_MarineCave/scripts.inc b/data/maps/Underwater_MarineCave/scripts.inc index cbd158e273..6c87628351 100644 --- a/data/maps/Underwater_MarineCave/scripts.inc +++ b/data/maps/Underwater_MarineCave/scripts.inc @@ -8,6 +8,6 @@ Underwater_MarineCave_OnTransition: end Underwater_MarineCave_OnResume: - setdivewarp MAP_MARINE_CAVE_ENTRANCE, 255, 10, 17 + setdivewarp MAP_MARINE_CAVE_ENTRANCE, 10, 17 end diff --git a/data/maps/Underwater_Route134/scripts.inc b/data/maps/Underwater_Route134/scripts.inc index 909b2f8b10..b5ab48e26a 100644 --- a/data/maps/Underwater_Route134/scripts.inc +++ b/data/maps/Underwater_Route134/scripts.inc @@ -3,6 +3,6 @@ Underwater_Route134_MapScripts:: .byte 0 Underwater_Route134_OnResume: - setdivewarp MAP_ROUTE134, 255, 60, 31 + setdivewarp MAP_ROUTE134, 60, 31 end diff --git a/data/maps/Underwater_SeafloorCavern/scripts.inc b/data/maps/Underwater_SeafloorCavern/scripts.inc index 2e0613c04c..7f1231feff 100644 --- a/data/maps/Underwater_SeafloorCavern/scripts.inc +++ b/data/maps/Underwater_SeafloorCavern/scripts.inc @@ -18,22 +18,22 @@ Underwater_SeafloorCavern_OnLoad: end Underwater_SeafloorCavern_EventScript_SetSubmarineGoneMetatiles:: - setmetatile 5, 3, METATILE_Underwater_RockWall, 1 - setmetatile 6, 3, METATILE_Underwater_RockWall, 1 - setmetatile 7, 3, METATILE_Underwater_RockWall, 1 - setmetatile 8, 3, METATILE_Underwater_RockWall, 1 - setmetatile 5, 4, METATILE_Underwater_FloorShadow, 0 - setmetatile 6, 4, METATILE_Underwater_FloorShadow, 0 - setmetatile 7, 4, METATILE_Underwater_FloorShadow, 0 - setmetatile 8, 4, METATILE_Underwater_FloorShadow, 0 - setmetatile 5, 5, METATILE_Underwater_FloorShadow, 0 - setmetatile 6, 5, METATILE_Underwater_FloorShadow, 0 - setmetatile 7, 5, METATILE_Underwater_FloorShadow, 0 - setmetatile 8, 5, METATILE_Underwater_FloorShadow, 0 + setmetatile 5, 3, METATILE_Underwater_RockWall, TRUE + setmetatile 6, 3, METATILE_Underwater_RockWall, TRUE + setmetatile 7, 3, METATILE_Underwater_RockWall, TRUE + setmetatile 8, 3, METATILE_Underwater_RockWall, TRUE + setmetatile 5, 4, METATILE_Underwater_FloorShadow, FALSE + setmetatile 6, 4, METATILE_Underwater_FloorShadow, FALSE + setmetatile 7, 4, METATILE_Underwater_FloorShadow, FALSE + setmetatile 8, 4, METATILE_Underwater_FloorShadow, FALSE + setmetatile 5, 5, METATILE_Underwater_FloorShadow, FALSE + setmetatile 6, 5, METATILE_Underwater_FloorShadow, FALSE + setmetatile 7, 5, METATILE_Underwater_FloorShadow, FALSE + setmetatile 8, 5, METATILE_Underwater_FloorShadow, FALSE return Underwater_SeafloorCavern_OnResume: - setdivewarp MAP_SEAFLOOR_CAVERN_ENTRANCE, 255, 10, 17 + setdivewarp MAP_SEAFLOOR_CAVERN_ENTRANCE, 10, 17 end Underwater_SeafloorCavern_EventScript_CheckStolenSub:: diff --git a/data/maps/Underwater_SealedChamber/scripts.inc b/data/maps/Underwater_SealedChamber/scripts.inc index 2b3fe5e0de..f4f8d8ccb7 100644 --- a/data/maps/Underwater_SealedChamber/scripts.inc +++ b/data/maps/Underwater_SealedChamber/scripts.inc @@ -4,18 +4,16 @@ Underwater_SealedChamber_MapScripts:: Underwater_SealedChamber_OnDive: getplayerxy VAR_0x8004, VAR_0x8005 - compare VAR_0x8004, 12 - goto_if_ne Underwater_SealedChamber_EventScript_SurfaceRoute134 - compare VAR_0x8005, 44 - goto_if_ne Underwater_SealedChamber_EventScript_SurfaceRoute134 + goto_if_ne VAR_0x8004, 12, Underwater_SealedChamber_EventScript_SurfaceRoute134 + goto_if_ne VAR_0x8005, 44, Underwater_SealedChamber_EventScript_SurfaceRoute134 goto Underwater_SealedChamber_EventScript_SurfaceSealedChamber Underwater_SealedChamber_EventScript_SurfaceRoute134:: - setdivewarp MAP_ROUTE134, 255, 60, 31 + setdivewarp MAP_ROUTE134, 60, 31 end Underwater_SealedChamber_EventScript_SurfaceSealedChamber:: - setdivewarp MAP_SEALED_CHAMBER_OUTER_ROOM, 255, 10, 19 + setdivewarp MAP_SEALED_CHAMBER_OUTER_ROOM, 10, 19 end Underwater_SealedChamber_EventScript_Braille:: diff --git a/data/maps/Underwater_SootopolisCity/scripts.inc b/data/maps/Underwater_SootopolisCity/scripts.inc index 4346c284fa..8bf30560ca 100644 --- a/data/maps/Underwater_SootopolisCity/scripts.inc +++ b/data/maps/Underwater_SootopolisCity/scripts.inc @@ -3,6 +3,6 @@ Underwater_SootopolisCity_MapScripts:: .byte 0 Underwater_SootopolisCity_OnResume: - setdivewarp MAP_SOOTOPOLIS_CITY, 255, 29, 53 + setdivewarp MAP_SOOTOPOLIS_CITY, 29, 53 end diff --git a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc index b349a395cf..29008b7c0f 100644 --- a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc @@ -18,10 +18,8 @@ VerdanturfTown_BattleTentBattleRoom_OnTransition: VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfx:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfxMale - compare VAR_RESULT, FEMALE - goto_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale + goto_if_eq VAR_RESULT, MALE, VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfxMale + goto_if_eq VAR_RESULT, FEMALE, VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfxFemale return VerdanturfTown_BattleTentBattleRoom_EventScript_SetPlayerGfxMale:: @@ -43,8 +41,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_EnterRoom:: applymovement LOCALID_PLAYER, VerdanturfTown_BattleTentBattleRoom_Movement_PlayerEnter waitmovement 0 frontier_get FRONTIER_DATA_BATTLE_NUM - compare VAR_RESULT, 0 - goto_if_ne VerdanturfTown_BattleTentBattleRoom_EventScript_AskContinueChallenge + goto_if_ne VAR_RESULT, 0, VerdanturfTown_BattleTentBattleRoom_EventScript_AskContinueChallenge VerdanturfTown_BattleTentBattleRoom_EventScript_NextOpponentEnter:: tower_setopponent addobject LOCALID_OPPONENT @@ -59,7 +56,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_NextOpponentEnter:: VerdanturfTown_BattleTentBattleRoom_EventScript_WarpToLobbyLost:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST special LoadPlayerParty - warp MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 + warp MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY, 6, 6 waitstate VerdanturfTown_BattleTentBattleRoom_EventScript_DefeatedOpponent:: @@ -84,10 +81,8 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_DefeatedOpponent:: VerdanturfTown_BattleTentBattleRoom_EventScript_AskContinueChallenge:: frontier_get FRONTIER_DATA_BATTLE_NUM - compare VAR_RESULT, 1 - call_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_ReadyFor2ndOpponent - compare VAR_RESULT, 2 - call_if_eq VerdanturfTown_BattleTentBattleRoom_EventScript_ReadyFor3rdOpponent + call_if_eq VAR_RESULT, 1, VerdanturfTown_BattleTentBattleRoom_EventScript_ReadyFor2ndOpponent + call_if_eq VAR_RESULT, 2, VerdanturfTown_BattleTentBattleRoom_EventScript_ReadyFor3rdOpponent multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, TRUE switch VAR_RESULT case 0, VerdanturfTown_BattleTentBattleRoom_EventScript_ContinueChallenge @@ -120,7 +115,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_ContinueChallenge:: VerdanturfTown_BattleTentBattleRoom_EventScript_WarpToLobbyWon:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON special LoadPlayerParty - warp MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY, 255, 6, 6 + warp MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY, 6, 6 waitstate VerdanturfTown_BattleTentBattleRoom_EventScript_PauseChallenge:: diff --git a/data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc b/data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc index c2e9dbd6a7..debf1b177f 100644 --- a/data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc @@ -22,7 +22,7 @@ VerdanturfTown_BattleTentCorridor_EventScript_EnterCorridor:: closedoor 2, 1 waitdooranim setvar VAR_0x8006, 0 - warp MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM, 255, 6, 5 + warp MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM, 6, 5 waitstate releaseall end diff --git a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc index dd8f0eaa45..a78a6a78ed 100644 --- a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc @@ -107,8 +107,7 @@ VerdanturfTown_BattleTentLobby_EventScript_Attendant:: lock faceplayer verdanturftent_getprize - compare VAR_RESULT, ITEM_NONE - goto_if_ne VerdanturfTown_BattleTentLobby_EventScript_PrizeWaiting + goto_if_ne VAR_RESULT, ITEM_NONE, VerdanturfTown_BattleTentLobby_EventScript_PrizeWaiting special SavePlayerParty msgbox VerdanturfTown_BattleTentLobby_Text_WelcomeToBattleTent, MSGBOX_DEFAULT VerdanturfTown_BattleTentLobby_EventScript_AskEnterChallenge:: @@ -126,8 +125,7 @@ VerdanturfTown_BattleTentLobby_EventScript_TryEnterChallenge:: setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES setvar VAR_RESULT, 2 frontier_checkineligible - compare VAR_0x8004, TRUE - goto_if_eq VerdanturfTown_BattleTentLobby_EventScript_NotEnoughValidMons + goto_if_eq VAR_0x8004, TRUE, VerdanturfTown_BattleTentLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_TENT msgbox VerdanturfTown_BattleTentLobby_Text_SelectThreeMons, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK @@ -135,8 +133,7 @@ VerdanturfTown_BattleTentLobby_EventScript_TryEnterChallenge:: setvar VAR_0x8005, FRONTIER_PARTY_SIZE special ChoosePartyForBattleFrontier waitstate - compare VAR_RESULT, 0 - goto_if_eq VerdanturfTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge + goto_if_eq VAR_RESULT, 0, VerdanturfTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge msgbox VerdanturfTown_BattleTentLobby_Text_SaveBeforeChallenge, MSGBOX_YESNO switch VAR_RESULT case NO, VerdanturfTown_BattleTentLobby_EventScript_LoadPartyCancelChallenge @@ -154,15 +151,14 @@ VerdanturfTown_BattleTentLobby_EventScript_SaveBeforeChallenge:: delay 2 call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 - compare VAR_RESULT, 0 - goto_if_eq VerdanturfTown_BattleTentLobby_EventScript_CancelChallengeSaveFailed + goto_if_eq VAR_RESULT, 0, VerdanturfTown_BattleTentLobby_EventScript_CancelChallengeSaveFailed VerdanturfTown_BattleTentLobby_EventScript_EnterChallenge:: special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE msgbox VerdanturfTown_BattleTentLobby_Text_NowFollowMe, MSGBOX_DEFAULT closemessage call VerdanturfTown_BattleTentLobby_EventScript_WalkToDoor - warp MAP_VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR, 255, 2, 7 + warp MAP_VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR, 2, 7 setvar VAR_TEMP_0, 0 waitstate end @@ -232,8 +228,7 @@ VerdanturfTown_BattleTentLobby_EventScript_AttractGiver:: goto_if_set FLAG_RECEIVED_TM45, VerdanturfTown_BattleTentLobby_EventScript_ReceivedAttract msgbox VerdanturfTown_BattleTentLobby_Text_AttractionRunsDeep, MSGBOX_DEFAULT giveitem ITEM_TM45 - compare VAR_RESULT, 0 - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, 0, Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM45 msgbox VerdanturfTown_BattleTentLobby_Text_AttractionMutual, MSGBOX_DEFAULT release diff --git a/data/maps/VictoryRoad_1F/scripts.inc b/data/maps/VictoryRoad_1F/scripts.inc index e07da7e60d..4bce6b4c1d 100644 --- a/data/maps/VictoryRoad_1F/scripts.inc +++ b/data/maps/VictoryRoad_1F/scripts.inc @@ -5,10 +5,8 @@ VictoryRoad_1F_MapScripts:: .byte 0 VictoryRoad_1F_OnTransition: - compare VAR_VICTORY_ROAD_1F_STATE, 1 - call_if_eq VictoryRoad_1F_EventScript_SetEntranceWallyPos1 - compare VAR_VICTORY_ROAD_1F_STATE, 2 - call_if_eq VictoryRoad_1F_EventScript_SetEntranceWallyPos2 + call_if_eq VAR_VICTORY_ROAD_1F_STATE, 1, VictoryRoad_1F_EventScript_SetEntranceWallyPos1 + call_if_eq VAR_VICTORY_ROAD_1F_STATE, 2, VictoryRoad_1F_EventScript_SetEntranceWallyPos2 end VictoryRoad_1F_EventScript_SetEntranceWallyPos1:: @@ -88,8 +86,7 @@ VictoryRoad_1F_EventScript_EntranceWally:: VictoryRoad_1F_EventScript_ExitWally:: trainerbattle_single TRAINER_WALLY_VR_2, VictoryRoad_1F_Text_WallyIntro, VictoryRoad_1F_Text_WallyDefeat specialvar VAR_RESULT, ShouldTryRematchBattle - compare VAR_RESULT, TRUE - goto_if_eq VictoryRoad_1F_EventScript_RematchWally + goto_if_eq VAR_RESULT, TRUE, VictoryRoad_1F_EventScript_RematchWally msgbox VictoryRoad_1F_Text_WallyPostBattle, MSGBOX_AUTOCLOSE end diff --git a/data/mb_berry_fix.gba b/data/mb_berry_fix.gba new file mode 100755 index 0000000000..0afff07f5d Binary files /dev/null and b/data/mb_berry_fix.gba differ diff --git a/data/pokemon_colosseum.mb b/data/mb_colosseum.gba similarity index 100% rename from data/pokemon_colosseum.mb rename to data/mb_colosseum.gba diff --git a/data/ereader_link_data.bin b/data/mb_ereader.gba similarity index 100% rename from data/ereader_link_data.bin rename to data/mb_ereader.gba diff --git a/data/multiboot_berry_glitch_fix.s b/data/multiboot_berry_glitch_fix.s index 7d65c0d4de..d0d54d5502 100644 --- a/data/multiboot_berry_glitch_fix.s +++ b/data/multiboot_berry_glitch_fix.s @@ -1,5 +1,5 @@ .section .rodata gMultiBootProgram_BerryGlitchFix_Start:: - .incbin "berry_fix/berry_fix.gba" + .incbin "data/mb_berry_fix.gba" gMultiBootProgram_BerryGlitchFix_End:: diff --git a/data/multiboot_ereader.s b/data/multiboot_ereader.s new file mode 100644 index 0000000000..ab97f72799 --- /dev/null +++ b/data/multiboot_ereader.s @@ -0,0 +1,6 @@ + .section .rodata + + .align 2 +gMultiBootProgram_EReader_Start:: + .incbin "data/mb_ereader.gba" +gMultiBootProgram_EReader_End:: diff --git a/data/multiboot_pokemon_colosseum.s b/data/multiboot_pokemon_colosseum.s index 179f8a0671..a5f894908a 100644 --- a/data/multiboot_pokemon_colosseum.s +++ b/data/multiboot_pokemon_colosseum.s @@ -1,5 +1,5 @@ .section .rodata gMultiBootProgram_PokemonColosseum_Start:: - .incbin "data/pokemon_colosseum.mb" + .incbin "data/mb_colosseum.gba" gMultiBootProgram_PokemonColosseum_End:: diff --git a/data/mystery_gift.s b/data/mystery_gift.s index df0cbd4ac0..86202b95f7 100644 --- a/data/mystery_gift.s +++ b/data/mystery_gift.s @@ -8,6 +8,7 @@ #include "constants/songs.h" #include "constants/species.h" #include "constants/vars.h" +#include "constants/wild_encounter.h" .include "asm/macros.inc" .include "asm/macros/event.inc" .include "constants/constants.inc" diff --git a/data/script_cmd_table.inc b/data/script_cmd_table.inc index dcc0da9f7f..51b7f966e4 100644 --- a/data/script_cmd_table.inc +++ b/data/script_cmd_table.inc @@ -13,12 +13,12 @@ gScriptCmdTable:: .4byte ScrCmd_gotostd_if @ 0x0a .4byte ScrCmd_callstd_if @ 0x0b .4byte ScrCmd_returnram @ 0x0c - .4byte ScrCmd_killscript @ 0x0d + .4byte ScrCmd_endram @ 0x0d .4byte ScrCmd_setmysteryeventstatus @ 0x0e .4byte ScrCmd_loadword @ 0x0f .4byte ScrCmd_loadbyte @ 0x10 - .4byte ScrCmd_writebytetoaddr @ 0x11 - .4byte ScrCmd_loadbytefromaddr @ 0x12 + .4byte ScrCmd_setptr @ 0x11 + .4byte ScrCmd_loadbytefromptr @ 0x12 .4byte ScrCmd_setptrbyte @ 0x13 .4byte ScrCmd_copylocal @ 0x14 .4byte ScrCmd_copybyte @ 0x15 @@ -29,10 +29,10 @@ gScriptCmdTable:: .4byte ScrCmd_setorcopyvar @ 0x1a .4byte ScrCmd_compare_local_to_local @ 0x1b .4byte ScrCmd_compare_local_to_value @ 0x1c - .4byte ScrCmd_compare_local_to_addr @ 0x1d - .4byte ScrCmd_compare_addr_to_local @ 0x1e - .4byte ScrCmd_compare_addr_to_value @ 0x1f - .4byte ScrCmd_compare_addr_to_addr @ 0x20 + .4byte ScrCmd_compare_local_to_ptr @ 0x1d + .4byte ScrCmd_compare_ptr_to_local @ 0x1e + .4byte ScrCmd_compare_ptr_to_value @ 0x1f + .4byte ScrCmd_compare_ptr_to_ptr @ 0x20 .4byte ScrCmd_compare_var_to_value @ 0x21 .4byte ScrCmd_compare_var_to_var @ 0x22 .4byte ScrCmd_callnative @ 0x23 @@ -80,16 +80,16 @@ gScriptCmdTable:: .4byte ScrCmd_checkdecor @ 0x4d .4byte ScrCmd_checkdecorspace @ 0x4e .4byte ScrCmd_applymovement @ 0x4f - .4byte ScrCmd_applymovement_at @ 0x50 + .4byte ScrCmd_applymovementat @ 0x50 .4byte ScrCmd_waitmovement @ 0x51 - .4byte ScrCmd_waitmovement_at @ 0x52 + .4byte ScrCmd_waitmovementat @ 0x52 .4byte ScrCmd_removeobject @ 0x53 - .4byte ScrCmd_removeobject_at @ 0x54 + .4byte ScrCmd_removeobjectat @ 0x54 .4byte ScrCmd_addobject @ 0x55 - .4byte ScrCmd_addobject_at @ 0x56 + .4byte ScrCmd_addobjectat @ 0x56 .4byte ScrCmd_setobjectxy @ 0x57 - .4byte ScrCmd_showobject_at @ 0x58 - .4byte ScrCmd_hideobject_at @ 0x59 + .4byte ScrCmd_showobjectat @ 0x58 + .4byte ScrCmd_hideobjectat @ 0x59 .4byte ScrCmd_faceplayer @ 0x5a .4byte ScrCmd_turnobject @ 0x5b .4byte ScrCmd_trainerbattle @ 0x5c @@ -150,14 +150,14 @@ gScriptCmdTable:: .4byte ScrCmd_showmoneybox @ 0x93 .4byte ScrCmd_hidemoneybox @ 0x94 .4byte ScrCmd_updatemoneybox @ 0x95 - .4byte ScrCmd_getpricereduction @ 0x96 + .4byte ScrCmd_getpokenewsactive @ 0x96 .4byte ScrCmd_fadescreen @ 0x97 .4byte ScrCmd_fadescreenspeed @ 0x98 - .4byte ScrCmd_setflashradius @ 0x99 + .4byte ScrCmd_setflashlevel @ 0x99 .4byte ScrCmd_animateflash @ 0x9a .4byte ScrCmd_messageautoscroll @ 0x9b .4byte ScrCmd_dofieldeffect @ 0x9c - .4byte ScrCmd_setfieldeffectarg @ 0x9d + .4byte ScrCmd_setfieldeffectargument @ 0x9d .4byte ScrCmd_waitfieldeffect @ 0x9e .4byte ScrCmd_setrespawn @ 0x9f .4byte ScrCmd_checkplayergender @ 0xa0 @@ -168,8 +168,8 @@ gScriptCmdTable:: .4byte ScrCmd_doweather @ 0xa5 .4byte ScrCmd_setstepcallback @ 0xa6 .4byte ScrCmd_setmaplayoutindex @ 0xa7 - .4byte ScrCmd_setobjectpriority @ 0xa8 - .4byte ScrCmd_resetobjectpriority @ 0xa9 + .4byte ScrCmd_setobjectsubpriority @ 0xa8 + .4byte ScrCmd_resetobjectsubpriority @ 0xa9 .4byte ScrCmd_createvobject @ 0xaa .4byte ScrCmd_turnvobject @ 0xab .4byte ScrCmd_opendoor @ 0xac @@ -190,7 +190,7 @@ gScriptCmdTable:: .4byte ScrCmd_vgoto_if @ 0xbb .4byte ScrCmd_vcall_if @ 0xbc .4byte ScrCmd_vmessage @ 0xbd - .4byte ScrCmd_vloadword @ 0xbe + .4byte ScrCmd_vbuffermessage @ 0xbe .4byte ScrCmd_vbufferstring @ 0xbf .4byte ScrCmd_showcoinsbox @ 0xc0 .4byte ScrCmd_hidecoinsbox @ 0xc1 @@ -207,7 +207,7 @@ gScriptCmdTable:: .4byte ScrCmd_nop1 @ 0xcc .4byte ScrCmd_setmoneventlegal @ 0xcd .4byte ScrCmd_checkmoneventlegal @ 0xce - .4byte ScrCmd_gotoram @ 0xcf + .4byte ScrCmd_trywondercardscript @ 0xcf .4byte ScrCmd_nop1 @ 0xd0 .4byte ScrCmd_warpspinenter @ 0xd1 .4byte ScrCmd_setmonmetlocation @ 0xd2 @@ -224,8 +224,8 @@ gScriptCmdTable:: .4byte ScrCmd_buffertrainerclassname @ 0xdd .4byte ScrCmd_buffertrainername @ 0xde .4byte ScrCmd_pokenavcall @ 0xdf - .4byte ScrCmd_warpsootopolislegend @ 0xe0 - .4byte ScrCmd_buffercontesttype @ 0xe1 + .4byte ScrCmd_warpwhitefade @ 0xe0 + .4byte ScrCmd_buffercontestname @ 0xe1 .4byte ScrCmd_bufferitemnameplural @ 0xe2 gScriptCmdTableEnd:: diff --git a/data/scripts/abnormal_weather.inc b/data/scripts/abnormal_weather.inc index 9af24c45d5..c5b03a9704 100644 --- a/data/scripts/abnormal_weather.inc +++ b/data/scripts/abnormal_weather.inc @@ -1,161 +1,161 @@ AbnormalWeather_EventScript_PlaceTilesRoute114North:: - setmetatile 7, 3, METATILE_Fallarbor_RedCaveEntrance_Top, 1 - setmetatile 7, 4, METATILE_Fallarbor_RedCaveEntrance_Bottom, 0 + setmetatile 7, 3, METATILE_Fallarbor_RedCaveEntrance_Top, TRUE + setmetatile 7, 4, METATILE_Fallarbor_RedCaveEntrance_Bottom, FALSE return AbnormalWeather_EventScript_PlaceTilesRoute114South:: - setmetatile 6, 45, METATILE_Fallarbor_BrownCaveEntrance_Top, 1 - setmetatile 6, 46, METATILE_Fallarbor_BrownCaveEntrance_Bottom, 0 + setmetatile 6, 45, METATILE_Fallarbor_BrownCaveEntrance_Top, TRUE + setmetatile 6, 46, METATILE_Fallarbor_BrownCaveEntrance_Bottom, FALSE return AbnormalWeather_EventScript_PlaceTilesRoute115West:: - setmetatile 21, 5, METATILE_Fallarbor_BrownCaveEntrance_Top, 1 - setmetatile 21, 6, METATILE_Fallarbor_BrownCaveEntrance_Bottom, 0 + setmetatile 21, 5, METATILE_Fallarbor_BrownCaveEntrance_Top, TRUE + setmetatile 21, 6, METATILE_Fallarbor_BrownCaveEntrance_Bottom, FALSE return AbnormalWeather_EventScript_PlaceTilesRoute115East:: - setmetatile 36, 9, METATILE_Fallarbor_BrownCaveEntrance_Top, 1 - setmetatile 36, 10, METATILE_Fallarbor_BrownCaveEntrance_Bottom, 0 + setmetatile 36, 9, METATILE_Fallarbor_BrownCaveEntrance_Top, TRUE + setmetatile 36, 10, METATILE_Fallarbor_BrownCaveEntrance_Bottom, FALSE return AbnormalWeather_EventScript_PlaceTilesRoute116North:: - setmetatile 59, 12, METATILE_General_CaveEntrance_Top, 1 - setmetatile 59, 13, METATILE_General_CaveEntrance_Bottom, 0 + setmetatile 59, 12, METATILE_General_CaveEntrance_Top, TRUE + setmetatile 59, 13, METATILE_General_CaveEntrance_Bottom, FALSE return AbnormalWeather_EventScript_PlaceTilesRoute116South:: - setmetatile 79, 5, METATILE_General_CaveEntrance_Top, 1 - setmetatile 79, 6, METATILE_General_CaveEntrance_Bottom, 0 + setmetatile 79, 5, METATILE_General_CaveEntrance_Top, TRUE + setmetatile 79, 6, METATILE_General_CaveEntrance_Bottom, FALSE return AbnormalWeather_EventScript_PlaceTilesRoute118East:: - setmetatile 42, 5, METATILE_General_CaveEntrance_Top, 1 - setmetatile 42, 6, METATILE_General_CaveEntrance_Bottom, 0 + setmetatile 42, 5, METATILE_General_CaveEntrance_Top, TRUE + setmetatile 42, 6, METATILE_General_CaveEntrance_Bottom, FALSE return AbnormalWeather_EventScript_PlaceTilesRoute118West:: - setmetatile 9, 5, METATILE_General_CaveEntrance_Top, 1 - setmetatile 9, 6, METATILE_General_CaveEntrance_Bottom, 0 + setmetatile 9, 5, METATILE_General_CaveEntrance_Top, TRUE + setmetatile 9, 6, METATILE_General_CaveEntrance_Bottom, FALSE return AbnormalWeather_EventScript_PlaceTilesRoute105North:: - setmetatile 10, 28, METATILE_General_RoughWater, 0 - setmetatile 11, 28, METATILE_General_RoughWater, 0 - setmetatile 9, 29, METATILE_General_RoughWater, 0 - setmetatile 10, 29, METATILE_General_RoughDeepWater, 0 - setmetatile 11, 29, METATILE_General_RoughDeepWater, 0 - setmetatile 12, 29, METATILE_General_RoughWater, 0 - setmetatile 9, 30, METATILE_General_RoughWater, 0 - setmetatile 10, 30, METATILE_General_RoughDeepWater, 0 - setmetatile 11, 30, METATILE_General_RoughDeepWater, 0 - setmetatile 12, 30, METATILE_General_RoughWater, 0 - setmetatile 10, 31, METATILE_General_RoughWater, 0 - setmetatile 11, 31, METATILE_General_RoughWater, 0 + setmetatile 10, 28, METATILE_General_RoughWater, FALSE + setmetatile 11, 28, METATILE_General_RoughWater, FALSE + setmetatile 9, 29, METATILE_General_RoughWater, FALSE + setmetatile 10, 29, METATILE_General_RoughDeepWater, FALSE + setmetatile 11, 29, METATILE_General_RoughDeepWater, FALSE + setmetatile 12, 29, METATILE_General_RoughWater, FALSE + setmetatile 9, 30, METATILE_General_RoughWater, FALSE + setmetatile 10, 30, METATILE_General_RoughDeepWater, FALSE + setmetatile 11, 30, METATILE_General_RoughDeepWater, FALSE + setmetatile 12, 30, METATILE_General_RoughWater, FALSE + setmetatile 10, 31, METATILE_General_RoughWater, FALSE + setmetatile 11, 31, METATILE_General_RoughWater, FALSE return AbnormalWeather_EventScript_PlaceTilesRoute105South:: - setmetatile 20, 53, METATILE_General_RoughWater, 0 - setmetatile 21, 53, METATILE_General_RoughWater, 0 - setmetatile 19, 54, METATILE_General_RoughWater, 0 - setmetatile 20, 54, METATILE_General_RoughDeepWater, 0 - setmetatile 21, 54, METATILE_General_RoughDeepWater, 0 - setmetatile 22, 54, METATILE_General_RoughWater, 0 - setmetatile 19, 55, METATILE_General_RoughWater, 0 - setmetatile 20, 55, METATILE_General_RoughDeepWater, 0 - setmetatile 21, 55, METATILE_General_RoughDeepWater, 0 - setmetatile 22, 55, METATILE_General_RoughWater, 0 - setmetatile 20, 56, METATILE_General_RoughWater, 0 - setmetatile 21, 56, METATILE_General_RoughWater, 0 + setmetatile 20, 53, METATILE_General_RoughWater, FALSE + setmetatile 21, 53, METATILE_General_RoughWater, FALSE + setmetatile 19, 54, METATILE_General_RoughWater, FALSE + setmetatile 20, 54, METATILE_General_RoughDeepWater, FALSE + setmetatile 21, 54, METATILE_General_RoughDeepWater, FALSE + setmetatile 22, 54, METATILE_General_RoughWater, FALSE + setmetatile 19, 55, METATILE_General_RoughWater, FALSE + setmetatile 20, 55, METATILE_General_RoughDeepWater, FALSE + setmetatile 21, 55, METATILE_General_RoughDeepWater, FALSE + setmetatile 22, 55, METATILE_General_RoughWater, FALSE + setmetatile 20, 56, METATILE_General_RoughWater, FALSE + setmetatile 21, 56, METATILE_General_RoughWater, FALSE return AbnormalWeather_EventScript_PlaceTilesRoute125West:: - setmetatile 8, 16, METATILE_General_RoughWater, 0 - setmetatile 9, 16, METATILE_General_RoughWater, 0 - setmetatile 7, 17, METATILE_General_RoughWater, 0 - setmetatile 8, 17, METATILE_General_RoughDeepWater, 0 - setmetatile 9, 17, METATILE_General_RoughDeepWater, 0 - setmetatile 10, 17, METATILE_General_RoughWater, 0 - setmetatile 7, 18, METATILE_General_RoughWater, 0 - setmetatile 8, 18, METATILE_General_RoughDeepWater, 0 - setmetatile 9, 18, METATILE_General_RoughDeepWater, 0 - setmetatile 10, 18, METATILE_General_RoughWater, 0 - setmetatile 8, 19, METATILE_General_RoughWater, 0 - setmetatile 9, 19, METATILE_General_RoughWater, 0 + setmetatile 8, 16, METATILE_General_RoughWater, FALSE + setmetatile 9, 16, METATILE_General_RoughWater, FALSE + setmetatile 7, 17, METATILE_General_RoughWater, FALSE + setmetatile 8, 17, METATILE_General_RoughDeepWater, FALSE + setmetatile 9, 17, METATILE_General_RoughDeepWater, FALSE + setmetatile 10, 17, METATILE_General_RoughWater, FALSE + setmetatile 7, 18, METATILE_General_RoughWater, FALSE + setmetatile 8, 18, METATILE_General_RoughDeepWater, FALSE + setmetatile 9, 18, METATILE_General_RoughDeepWater, FALSE + setmetatile 10, 18, METATILE_General_RoughWater, FALSE + setmetatile 8, 19, METATILE_General_RoughWater, FALSE + setmetatile 9, 19, METATILE_General_RoughWater, FALSE return AbnormalWeather_EventScript_PlaceTilesRoute125East:: - setmetatile 53, 18, METATILE_General_RoughWater, 0 - setmetatile 54, 18, METATILE_General_RoughWater, 0 - setmetatile 52, 19, METATILE_General_RoughWater, 0 - setmetatile 53, 19, METATILE_General_RoughDeepWater, 0 - setmetatile 54, 19, METATILE_General_RoughDeepWater, 0 - setmetatile 55, 19, METATILE_General_RoughWater, 0 - setmetatile 52, 20, METATILE_General_RoughWater, 0 - setmetatile 53, 20, METATILE_General_RoughDeepWater, 0 - setmetatile 54, 20, METATILE_General_RoughDeepWater, 0 - setmetatile 55, 20, METATILE_General_RoughWater, 0 - setmetatile 53, 21, METATILE_General_RoughWater, 0 - setmetatile 54, 21, METATILE_General_RoughWater, 0 + setmetatile 53, 18, METATILE_General_RoughWater, FALSE + setmetatile 54, 18, METATILE_General_RoughWater, FALSE + setmetatile 52, 19, METATILE_General_RoughWater, FALSE + setmetatile 53, 19, METATILE_General_RoughDeepWater, FALSE + setmetatile 54, 19, METATILE_General_RoughDeepWater, FALSE + setmetatile 55, 19, METATILE_General_RoughWater, FALSE + setmetatile 52, 20, METATILE_General_RoughWater, FALSE + setmetatile 53, 20, METATILE_General_RoughDeepWater, FALSE + setmetatile 54, 20, METATILE_General_RoughDeepWater, FALSE + setmetatile 55, 20, METATILE_General_RoughWater, FALSE + setmetatile 53, 21, METATILE_General_RoughWater, FALSE + setmetatile 54, 21, METATILE_General_RoughWater, FALSE return AbnormalWeather_EventScript_PlaceTilesRoute127North:: - setmetatile 57, 9, METATILE_General_RoughWater, 0 - setmetatile 58, 9, METATILE_General_RoughWater, 0 - setmetatile 56, 10, METATILE_General_RoughWater, 0 - setmetatile 57, 10, METATILE_General_RoughDeepWater, 0 - setmetatile 58, 10, METATILE_General_RoughDeepWater, 0 - setmetatile 59, 10, METATILE_General_RoughWater, 0 - setmetatile 56, 11, METATILE_General_RoughWater, 0 - setmetatile 57, 11, METATILE_General_RoughDeepWater, 0 - setmetatile 58, 11, METATILE_General_RoughDeepWater, 0 - setmetatile 59, 11, METATILE_General_RoughWater, 0 - setmetatile 57, 12, METATILE_General_RoughWater, 0 - setmetatile 58, 12, METATILE_General_RoughWater, 0 + setmetatile 57, 9, METATILE_General_RoughWater, FALSE + setmetatile 58, 9, METATILE_General_RoughWater, FALSE + setmetatile 56, 10, METATILE_General_RoughWater, FALSE + setmetatile 57, 10, METATILE_General_RoughDeepWater, FALSE + setmetatile 58, 10, METATILE_General_RoughDeepWater, FALSE + setmetatile 59, 10, METATILE_General_RoughWater, FALSE + setmetatile 56, 11, METATILE_General_RoughWater, FALSE + setmetatile 57, 11, METATILE_General_RoughDeepWater, FALSE + setmetatile 58, 11, METATILE_General_RoughDeepWater, FALSE + setmetatile 59, 11, METATILE_General_RoughWater, FALSE + setmetatile 57, 12, METATILE_General_RoughWater, FALSE + setmetatile 58, 12, METATILE_General_RoughWater, FALSE return AbnormalWeather_EventScript_PlaceTilesRoute127South:: - setmetatile 61, 30, METATILE_General_RoughWater, 0 - setmetatile 62, 30, METATILE_General_RoughWater, 0 - setmetatile 60, 31, METATILE_General_RoughWater, 0 - setmetatile 61, 31, METATILE_General_RoughDeepWater, 0 - setmetatile 62, 31, METATILE_General_RoughDeepWater, 0 - setmetatile 63, 31, METATILE_General_RoughWater, 0 - setmetatile 60, 32, METATILE_General_RoughWater, 0 - setmetatile 61, 32, METATILE_General_RoughDeepWater, 0 - setmetatile 62, 32, METATILE_General_RoughDeepWater, 0 - setmetatile 63, 32, METATILE_General_RoughWater, 0 - setmetatile 61, 33, METATILE_General_RoughWater, 0 - setmetatile 62, 33, METATILE_General_RoughWater, 0 + setmetatile 61, 30, METATILE_General_RoughWater, FALSE + setmetatile 62, 30, METATILE_General_RoughWater, FALSE + setmetatile 60, 31, METATILE_General_RoughWater, FALSE + setmetatile 61, 31, METATILE_General_RoughDeepWater, FALSE + setmetatile 62, 31, METATILE_General_RoughDeepWater, FALSE + setmetatile 63, 31, METATILE_General_RoughWater, FALSE + setmetatile 60, 32, METATILE_General_RoughWater, FALSE + setmetatile 61, 32, METATILE_General_RoughDeepWater, FALSE + setmetatile 62, 32, METATILE_General_RoughDeepWater, FALSE + setmetatile 63, 32, METATILE_General_RoughWater, FALSE + setmetatile 61, 33, METATILE_General_RoughWater, FALSE + setmetatile 62, 33, METATILE_General_RoughWater, FALSE return AbnormalWeather_EventScript_PlaceTilesRoute129West:: - setmetatile 16, 14, METATILE_General_RoughWater, 0 - setmetatile 17, 14, METATILE_General_RoughWater, 0 - setmetatile 15, 15, METATILE_General_RoughWater, 0 - setmetatile 16, 15, METATILE_General_RoughDeepWater, 0 - setmetatile 17, 15, METATILE_General_RoughDeepWater, 0 - setmetatile 18, 15, METATILE_General_RoughWater, 0 - setmetatile 15, 16, METATILE_General_RoughWater, 0 - setmetatile 16, 16, METATILE_General_RoughDeepWater, 0 - setmetatile 17, 16, METATILE_General_RoughDeepWater, 0 - setmetatile 18, 16, METATILE_General_RoughWater, 0 - setmetatile 16, 17, METATILE_General_RoughWater, 0 - setmetatile 17, 17, METATILE_General_RoughWater, 0 + setmetatile 16, 14, METATILE_General_RoughWater, FALSE + setmetatile 17, 14, METATILE_General_RoughWater, FALSE + setmetatile 15, 15, METATILE_General_RoughWater, FALSE + setmetatile 16, 15, METATILE_General_RoughDeepWater, FALSE + setmetatile 17, 15, METATILE_General_RoughDeepWater, FALSE + setmetatile 18, 15, METATILE_General_RoughWater, FALSE + setmetatile 15, 16, METATILE_General_RoughWater, FALSE + setmetatile 16, 16, METATILE_General_RoughDeepWater, FALSE + setmetatile 17, 16, METATILE_General_RoughDeepWater, FALSE + setmetatile 18, 16, METATILE_General_RoughWater, FALSE + setmetatile 16, 17, METATILE_General_RoughWater, FALSE + setmetatile 17, 17, METATILE_General_RoughWater, FALSE return AbnormalWeather_EventScript_PlaceTilesRoute129East:: - setmetatile 42, 19, METATILE_General_RoughWater, 0 - setmetatile 43, 19, METATILE_General_RoughWater, 0 - setmetatile 41, 20, METATILE_General_RoughWater, 0 - setmetatile 42, 20, METATILE_General_RoughDeepWater, 0 - setmetatile 43, 20, METATILE_General_RoughDeepWater, 0 - setmetatile 44, 20, METATILE_General_RoughWater, 0 - setmetatile 41, 21, METATILE_General_RoughWater, 0 - setmetatile 42, 21, METATILE_General_RoughDeepWater, 0 - setmetatile 43, 21, METATILE_General_RoughDeepWater, 0 - setmetatile 44, 21, METATILE_General_RoughWater, 0 - setmetatile 42, 22, METATILE_General_RoughWater, 0 - setmetatile 43, 22, METATILE_General_RoughWater, 0 + setmetatile 42, 19, METATILE_General_RoughWater, FALSE + setmetatile 43, 19, METATILE_General_RoughWater, FALSE + setmetatile 41, 20, METATILE_General_RoughWater, FALSE + setmetatile 42, 20, METATILE_General_RoughDeepWater, FALSE + setmetatile 43, 20, METATILE_General_RoughDeepWater, FALSE + setmetatile 44, 20, METATILE_General_RoughWater, FALSE + setmetatile 41, 21, METATILE_General_RoughWater, FALSE + setmetatile 42, 21, METATILE_General_RoughDeepWater, FALSE + setmetatile 43, 21, METATILE_General_RoughDeepWater, FALSE + setmetatile 44, 21, METATILE_General_RoughWater, FALSE + setmetatile 42, 22, METATILE_General_RoughWater, FALSE + setmetatile 43, 22, METATILE_General_RoughWater, FALSE return AbnormalWeather_EventScript_HideMapNamePopup:: @@ -172,8 +172,7 @@ AbnormalWeather_StartGroudonWeather:: AbnormalWeather_EventScript_EndEventAndCleanup_1:: lockall - compare VAR_ABNORMAL_WEATHER_LOCATION, MARINE_CAVE_LOCATIONS_START - goto_if_ge AbnormalWeather_EventScript_ShowRainEndedMessage + goto_if_ge VAR_ABNORMAL_WEATHER_LOCATION, MARINE_CAVE_LOCATIONS_START, AbnormalWeather_EventScript_ShowRainEndedMessage goto AbnormalWeather_EventScript_ShowSunEndedMessage end @@ -222,163 +221,163 @@ AbnormalWeather_EventScript_CleanupMapTiles:: return AbnormalWeather_EventScript_CleanupRoute114North:: - setmetatile 7, 3, METATILE_Fallarbor_RedRockWall, 1 - setmetatile 7, 4, METATILE_Fallarbor_RedRockWall, 1 + setmetatile 7, 3, METATILE_Fallarbor_RedRockWall, TRUE + setmetatile 7, 4, METATILE_Fallarbor_RedRockWall, TRUE return AbnormalWeather_EventScript_CleanupRoute114South:: - setmetatile 6, 45, METATILE_Fallarbor_BrownRockWall, 1 - setmetatile 6, 46, METATILE_Fallarbor_BrownRockWall, 1 + setmetatile 6, 45, METATILE_Fallarbor_BrownRockWall, TRUE + setmetatile 6, 46, METATILE_Fallarbor_BrownRockWall, TRUE return AbnormalWeather_EventScript_CleanupRoute115West:: - setmetatile 21, 5, METATILE_Fallarbor_BrownRockWall, 1 - setmetatile 21, 6, METATILE_Fallarbor_BrownRockWall, 1 + setmetatile 21, 5, METATILE_Fallarbor_BrownRockWall, TRUE + setmetatile 21, 6, METATILE_Fallarbor_BrownRockWall, TRUE return AbnormalWeather_EventScript_CleanupRoute115East:: - setmetatile 36, 9, METATILE_Fallarbor_BrownRockWall, 1 - setmetatile 36, 10, METATILE_Fallarbor_BrownRockWall, 1 + setmetatile 36, 9, METATILE_Fallarbor_BrownRockWall, TRUE + setmetatile 36, 10, METATILE_Fallarbor_BrownRockWall, TRUE return AbnormalWeather_EventScript_CleanupRoute116North:: - setmetatile 59, 12, METATILE_General_RockWall_RockBase, 1 - setmetatile 59, 13, METATILE_General_RockWall_RockBase, 1 + setmetatile 59, 12, METATILE_General_RockWall_RockBase, TRUE + setmetatile 59, 13, METATILE_General_RockWall_RockBase, TRUE return AbnormalWeather_EventScript_CleanupRoute116South:: - setmetatile 79, 5, METATILE_General_RockWall_RockBase, 1 - setmetatile 79, 6, METATILE_General_RockWall_RockBase, 1 + setmetatile 79, 5, METATILE_General_RockWall_RockBase, TRUE + setmetatile 79, 6, METATILE_General_RockWall_RockBase, TRUE return AbnormalWeather_EventScript_CleanupRoute118East:: - setmetatile 42, 5, METATILE_General_RockWall_RockBase, 1 - setmetatile 42, 6, METATILE_General_RockWall_GrassBase, 1 + setmetatile 42, 5, METATILE_General_RockWall_RockBase, TRUE + setmetatile 42, 6, METATILE_General_RockWall_GrassBase, TRUE return AbnormalWeather_EventScript_CleanupRoute118West:: - setmetatile 9, 5, METATILE_General_RockWall_RockBase, 1 - setmetatile 9, 6, METATILE_General_RockWall_GrassBase, 1 + setmetatile 9, 5, METATILE_General_RockWall_RockBase, TRUE + setmetatile 9, 6, METATILE_General_RockWall_GrassBase, TRUE return AbnormalWeather_EventScript_CleanupRoute105North:: - setmetatile 10, 28, METATILE_General_CalmWater, 0 - setmetatile 11, 28, METATILE_General_CalmWater, 0 - setmetatile 9, 29, METATILE_General_CalmWater, 0 - setmetatile 10, 29, METATILE_General_CalmWater, 0 - setmetatile 11, 29, METATILE_General_CalmWater, 0 - setmetatile 12, 29, METATILE_General_CalmWater, 0 - setmetatile 9, 30, METATILE_General_CalmWater, 0 - setmetatile 10, 30, METATILE_General_CalmWater, 0 - setmetatile 11, 30, METATILE_General_CalmWater, 0 - setmetatile 12, 30, METATILE_General_CalmWater, 0 - setmetatile 10, 31, METATILE_General_CalmWater, 0 - setmetatile 11, 31, METATILE_General_CalmWater, 0 + setmetatile 10, 28, METATILE_General_CalmWater, FALSE + setmetatile 11, 28, METATILE_General_CalmWater, FALSE + setmetatile 9, 29, METATILE_General_CalmWater, FALSE + setmetatile 10, 29, METATILE_General_CalmWater, FALSE + setmetatile 11, 29, METATILE_General_CalmWater, FALSE + setmetatile 12, 29, METATILE_General_CalmWater, FALSE + setmetatile 9, 30, METATILE_General_CalmWater, FALSE + setmetatile 10, 30, METATILE_General_CalmWater, FALSE + setmetatile 11, 30, METATILE_General_CalmWater, FALSE + setmetatile 12, 30, METATILE_General_CalmWater, FALSE + setmetatile 10, 31, METATILE_General_CalmWater, FALSE + setmetatile 11, 31, METATILE_General_CalmWater, FALSE return AbnormalWeather_EventScript_CleanupRoute105South:: - setmetatile 20, 53, METATILE_General_CalmWater, 0 - setmetatile 21, 53, METATILE_General_CalmWater, 0 - setmetatile 19, 54, METATILE_General_CalmWater, 0 - setmetatile 20, 54, METATILE_General_CalmWater, 0 - setmetatile 21, 54, METATILE_General_CalmWater, 0 - setmetatile 22, 54, METATILE_General_CalmWater, 0 - setmetatile 19, 55, METATILE_General_CalmWater, 0 - setmetatile 20, 55, METATILE_General_CalmWater, 0 - setmetatile 21, 55, METATILE_General_CalmWater, 0 - setmetatile 22, 55, METATILE_General_CalmWater, 0 - setmetatile 20, 56, METATILE_General_CalmWater, 0 - setmetatile 21, 56, METATILE_General_CalmWater, 0 + setmetatile 20, 53, METATILE_General_CalmWater, FALSE + setmetatile 21, 53, METATILE_General_CalmWater, FALSE + setmetatile 19, 54, METATILE_General_CalmWater, FALSE + setmetatile 20, 54, METATILE_General_CalmWater, FALSE + setmetatile 21, 54, METATILE_General_CalmWater, FALSE + setmetatile 22, 54, METATILE_General_CalmWater, FALSE + setmetatile 19, 55, METATILE_General_CalmWater, FALSE + setmetatile 20, 55, METATILE_General_CalmWater, FALSE + setmetatile 21, 55, METATILE_General_CalmWater, FALSE + setmetatile 22, 55, METATILE_General_CalmWater, FALSE + setmetatile 20, 56, METATILE_General_CalmWater, FALSE + setmetatile 21, 56, METATILE_General_CalmWater, FALSE return AbnormalWeather_EventScript_CleanupRoute125West:: - setmetatile 8, 16, METATILE_General_CalmWater, 0 - setmetatile 9, 16, METATILE_General_CalmWater, 0 - setmetatile 7, 17, METATILE_General_CalmWater, 0 - setmetatile 8, 17, METATILE_General_CalmWater, 0 - setmetatile 9, 17, METATILE_General_CalmWater, 0 - setmetatile 10, 17, METATILE_General_CalmWater, 0 - setmetatile 7, 18, METATILE_General_CalmWater, 0 - setmetatile 8, 18, METATILE_General_CalmWater, 0 - setmetatile 9, 18, METATILE_General_CalmWater, 0 - setmetatile 10, 18, METATILE_General_CalmWater, 0 - setmetatile 8, 19, METATILE_General_CalmWater, 0 - setmetatile 9, 19, METATILE_General_CalmWater, 0 + setmetatile 8, 16, METATILE_General_CalmWater, FALSE + setmetatile 9, 16, METATILE_General_CalmWater, FALSE + setmetatile 7, 17, METATILE_General_CalmWater, FALSE + setmetatile 8, 17, METATILE_General_CalmWater, FALSE + setmetatile 9, 17, METATILE_General_CalmWater, FALSE + setmetatile 10, 17, METATILE_General_CalmWater, FALSE + setmetatile 7, 18, METATILE_General_CalmWater, FALSE + setmetatile 8, 18, METATILE_General_CalmWater, FALSE + setmetatile 9, 18, METATILE_General_CalmWater, FALSE + setmetatile 10, 18, METATILE_General_CalmWater, FALSE + setmetatile 8, 19, METATILE_General_CalmWater, FALSE + setmetatile 9, 19, METATILE_General_CalmWater, FALSE return AbnormalWeather_EventScript_CleanupRoute125East:: - setmetatile 53, 18, METATILE_General_CalmWater, 0 - setmetatile 54, 18, METATILE_General_CalmWater, 0 - setmetatile 52, 19, METATILE_General_CalmWater, 0 - setmetatile 53, 19, METATILE_General_CalmWater, 0 - setmetatile 54, 19, METATILE_General_CalmWater, 0 - setmetatile 55, 19, METATILE_General_CalmWater, 0 - setmetatile 52, 20, METATILE_General_CalmWater, 0 - setmetatile 53, 20, METATILE_General_CalmWater, 0 - setmetatile 54, 20, METATILE_General_CalmWater, 0 - setmetatile 55, 20, METATILE_General_CalmWater, 0 - setmetatile 53, 21, METATILE_General_CalmWater, 0 - setmetatile 54, 21, METATILE_General_CalmWater, 0 + setmetatile 53, 18, METATILE_General_CalmWater, FALSE + setmetatile 54, 18, METATILE_General_CalmWater, FALSE + setmetatile 52, 19, METATILE_General_CalmWater, FALSE + setmetatile 53, 19, METATILE_General_CalmWater, FALSE + setmetatile 54, 19, METATILE_General_CalmWater, FALSE + setmetatile 55, 19, METATILE_General_CalmWater, FALSE + setmetatile 52, 20, METATILE_General_CalmWater, FALSE + setmetatile 53, 20, METATILE_General_CalmWater, FALSE + setmetatile 54, 20, METATILE_General_CalmWater, FALSE + setmetatile 55, 20, METATILE_General_CalmWater, FALSE + setmetatile 53, 21, METATILE_General_CalmWater, FALSE + setmetatile 54, 21, METATILE_General_CalmWater, FALSE return AbnormalWeather_EventScript_CleanupRoute127North:: - setmetatile 57, 9, METATILE_General_CalmWater, 0 - setmetatile 58, 9, METATILE_General_CalmWater, 0 - setmetatile 56, 10, METATILE_General_CalmWater, 0 - setmetatile 57, 10, METATILE_General_CalmWater, 0 - setmetatile 58, 10, METATILE_General_CalmWater, 0 - setmetatile 59, 10, METATILE_General_CalmWater, 0 - setmetatile 56, 11, METATILE_General_CalmWater, 0 - setmetatile 57, 11, METATILE_General_CalmWater, 0 - setmetatile 58, 11, METATILE_General_CalmWater, 0 - setmetatile 59, 11, METATILE_General_CalmWater, 0 - setmetatile 57, 12, METATILE_General_CalmWater, 0 - setmetatile 58, 12, METATILE_General_CalmWater, 0 + setmetatile 57, 9, METATILE_General_CalmWater, FALSE + setmetatile 58, 9, METATILE_General_CalmWater, FALSE + setmetatile 56, 10, METATILE_General_CalmWater, FALSE + setmetatile 57, 10, METATILE_General_CalmWater, FALSE + setmetatile 58, 10, METATILE_General_CalmWater, FALSE + setmetatile 59, 10, METATILE_General_CalmWater, FALSE + setmetatile 56, 11, METATILE_General_CalmWater, FALSE + setmetatile 57, 11, METATILE_General_CalmWater, FALSE + setmetatile 58, 11, METATILE_General_CalmWater, FALSE + setmetatile 59, 11, METATILE_General_CalmWater, FALSE + setmetatile 57, 12, METATILE_General_CalmWater, FALSE + setmetatile 58, 12, METATILE_General_CalmWater, FALSE return AbnormalWeather_EventScript_CleanupRoute127South:: - setmetatile 61, 30, METATILE_General_CalmWater, 0 - setmetatile 62, 30, METATILE_General_CalmWater, 0 - setmetatile 60, 31, METATILE_General_CalmWater, 0 - setmetatile 61, 31, METATILE_General_CalmWater, 0 - setmetatile 62, 31, METATILE_General_CalmWater, 0 - setmetatile 63, 31, METATILE_General_CalmWater, 0 - setmetatile 60, 32, METATILE_General_CalmWater, 0 - setmetatile 61, 32, METATILE_General_CalmWater, 0 - setmetatile 62, 32, METATILE_General_CalmWater, 0 - setmetatile 63, 32, METATILE_General_CalmWater, 0 - setmetatile 61, 33, METATILE_General_CalmWater, 0 - setmetatile 62, 33, METATILE_General_CalmWater, 0 + setmetatile 61, 30, METATILE_General_CalmWater, FALSE + setmetatile 62, 30, METATILE_General_CalmWater, FALSE + setmetatile 60, 31, METATILE_General_CalmWater, FALSE + setmetatile 61, 31, METATILE_General_CalmWater, FALSE + setmetatile 62, 31, METATILE_General_CalmWater, FALSE + setmetatile 63, 31, METATILE_General_CalmWater, FALSE + setmetatile 60, 32, METATILE_General_CalmWater, FALSE + setmetatile 61, 32, METATILE_General_CalmWater, FALSE + setmetatile 62, 32, METATILE_General_CalmWater, FALSE + setmetatile 63, 32, METATILE_General_CalmWater, FALSE + setmetatile 61, 33, METATILE_General_CalmWater, FALSE + setmetatile 62, 33, METATILE_General_CalmWater, FALSE return AbnormalWeather_EventScript_CleanupRoute129West:: - setmetatile 16, 14, METATILE_General_CalmWater, 0 - setmetatile 17, 14, METATILE_General_CalmWater, 0 - setmetatile 15, 15, METATILE_General_CalmWater, 0 - setmetatile 16, 15, METATILE_General_CalmWater, 0 - setmetatile 17, 15, METATILE_General_CalmWater, 0 - setmetatile 18, 15, METATILE_General_CalmWater, 0 - setmetatile 15, 16, METATILE_General_CalmWater, 0 - setmetatile 16, 16, METATILE_General_CalmWater, 0 - setmetatile 17, 16, METATILE_General_CalmWater, 0 - setmetatile 18, 16, METATILE_General_CalmWater, 0 - setmetatile 16, 17, METATILE_General_CalmWater, 0 - setmetatile 17, 17, METATILE_General_CalmWater, 0 + setmetatile 16, 14, METATILE_General_CalmWater, FALSE + setmetatile 17, 14, METATILE_General_CalmWater, FALSE + setmetatile 15, 15, METATILE_General_CalmWater, FALSE + setmetatile 16, 15, METATILE_General_CalmWater, FALSE + setmetatile 17, 15, METATILE_General_CalmWater, FALSE + setmetatile 18, 15, METATILE_General_CalmWater, FALSE + setmetatile 15, 16, METATILE_General_CalmWater, FALSE + setmetatile 16, 16, METATILE_General_CalmWater, FALSE + setmetatile 17, 16, METATILE_General_CalmWater, FALSE + setmetatile 18, 16, METATILE_General_CalmWater, FALSE + setmetatile 16, 17, METATILE_General_CalmWater, FALSE + setmetatile 17, 17, METATILE_General_CalmWater, FALSE return AbnormalWeather_EventScript_CleanupRoute129East:: - setmetatile 42, 19, METATILE_General_CalmWater, 0 - setmetatile 43, 19, METATILE_General_CalmWater, 0 - setmetatile 41, 20, METATILE_General_CalmWater, 0 - setmetatile 42, 20, METATILE_General_CalmWater, 0 - setmetatile 43, 20, METATILE_General_CalmWater, 0 - setmetatile 44, 20, METATILE_General_CalmWater, 0 - setmetatile 41, 21, METATILE_General_CalmWater, 0 - setmetatile 42, 21, METATILE_General_CalmWater, 0 - setmetatile 43, 21, METATILE_General_CalmWater, 0 - setmetatile 44, 21, METATILE_General_CalmWater, 0 - setmetatile 42, 22, METATILE_General_CalmWater, 0 - setmetatile 43, 22, METATILE_General_CalmWater, 0 + setmetatile 42, 19, METATILE_General_CalmWater, FALSE + setmetatile 43, 19, METATILE_General_CalmWater, FALSE + setmetatile 41, 20, METATILE_General_CalmWater, FALSE + setmetatile 42, 20, METATILE_General_CalmWater, FALSE + setmetatile 43, 20, METATILE_General_CalmWater, FALSE + setmetatile 44, 20, METATILE_General_CalmWater, FALSE + setmetatile 41, 21, METATILE_General_CalmWater, FALSE + setmetatile 42, 21, METATILE_General_CalmWater, FALSE + setmetatile 43, 21, METATILE_General_CalmWater, FALSE + setmetatile 44, 21, METATILE_General_CalmWater, FALSE + setmetatile 42, 22, METATILE_General_CalmWater, FALSE + setmetatile 43, 22, METATILE_General_CalmWater, FALSE return AbnormalWeather_Underwater_SetupEscapeWarp:: @@ -394,33 +393,33 @@ AbnormalWeather_Underwater_SetupEscapeWarp:: return AbnormalWeather_Underwater_SetupEscapeWarpRoute105North:: - setescapewarp MAP_ROUTE105, 255, 11, 29 + setescapewarp MAP_ROUTE105, 11, 29 return AbnormalWeather_Underwater_SetupEscapeWarpRoute105South:: - setescapewarp MAP_ROUTE105, 255, 21, 54 + setescapewarp MAP_ROUTE105, 21, 54 return AbnormalWeather_Underwater_SetupEscapeWarpRoute125West:: - setescapewarp MAP_ROUTE125, 255, 9, 17 + setescapewarp MAP_ROUTE125, 9, 17 return AbnormalWeather_Underwater_SetupEscapeWarpRoute125East:: - setescapewarp MAP_ROUTE125, 255, 54, 19 + setescapewarp MAP_ROUTE125, 54, 19 return AbnormalWeather_Underwater_SetupEscapeWarpRoute127North:: - setescapewarp MAP_ROUTE127, 255, 58, 10 + setescapewarp MAP_ROUTE127, 58, 10 return AbnormalWeather_Underwater_SetupEscapeWarpRoute127South:: - setescapewarp MAP_ROUTE127, 255, 62, 31 + setescapewarp MAP_ROUTE127, 62, 31 return AbnormalWeather_Underwater_SetupEscapeWarpRoute129West:: - setescapewarp MAP_ROUTE129, 255, 17, 15 + setescapewarp MAP_ROUTE129, 17, 15 return AbnormalWeather_Underwater_SetupEscapeWarpRoute129East:: - setescapewarp MAP_ROUTE129, 255, 43, 20 + setescapewarp MAP_ROUTE129, 43, 20 return diff --git a/data/scripts/apprentice.inc b/data/scripts/apprentice.inc index 2a6772a5dc..6b3a99e728 100644 --- a/data/scripts/apprentice.inc +++ b/data/scripts/apprentice.inc @@ -4,40 +4,32 @@ BattleFrontier_BattleTowerLobby_EventScript_Apprentice:: lock faceplayer apprentice_gavelvlmode - compare VAR_RESULT, FALSE - goto_if_eq Apprentice_EventScript_FirstMeeting + goto_if_eq VAR_RESULT, FALSE, Apprentice_EventScript_FirstMeeting apprentice_shouldcheckgone - compare VAR_0x8004, FALSE @ Always TRUE here - goto_if_eq Apprentice_EventScript_AskQuestion + goto_if_eq VAR_0x8004, FALSE, Apprentice_EventScript_AskQuestion @ VAR_0x8004 always TRUE here goto_if_set FLAG_DAILY_APPRENTICE_LEAVES, Apprentice_EventScript_Gone Apprentice_EventScript_AskQuestion: apprentice_getquestion - compare VAR_RESULT, APPRENTICE_QUESTION_WHICH_MON - goto_if_eq Apprentice_EventScript_UseWhichMon - compare VAR_RESULT, APPRENTICE_QUESTION_WHAT_ITEM - goto_if_eq Apprentice_EventScript_UseWhatHeldItem - compare VAR_RESULT, APPRENTICE_QUESTION_WHICH_MOVE - goto_if_eq Apprentice_EventScript_UseWhichMove - compare VAR_RESULT, APPRENTICE_QUESTION_WHICH_FIRST - goto_if_eq Apprentice_EventScript_PutWhichMonFirst - compare VAR_RESULT, APPRENTICE_QUESTION_WIN_SPEECH - goto_if_eq Apprentice_EventScript_PickWinSpeech + goto_if_eq VAR_RESULT, APPRENTICE_QUESTION_WHICH_MON, Apprentice_EventScript_UseWhichMon + goto_if_eq VAR_RESULT, APPRENTICE_QUESTION_WHAT_ITEM, Apprentice_EventScript_UseWhatHeldItem + goto_if_eq VAR_RESULT, APPRENTICE_QUESTION_WHICH_MOVE, Apprentice_EventScript_UseWhichMove + goto_if_eq VAR_RESULT, APPRENTICE_QUESTION_WHICH_FIRST, Apprentice_EventScript_PutWhichMonFirst + goto_if_eq VAR_RESULT, APPRENTICE_QUESTION_WIN_SPEECH, Apprentice_EventScript_PickWinSpeech release releaseall end Apprentice_EventScript_FirstMeeting: - apprentice_buff 0, APPRENTICE_BUFF_NAME + apprentice_buff STR_VAR_1, APPRENTICE_BUFF_NAME apprentice_msg FALSE, APPRENTICE_MSG_PLEASE_TEACH Apprentice_EventScript_WhichLvlMode: apprentice_menu APPRENTICE_ASK_YES_NO - compare VAR_RESULT, 1 - goto_if_eq Apprentice_EventScript_RejectTeach + goto_if_eq VAR_RESULT, 1, Apprentice_EventScript_RejectTeach apprentice_msg FALSE, APPRENTICE_MSG_WHICH_LVL_MODE apprentice_menu APPRENTICE_ASK_WHICH_LEVEL apprentice_setlvlmode VAR_RESULT apprentice_shufflespecies - apprentice_buff 0, APPRENTICE_BUFF_LEVEL + apprentice_buff STR_VAR_1, APPRENTICE_BUFF_LEVEL apprentice_msg TRUE, APPRENTICE_MSG_THANKS_LVL_MODE call Apprentice_EventScript_SetHideFlags release @@ -54,22 +46,19 @@ Apprentice_EventScript_RejectTeach: Apprentice_EventScript_UseWhichMon: apprentice_initquestion APPRENTICE_QUESTION_WHICH_MON - apprentice_buff 0, APPRENTICE_BUFF_SPECIES1 - apprentice_buff 1, APPRENTICE_BUFF_SPECIES2 + apprentice_buff STR_VAR_1, APPRENTICE_BUFF_SPECIES1 + apprentice_buff STR_VAR_2, APPRENTICE_BUFF_SPECIES2 apprentice_msg FALSE, APPRENTICE_MSG_WHICH_MON apprentice_menu APPRENTICE_ASK_2SPECIES copyvar VAR_0x8005, VAR_RESULT - compare VAR_0x8005, 0 - call_if_eq Apprentice_EventScript_ChoseFirstMon - compare VAR_0x8005, 1 - call_if_eq Apprentice_EventScript_ChoseSecondMon + call_if_eq VAR_0x8005, 0, Apprentice_EventScript_ChoseFirstMon + call_if_eq VAR_0x8005, 1, Apprentice_EventScript_ChoseSecondMon apprentice_getnumpartymons apprentice_setpartymon VAR_RESULT apprentice_answeredquestion apprentice_getnumpartymons - compare VAR_RESULT, MULTI_PARTY_SIZE - call_if_eq Apprentice_EventScript_LastMonSelected - apprentice_buff 0, VAR_0x8007 + call_if_eq VAR_RESULT, MULTI_PARTY_SIZE, Apprentice_EventScript_LastMonSelected + apprentice_buff STR_VAR_1, VAR_0x8007 apprentice_freequestion apprentice_msg TRUE, APPRENTICE_MSG_THANKS_MON call Apprentice_EventScript_SetHideFlags @@ -94,19 +83,17 @@ Apprentice_EventScript_LastMonSelected: Apprentice_EventScript_UseWhatHeldItem: apprentice_initquestion APPRENTICE_QUESTION_WHAT_ITEM - apprentice_buff 0, APPRENTICE_BUFF_SPECIES3 + apprentice_buff STR_VAR_1, APPRENTICE_BUFF_SPECIES3 apprentice_msg TRUE, APPRENTICE_MSG_WHAT_HELD_ITEM apprentice_freequestion Apprentice_EventScript_ChooseHoldItem: fadescreen FADE_TO_BLACK setvar VAR_RESULT, 0 apprentice_openbag - compare VAR_RESULT, FALSE - goto_if_eq Apprentice_EventScript_ConfirmHoldNothing + goto_if_eq VAR_RESULT, FALSE, Apprentice_EventScript_ConfirmHoldNothing apprentice_trysetitem - compare VAR_RESULT, FALSE - goto_if_eq Apprentice_EventScript_AlreadySuggestedItem - apprentice_buff 0, APPRENTICE_BUFF_ITEM + goto_if_eq VAR_RESULT, FALSE, Apprentice_EventScript_AlreadySuggestedItem + apprentice_buff STR_VAR_1, APPRENTICE_BUFF_ITEM apprentice_msg TRUE, APPRENTICE_MSG_THANKS_HELD_ITEM apprentice_answeredquestion call Apprentice_EventScript_SetHideFlags @@ -119,12 +106,11 @@ Apprentice_EventScript_ChooseHoldItem: Apprentice_EventScript_ConfirmHoldNothing: apprentice_initquestion APPRENTICE_QUESTION_WHAT_ITEM - apprentice_buff 0, APPRENTICE_BUFF_SPECIES3 + apprentice_buff STR_VAR_1, APPRENTICE_BUFF_SPECIES3 apprentice_msg FALSE, APPRENTICE_MSG_HOLD_NOTHING apprentice_menu APPRENTICE_ASK_GIVE apprentice_freequestion - compare VAR_RESULT, 0 - goto_if_eq Apprentice_EventScript_ChooseHoldItem + goto_if_eq VAR_RESULT, 0, Apprentice_EventScript_ChooseHoldItem Apprentice_EventScript_HoldNothing: apprentice_msg TRUE, APPRENTICE_MSG_THANKS_NO_HELD_ITEM apprentice_answeredquestion @@ -140,31 +126,28 @@ Apprentice_EventScript_HoldNothing: @ different item if theyve already told the Apprentice to use it for another mon Apprentice_EventScript_AlreadySuggestedItem: apprentice_initquestion APPRENTICE_QUESTION_WHAT_ITEM - apprentice_buff 0, APPRENTICE_BUFF_ITEM - apprentice_buff 1, APPRENTICE_BUFF_SPECIES3 + apprentice_buff STR_VAR_1, APPRENTICE_BUFF_ITEM + apprentice_buff STR_VAR_2, APPRENTICE_BUFF_SPECIES3 apprentice_msg FALSE, APPRENTICE_MSG_ITEM_ALREADY_SUGGESTED apprentice_menu APPRENTICE_ASK_GIVE apprentice_freequestion - compare VAR_RESULT, 0 - goto_if_eq Apprentice_EventScript_ChooseHoldItem + goto_if_eq VAR_RESULT, 0, Apprentice_EventScript_ChooseHoldItem goto Apprentice_EventScript_HoldNothing end Apprentice_EventScript_UseWhichMove: apprentice_initquestion APPRENTICE_QUESTION_WHICH_MOVE - apprentice_buff 0, APPRENTICE_BUFF_SPECIES3 - apprentice_buff 1, APPRENTICE_BUFF_MOVE1 - apprentice_buff 2, APPRENTICE_BUFF_MOVE2 + apprentice_buff STR_VAR_1, APPRENTICE_BUFF_SPECIES3 + apprentice_buff STR_VAR_2, APPRENTICE_BUFF_MOVE1 + apprentice_buff STR_VAR_3, APPRENTICE_BUFF_MOVE2 apprentice_msg FALSE, APPRENTICE_MSG_WHICH_MOVE apprentice_menu APPRENTICE_ASK_MOVES copyvar VAR_0x8005, VAR_RESULT - compare VAR_0x8005, 0 - call_if_eq Apprentice_EventScript_ChoseMove1 - compare VAR_0x8005, 1 - call_if_eq Apprentice_EventScript_ChoseMove2 + call_if_eq VAR_0x8005, 0, Apprentice_EventScript_ChoseMove1 + call_if_eq VAR_0x8005, 1, Apprentice_EventScript_ChoseMove2 apprentice_setmove apprentice_answeredquestion - apprentice_buff 0, VAR_0x8007 + apprentice_buff STR_VAR_1, VAR_0x8007 apprentice_freequestion apprentice_msg TRUE, APPRENTICE_MSG_THANKS_MOVE call Apprentice_EventScript_SetHideFlags @@ -188,7 +171,7 @@ Apprentice_EventScript_PutWhichMonFirst: apprentice_menu APPRENTICE_ASK_3SPECIES apprentice_setleadmon VAR_RESULT apprentice_answeredquestion - apprentice_buff 0, APPRENTICE_BUFF_LEAD_MON_SPECIES + apprentice_buff STR_VAR_1, APPRENTICE_BUFF_LEAD_MON_SPECIES apprentice_msg TRUE, APPRENTICE_MSG_THANKS_MON_FIRST call Apprentice_EventScript_SetHideFlags release @@ -207,7 +190,7 @@ Apprentice_EventScript_PickWinSpeech: lock faceplayer apprentice_save - apprentice_buff 0, APPRENTICE_BUFF_WIN_SPEECH + apprentice_buff STR_VAR_1, APPRENTICE_BUFF_WIN_SPEECH apprentice_msg TRUE, APPRENTICE_MSG_THANKS_WIN_SPEECH apprentice_reset call Apprentice_EventScript_SetHideFlags @@ -225,16 +208,14 @@ Apprentice_EventScript_SetHideFlags: Apprentice_EventScript_LeaveNorth: apprentice_shouldleave - compare VAR_0x8004, FALSE @ Always TRUE here - goto_if_eq Apprentice_EventScript_DontMove + goto_if_eq VAR_0x8004, FALSE, Apprentice_EventScript_DontMove @ VAR_0x8004 always TRUE here applymovement LOCALID_APPRENTICE, Apprentice_Movement_LeaveNorth waitmovement 0 end Apprentice_EventScript_Leave: apprentice_shouldleave - compare VAR_0x8004, FALSE @ Always TRUE here - goto_if_eq Apprentice_EventScript_DontMove + goto_if_eq VAR_0x8004, FALSE, Apprentice_EventScript_DontMove @ VAR_0x8004 always TRUE here applymovement LOCALID_APPRENTICE, Apprentice_Movement_Leave waitmovement 0 end diff --git a/data/scripts/battle_pike.inc b/data/scripts/battle_pike.inc index 3260bcfd82..8ca7f5b1af 100644 --- a/data/scripts/battle_pike.inc +++ b/data/scripts/battle_pike.inc @@ -50,14 +50,10 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_InitRoomObjects:: setvar VAR_OBJ_GFX_ID_1, OBJ_EVENT_GFX_LINK_RECEPTIONIST setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_LINK_RECEPTIONIST pike_getroomtype - compare VAR_RESULT, PIKE_ROOM_STATUS - goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_InitTwoObjectRoom - compare VAR_RESULT, PIKE_ROOM_HARD_BATTLE - goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_InitTwoObjectRoom - compare VAR_RESULT, PIKE_ROOM_DOUBLE_BATTLE - goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_InitTwoObjectRoom - compare VAR_RESULT, PIKE_ROOM_BRAIN - goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_InitBrainRoomObjects + goto_if_eq VAR_RESULT, PIKE_ROOM_STATUS, BattleFrontier_BattlePikeRoomNormal_EventScript_InitTwoObjectRoom + goto_if_eq VAR_RESULT, PIKE_ROOM_HARD_BATTLE, BattleFrontier_BattlePikeRoomNormal_EventScript_InitTwoObjectRoom + goto_if_eq VAR_RESULT, PIKE_ROOM_DOUBLE_BATTLE, BattleFrontier_BattlePikeRoomNormal_EventScript_InitTwoObjectRoom + goto_if_eq VAR_RESULT, PIKE_ROOM_BRAIN, BattleFrontier_BattlePikeRoomNormal_EventScript_InitBrainRoomObjects hideobjectat LOCALID_OBJ_1, MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL setvar VAR_TEMP_4, 1 turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH @@ -114,7 +110,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpNPCRoom:: applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoom_Movement_HidePlayer waitmovement 0 call BattleFrontier_BattlePike_EventScript_CloseCurtain - warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL, 255, 4, 7 + warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL, 4, 7 waitstate end @@ -122,7 +118,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_WarpWildMonRoom:: applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoom_Movement_HidePlayer waitmovement 0 call BattleFrontier_BattlePike_EventScript_CloseCurtain - warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS, 255, 4, 19 + warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS, 4, 19 waitstate end @@ -154,10 +150,8 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_NoTurningBack:: BattleFrontier_BattlePikeRoomNormal_EventScript_Exit:: pike_ispartyfullhealth - compare VAR_RESULT, TRUE - call_if_eq BattleFrontier_BattlePikeRoom_EventScript_DisableHealing - compare VAR_RESULT, TRUE - call_if_ne BattleFrontier_BattlePikeRoom_EventScript_EnableHealing + call_if_eq VAR_RESULT, TRUE, BattleFrontier_BattlePikeRoom_EventScript_DisableHealing + call_if_ne VAR_RESULT, TRUE, BattleFrontier_BattlePikeRoom_EventScript_EnableHealing pike_get PIKE_DATA_WIN_STREAK addvar VAR_RESULT, 1 pike_set PIKE_DATA_WIN_STREAK, VAR_RESULT @@ -165,10 +159,8 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_Exit:: addvar VAR_RESULT, 1 frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT pike_isfinalroom - compare VAR_RESULT, TRUE - call_if_eq BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom - compare VAR_RESULT, FALSE - call_if_eq BattleFrontier_BattlePikeRoom_EventScript_WarpToThreePathRoom + call_if_eq VAR_RESULT, TRUE, BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom + call_if_eq VAR_RESULT, FALSE, BattleFrontier_BattlePikeRoom_EventScript_WarpToThreePathRoom waitstate end @@ -184,23 +176,21 @@ BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom:: applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoom_Movement_HidePlayer waitmovement 0 call BattleFrontier_BattlePike_EventScript_CloseCurtain - warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL, 255, 2, 7 + warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL, 2, 7 return BattleFrontier_BattlePikeRoom_EventScript_WarpToThreePathRoom:: applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattlePikeRoom_Movement_HidePlayer waitmovement 0 call BattleFrontier_BattlePike_EventScript_CloseCurtain - warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM, 255, 6, 10 + warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM, 6, 10 return BattleFrontier_BattlePikeRoomWildMons_EventScript_Exit:: pike_exitwildmonroom pike_ispartyfullhealth - compare VAR_RESULT, TRUE - call_if_eq BattleFrontier_BattlePikeRoom_EventScript_DisableHealing - compare VAR_RESULT, TRUE - call_if_ne BattleFrontier_BattlePikeRoom_EventScript_EnableHealing + call_if_eq VAR_RESULT, TRUE, BattleFrontier_BattlePikeRoom_EventScript_DisableHealing + call_if_ne VAR_RESULT, TRUE, BattleFrontier_BattlePikeRoom_EventScript_EnableHealing pike_get PIKE_DATA_WIN_STREAK addvar VAR_RESULT, 1 pike_set PIKE_DATA_WIN_STREAK, VAR_RESULT @@ -208,10 +198,8 @@ BattleFrontier_BattlePikeRoomWildMons_EventScript_Exit:: addvar VAR_RESULT, 1 frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT pike_isfinalroom - compare VAR_RESULT, TRUE - call_if_eq BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom - compare VAR_RESULT, FALSE - call_if_eq BattleFrontier_BattlePikeRoom_EventScript_WarpToThreePathRoom + call_if_eq VAR_RESULT, TRUE, BattleFrontier_BattlePikeRoom_EventScript_WarpToFinalRoom + call_if_eq VAR_RESULT, FALSE, BattleFrontier_BattlePikeRoom_EventScript_WarpToThreePathRoom waitstate end @@ -230,17 +218,15 @@ BattleFrontier_BattlePikeRoomWildMons_EventScript_NoTurningBack:: BattleFrontier_BattlePike_EventScript_Retire:: frontier_set FRONTIER_DATA_CHALLENGE_STATUS CHALLENGE_STATUS_LOST - warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 255, 5, 6 + warp MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY, 5, 6 waitstate end BattleFrontier_BattlePikeRoom_OnResume: setorcopyvar VAR_0x8006, VAR_RESULT @ Save VAR_RESULT from being overwritten frontier_get FRONTIER_DATA_CHALLENGE_STATUS - compare VAR_RESULT, CHALLENGE_STATUS_PAUSED - goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_EndOnResume - compare VAR_RESULT, CHALLENGE_STATUS_SAVING - goto_if_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_EndOnResume + goto_if_eq VAR_RESULT, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattlePikeThreePathRoom_EventScript_EndOnResume + goto_if_eq VAR_RESULT, CHALLENGE_STATUS_SAVING, BattleFrontier_BattlePikeThreePathRoom_EventScript_EndOnResume call BattleFrontier_BattlePikeRoom_EventScript_ResetSketchedMoves BattleFrontier_BattlePikeThreePathRoom_EventScript_EndOnResume:: setorcopyvar VAR_RESULT, VAR_0x8006 diff --git a/data/scripts/berry_blender.inc b/data/scripts/berry_blender.inc index 1d833f470c..f860ef066c 100644 --- a/data/scripts/berry_blender.inc +++ b/data/scripts/berry_blender.inc @@ -249,8 +249,7 @@ BerryBlender_EventScript_BerryBlender1:: applymovement LOCALID_EXPERT_M, BerryBlender_Movement_BlendLeaderWalkInPlace waitmovement 0 msgbox BerryBlender_Text_WantToMakePokeblocks, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq BerryBlender_EventScript_TryUseBerryBlender1 + goto_if_eq VAR_RESULT, YES, BerryBlender_EventScript_TryUseBerryBlender1 goto BerryBlender_EventScript_DeclineBlender1 end @@ -280,8 +279,7 @@ BerryBlender_EventScript_Blender1GiveSpareBerry: BerryBlender_EventScript_UseBerryBlender1: msgbox BerryBlender_Text_KnowHowToMakePokeblocks, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq BerryBlender_EventScript_StartBlender1 + goto_if_eq VAR_RESULT, YES, BerryBlender_EventScript_StartBlender1 goto BerryBlender_EventScript_ExplainBlending1 end @@ -296,15 +294,12 @@ BerryBlender_EventScript_ExplainBlending1: end BerryBlender_EventScript_TryUseBerryBlender1: - checkitem ITEM_POKEBLOCK_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq BerryBlender_EventScript_Blender1NoCase + checkitem ITEM_POKEBLOCK_CASE + goto_if_eq VAR_RESULT, FALSE, BerryBlender_EventScript_Blender1NoCase specialvar VAR_RESULT, GetFirstFreePokeblockSlot - compare VAR_RESULT, 65535 - goto_if_eq BerryBlender_EventScript_Blender1CaseFull + goto_if_eq VAR_RESULT, 65535, BerryBlender_EventScript_Blender1CaseFull specialvar VAR_RESULT, PlayerHasBerries - compare VAR_RESULT, FALSE - goto_if_eq BerryBlender_EventScript_Blender1NoBerries + goto_if_eq VAR_RESULT, FALSE, BerryBlender_EventScript_Blender1NoBerries msgbox BerryBlender_Text_Excellent, MSGBOX_DEFAULT goto BerryBlender_EventScript_UseBerryBlender1 end @@ -334,8 +329,7 @@ BerryBlender_EventScript_BerryBlender2:: applymovement LOCALID_MAN, BerryBlender_Movement_BlendLeaderWalkInPlace waitmovement 0 msgbox BerryBlender_Text_WantToBlendPokeblocksWithUs, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq BerryBlender_EventScript_TryUseBerryBlender2 + goto_if_eq VAR_RESULT, YES, BerryBlender_EventScript_TryUseBerryBlender2 goto BerryBlender_EventScript_DeclineBlender2 end @@ -351,8 +345,7 @@ BerryBlender_EventScript_Blender2NoBerries: BerryBlender_EventScript_UseBerryBlender2: msgbox BerryBlender_Text_KnowHowToMakePokeblocks2, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq BerryBlender_EventScript_StartBlender2 + goto_if_eq VAR_RESULT, YES, BerryBlender_EventScript_StartBlender2 goto BerryBlender_EventScript_ExplainBlending2 end @@ -368,17 +361,13 @@ BerryBlender_EventScript_ExplainBlending2: BerryBlender_EventScript_TryUseBerryBlender2: specialvar VAR_RESULT, PlayerHasBerries - compare VAR_RESULT, FALSE - goto_if_eq BerryBlender_EventScript_Blender2NoBerries - checkitem ITEM_POKEBLOCK_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq BerryBlender_EventScript_Blender2NoCase + goto_if_eq VAR_RESULT, FALSE, BerryBlender_EventScript_Blender2NoBerries + checkitem ITEM_POKEBLOCK_CASE + goto_if_eq VAR_RESULT, FALSE, BerryBlender_EventScript_Blender2NoCase msgbox BerryBlender_Text_Okay, MSGBOX_DEFAULT specialvar VAR_RESULT, GetFirstFreePokeblockSlot - compare VAR_RESULT, 65535 - goto_if_ne BerryBlender_EventScript_UseBerryBlender2 - compare VAR_RESULT, 65535 - goto_if_eq BerryBlender_EventScript_Blender2CaseFull + goto_if_ne VAR_RESULT, 65535, BerryBlender_EventScript_UseBerryBlender2 + goto_if_eq VAR_RESULT, 65535, BerryBlender_EventScript_Blender2CaseFull end BerryBlender_EventScript_Blender2CaseFull: @@ -400,8 +389,7 @@ BerryBlender_EventScript_BerryBlender3:: applymovement VAR_0x8008, BerryBlender_Movement_BlendLeaderWalkInPlace waitmovement 0 msgbox BerryBlender_Text_LookGoodAtBlendingJoinUs, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq BerryBlender_EventScript_TryUseBlender3 + goto_if_eq VAR_RESULT, YES, BerryBlender_EventScript_TryUseBlender3 goto BerryBlender_EventScript_DeclineBlender3 end @@ -417,8 +405,7 @@ BerryBlender_EventScript_Blender3NoBerries: BerryBlender_EventScript_UseBerryBlender3: msgbox BerryBlender_Text_KnowHowToMakePokeblocks3, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq BerryBlender_EventScript_StartBlender3 + goto_if_eq VAR_RESULT, YES, BerryBlender_EventScript_StartBlender3 goto BerryBlender_EventScript_ExplainBlending3 end @@ -434,17 +421,13 @@ BerryBlender_EventScript_ExplainBlending3: BerryBlender_EventScript_TryUseBlender3: specialvar VAR_RESULT, PlayerHasBerries - compare VAR_RESULT, FALSE - goto_if_eq BerryBlender_EventScript_Blender3NoBerries - checkitem ITEM_POKEBLOCK_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq BerryBlender_EventScript_Blender3NoCase + goto_if_eq VAR_RESULT, FALSE, BerryBlender_EventScript_Blender3NoBerries + checkitem ITEM_POKEBLOCK_CASE + goto_if_eq VAR_RESULT, FALSE, BerryBlender_EventScript_Blender3NoCase msgbox BerryBlender_Text_OhDear, MSGBOX_DEFAULT specialvar VAR_RESULT, GetFirstFreePokeblockSlot - compare VAR_RESULT, 65535 - goto_if_ne BerryBlender_EventScript_UseBerryBlender3 - compare VAR_RESULT, 65535 - goto_if_eq BerryBlender_EventScript_Blender3CaseFull + goto_if_ne VAR_RESULT, 65535, BerryBlender_EventScript_UseBerryBlender3 + goto_if_eq VAR_RESULT, 65535, BerryBlender_EventScript_Blender3CaseFull end BerryBlender_EventScript_Blender3CaseFull: @@ -461,8 +444,7 @@ BerryBlender_EventScript_BlendMasterPresent: lockall setvar NUM_OPPONENTS, 1 msgbox BerryBlender_Text_SeeMyMasteryInAction, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq BerryBlender_EventScript_TryBlendWithBlendMaster + goto_if_eq VAR_RESULT, YES, BerryBlender_EventScript_TryBlendWithBlendMaster msgbox BerryBlender_Text_TooBusyNowIsee, MSGBOX_DEFAULT releaseall end @@ -473,23 +455,18 @@ BerryBlender_EventScript_BlendMasterNoBerries: end BerryBlender_EventScript_TryBlendWithBlendMaster: - checkitem ITEM_POKEBLOCK_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq BerryBlender_EventScript_BlendMasterNoCase + checkitem ITEM_POKEBLOCK_CASE + goto_if_eq VAR_RESULT, FALSE, BerryBlender_EventScript_BlendMasterNoCase specialvar VAR_RESULT, PlayerHasBerries - compare VAR_RESULT, FALSE - goto_if_eq BerryBlender_EventScript_BlendMasterNoBerries + goto_if_eq VAR_RESULT, FALSE, BerryBlender_EventScript_BlendMasterNoBerries specialvar VAR_RESULT, GetFirstFreePokeblockSlot - compare VAR_RESULT, 65535 - goto_if_ne BerryBlender_EventScript_BlendWithBlendMaster - compare VAR_RESULT, 65535 - goto_if_eq BerryBlender_EventScript_BlendMasterCaseFull + goto_if_ne VAR_RESULT, 65535, BerryBlender_EventScript_BlendWithBlendMaster + goto_if_eq VAR_RESULT, 65535, BerryBlender_EventScript_BlendMasterCaseFull end BerryBlender_EventScript_BlendWithBlendMaster: msgbox BerryBlender_Text_BlendMasterKnowHowToMakePokeblocks, MSGBOX_YESNO - compare VAR_RESULT, NO - call_if_eq BerryBlender_EventScript_BlendMasterExplainBlending + call_if_eq VAR_RESULT, NO, BerryBlender_EventScript_BlendMasterExplainBlending msgbox BerryBlender_Text_BlendMasterLetsBerryBlender, MSGBOX_DEFAULT goto BerryBlender_EventScript_DoBerryBlending end @@ -530,10 +507,8 @@ BerryBlender_EventScript_ExpertMCheckGiveBerry: faceplayer msgbox BerryBlender_Text_LoveMakingPokeblocks, MSGBOX_DEFAULT specialvar VAR_RESULT, PlayerHasBerries - compare VAR_RESULT, TRUE - goto_if_eq BerryBlender_EventScript_ExpertMPlayerHasBerries - compare VAR_RESULT, FALSE - goto_if_eq BerryBlender_EventScript_ExpertMNoBerries + goto_if_eq VAR_RESULT, TRUE, BerryBlender_EventScript_ExpertMPlayerHasBerries + goto_if_eq VAR_RESULT, FALSE, BerryBlender_EventScript_ExpertMNoBerries end BerryBlender_EventScript_ExpertMPlayerHasBerries: @@ -542,12 +517,10 @@ BerryBlender_EventScript_ExpertMPlayerHasBerries: end BerryBlender_EventScript_ExpertMNoBerries: - checkitem ITEM_POKEBLOCK_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq BerryBlender_EventScript_ExpertMNoSpareBerries + checkitem ITEM_POKEBLOCK_CASE + goto_if_eq VAR_RESULT, FALSE, BerryBlender_EventScript_ExpertMNoSpareBerries specialvar VAR_RESULT, GetFirstFreePokeblockSlot - compare VAR_RESULT, 65535 - goto_if_eq BerryBlender_EventScript_ExpertMNoSpareBerries + goto_if_eq VAR_RESULT, 65535, BerryBlender_EventScript_ExpertMNoSpareBerries dotimebasedevents goto_if_set FLAG_DAILY_CONTEST_LOBBY_RECEIVED_BERRY, BerryBlender_EventScript_ExpertMNoSpareBerries goto BerryBlender_EventScript_ExpertMGiveBerry @@ -573,24 +546,18 @@ BerryBlender_Movement_BlendLeaderWalkInPlace: BerryBlender_EventScript_BerryBlenderLink:: lockall specialvar VAR_RESULT, PlayerHasBerries - compare VAR_RESULT, FALSE - goto_if_eq BerryBlender_EventScript_LinkBlenderNoBerries - checkitem ITEM_POKEBLOCK_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq BerryBlender_EventScript_LinkBlenderNoCase + goto_if_eq VAR_RESULT, FALSE, BerryBlender_EventScript_LinkBlenderNoBerries + checkitem ITEM_POKEBLOCK_CASE + goto_if_eq VAR_RESULT, FALSE, BerryBlender_EventScript_LinkBlenderNoCase specialvar VAR_RESULT, GetFirstFreePokeblockSlot - compare VAR_RESULT, 65535 - goto_if_ne BerryBlender_EventScript_LinkBlenderSaveGame - compare VAR_RESULT, 65535 - goto_if_eq BerryBlender_EventScript_LinkBlenderCaseFull + goto_if_ne VAR_RESULT, 65535, BerryBlender_EventScript_LinkBlenderSaveGame + goto_if_eq VAR_RESULT, 65535, BerryBlender_EventScript_LinkBlenderCaseFull end BerryBlender_EventScript_LinkBlenderSaveGame: msgbox BerryBlender_Text_SaveGameBeforeBerryBlenderLink, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq BerryBlender_EventScript_TryDoLinkBlender - compare VAR_RESULT, NO - goto_if_eq BerryBlender_EventScript_CancelLinkBlender + goto_if_eq VAR_RESULT, YES, BerryBlender_EventScript_TryDoLinkBlender + goto_if_eq VAR_RESULT, NO, BerryBlender_EventScript_CancelLinkBlender end BerryBlender_EventScript_LinkBlenderNoBerries: @@ -600,25 +567,18 @@ BerryBlender_EventScript_LinkBlenderNoBerries: BerryBlender_EventScript_TryDoLinkBlender: call Common_EventScript_SaveGame - compare VAR_RESULT, FALSE - goto_if_eq BerryBlender_EventScript_CancelLinkBlender + goto_if_eq VAR_RESULT, FALSE, BerryBlender_EventScript_CancelLinkBlender specialvar VAR_RESULT, IsWirelessAdapterConnected - compare VAR_RESULT, TRUE - goto_if_eq BerryBlender_EventScript_StartDecideLinkLeader + goto_if_eq VAR_RESULT, TRUE, BerryBlender_EventScript_StartDecideLinkLeader message BerryBlender_Text_SearchingForFriends waitmessage special TryBerryBlenderLinkup waitstate - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq BerryBlender_EventScript_SpawnLinkPartners - compare VAR_RESULT, LINKUP_SOMEONE_NOT_READY - goto_if_eq BerryBlender_EventScript_CloseLinkNotReady - compare VAR_RESULT, LINKUP_DIFF_SELECTIONS - goto_if_eq BerryBlender_EventScript_CloseLinkDifferentSelections - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq BerryBlender_EventScript_CloseLink - compare VAR_RESULT, LINKUP_CONNECTION_ERROR - goto_if_eq BerryBlender_EventScript_LinkError + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, BerryBlender_EventScript_SpawnLinkPartners + goto_if_eq VAR_RESULT, LINKUP_SOMEONE_NOT_READY, BerryBlender_EventScript_CloseLinkNotReady + goto_if_eq VAR_RESULT, LINKUP_DIFF_SELECTIONS, BerryBlender_EventScript_CloseLinkDifferentSelections + goto_if_eq VAR_RESULT, LINKUP_FAILED, BerryBlender_EventScript_CloseLink + goto_if_eq VAR_RESULT, LINKUP_CONNECTION_ERROR, BerryBlender_EventScript_LinkError end BerryBlender_EventScript_TwoPlayerLink: @@ -721,23 +681,17 @@ BerryBlender_EventScript_DecideLinkLeader: BerryBlender_EventScript_TryLeadGroup: call BerryBlender_EventScript_TryBecomeLinkLeader - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq BerryBlender_EventScript_LinkLeaderDecided - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq BerryBlender_EventScript_DecideLinkLeader - compare VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN - goto_if_eq BerryBlender_EventScript_TryLeadGroup + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, BerryBlender_EventScript_LinkLeaderDecided + goto_if_eq VAR_RESULT, LINKUP_FAILED, BerryBlender_EventScript_DecideLinkLeader + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, BerryBlender_EventScript_TryLeadGroup release end BerryBlender_EventScript_TryJoinGroup: call BerryBlender_EventScript_TryJoinLinkGroup - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq BerryBlender_EventScript_LinkLeaderDecided - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq BerryBlender_EventScript_DecideLinkLeader - compare VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN - goto_if_eq BerryBlender_EventScript_TryJoinGroup + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, BerryBlender_EventScript_LinkLeaderDecided + goto_if_eq VAR_RESULT, LINKUP_FAILED, BerryBlender_EventScript_DecideLinkLeader + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, BerryBlender_EventScript_TryJoinGroup release end diff --git a/data/scripts/berry_tree.inc b/data/scripts/berry_tree.inc index e415d0c657..8ad300df52 100644 --- a/data/scripts/berry_tree.inc +++ b/data/scripts/berry_tree.inc @@ -22,8 +22,7 @@ BerryTree_EventScript_CheckSoil:: lock faceplayer specialvar VAR_RESULT, PlayerHasBerries - compare VAR_RESULT, TRUE - goto_if_eq BerryTree_EventScript_WantToPlant + goto_if_eq VAR_RESULT, TRUE, BerryTree_EventScript_WantToPlant message BerryTree_Text_ItsSoftLoamySoil waitmessage waitbuttonpress @@ -32,10 +31,8 @@ BerryTree_EventScript_CheckSoil:: BerryTree_EventScript_WantToPlant:: msgbox BerryTree_Text_WantToPlant, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq BerryTree_EventScript_ChooseBerryToPlant - compare VAR_RESULT, NO - goto_if_eq BerryTree_EventScript_CancelPlanting + goto_if_eq VAR_RESULT, YES, BerryTree_EventScript_ChooseBerryToPlant + goto_if_eq VAR_RESULT, NO, BerryTree_EventScript_CancelPlanting end BerryTree_EventScript_ChooseBerryToPlant:: @@ -43,8 +40,7 @@ BerryTree_EventScript_ChooseBerryToPlant:: closemessage special Bag_ChooseBerry waitstate - compare VAR_ITEM_ID, 0 - goto_if_eq BerryTree_EventScript_CancelPlanting + goto_if_eq VAR_ITEM_ID, 0, BerryTree_EventScript_CancelPlanting removeitem VAR_ITEM_ID call BerryTree_EventScript_PlantBerry @@ -88,37 +84,32 @@ BerryTree_EventScript_CheckBerryStage4:: @ VAR_0x8005 here is the number of times watered @ Buffered by ObjectEventInteractionGetBerryTreeData BerryTree_EventScript_GetCareAdverb:: - compare VAR_0x8005, 0 - goto_if_eq BerryTree_EventScript_SetAdverbPoor - compare VAR_0x8005, 4 - goto_if_eq BerryTree_EventScript_SetAdverbGreat - bufferstring 1, BerryTree_Text_CareAdverbGood + goto_if_eq VAR_0x8005, 0, BerryTree_EventScript_SetAdverbPoor + goto_if_eq VAR_0x8005, 4, BerryTree_EventScript_SetAdverbGreat + bufferstring STR_VAR_2, BerryTree_Text_CareAdverbGood return BerryTree_EventScript_SetAdverbGreat:: - bufferstring 1, BerryTree_Text_CareAdverbGreat + bufferstring STR_VAR_2, BerryTree_Text_CareAdverbGreat return BerryTree_EventScript_SetAdverbPoor:: - bufferstring 1, BerryTree_Text_CareAdverbPoor + bufferstring STR_VAR_2, BerryTree_Text_CareAdverbPoor return @ VAR_0x8006 here is the number of berries BerryTree_EventScript_CheckBerryFullyGrown:: - buffernumberstring 1, VAR_0x8006 + buffernumberstring STR_VAR_2, VAR_0x8006 lock faceplayer special ObjectEventInteractionGetBerryCountString msgbox BerryTree_Text_WantToPick, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq BerryTree_EventScript_PickBerry - compare VAR_RESULT, NO - goto_if_eq BerryTree_EventScript_CancelPickingBerry + goto_if_eq VAR_RESULT, YES, BerryTree_EventScript_PickBerry + goto_if_eq VAR_RESULT, NO, BerryTree_EventScript_CancelPickingBerry BerryTree_EventScript_PickBerry:: special ObjectEventInteractionPickBerryTree - compare VAR_0x8004, 0 - goto_if_eq BerryTree_EventScript_BerryPocketFull + goto_if_eq VAR_0x8004, 0, BerryTree_EventScript_BerryPocketFull special IncrementDailyPickedBerries special ObjectEventInteractionRemoveBerryTree message BerryTree_Text_PickedTheBerry @@ -154,15 +145,12 @@ BerryTree_EventScript_ItemUsePlantBerry:: end BerryTree_EventScript_WantToWater:: - checkitem ITEM_WAILMER_PAIL, 1 - compare VAR_RESULT, 0 - goto_if_eq BerryTree_EventScript_DontWater + checkitem ITEM_WAILMER_PAIL + goto_if_eq VAR_RESULT, FALSE, BerryTree_EventScript_DontWater special ObjectEventInteractionGetBerryName msgbox BerryTree_Text_WantToWater, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq BerryTree_EventScript_WaterBerry - compare VAR_RESULT, NO - goto_if_eq BerryTree_EventScript_DontWater + goto_if_eq VAR_RESULT, YES, BerryTree_EventScript_WaterBerry + goto_if_eq VAR_RESULT, NO, BerryTree_EventScript_DontWater BerryTree_EventScript_DontWater:: releaseall diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index d6ea1a707e..0ab93c4037 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -4,11 +4,9 @@ CableClub_OnTransition: CableClub_EventScript_HideOrShowMysteryGiftMan:: specialvar VAR_RESULT, ShouldDistributeEonTicket - compare VAR_RESULT, TRUE - goto_if_eq CableClub_EventScript_ShowMysteryGiftMan + goto_if_eq VAR_RESULT, TRUE, CableClub_EventScript_ShowMysteryGiftMan specialvar VAR_RESULT, ValidateSavedWonderCard - compare VAR_RESULT, FALSE - goto_if_eq CableClub_EventScript_HideMysteryGiftMan + goto_if_eq VAR_RESULT, FALSE, CableClub_EventScript_HideMysteryGiftMan goto CableClub_EventScript_ShowMysteryGiftMan end @@ -22,24 +20,20 @@ CableClub_EventScript_HideMysteryGiftMan:: CableClub_EventScript_MysteryGiftMan:: specialvar VAR_RESULT, ShouldDistributeEonTicket - compare VAR_RESULT, TRUE - goto_if_eq CableClub_EventScript_DistributeEonTicket - goto CableClub_EventScript_AlreadyGotEonTicket + goto_if_eq VAR_RESULT, TRUE, CableClub_EventScript_DistributeEonTicket + goto CableClub_EventScript_TryWonderCardScript end -CableClub_EventScript_AlreadyGotEonTicket:: - gotoram - -@ Unused? +CableClub_EventScript_TryWonderCardScript:: + trywondercardscript CableClub_EventScript_MysteryGiftThankYou:: msgbox gText_ThankYouForAccessingMysteryGift, MSGBOX_NPC end CableClub_EventScript_DistributeEonTicket:: - checkitem ITEM_EON_TICKET, 1 - compare VAR_RESULT, TRUE - goto_if_eq CableClub_EventScript_AlreadyGotEonTicket - goto_if_set FLAG_ENABLE_SHIP_SOUTHERN_ISLAND, CableClub_EventScript_AlreadyGotEonTicket + checkitem ITEM_EON_TICKET + goto_if_eq VAR_RESULT, TRUE, CableClub_EventScript_TryWonderCardScript + goto_if_set FLAG_ENABLE_SHIP_SOUTHERN_ISLAND, CableClub_EventScript_TryWonderCardScript msgbox MysteryGift_Text_TheresATicketForYou, MSGBOX_DEFAULT giveitem ITEM_EON_TICKET setflag FLAG_ENABLE_SHIP_SOUTHERN_ISLAND @@ -66,29 +60,20 @@ CableClub_OnWarp: .2byte 0 CableClub_EventScript_CheckTurnAttendant:: - compare VAR_0x8007, 0 - goto_if_eq CableClub_EventScript_DontTurnAttendant + goto_if_eq VAR_0x8007, 0, CableClub_EventScript_DontTurnAttendant turnobject VAR_0x8007, DIR_WEST CableClub_EventScript_DontTurnAttendant:: end CableClub_OnLoad: - compare VAR_CABLE_CLUB_STATE, USING_SINGLE_BATTLE - goto_if_eq CableClub_EventScript_OnLoadFromColosseum - compare VAR_CABLE_CLUB_STATE, USING_DOUBLE_BATTLE - goto_if_eq CableClub_EventScript_OnLoadFromColosseum - compare VAR_CABLE_CLUB_STATE, USING_MULTI_BATTLE - goto_if_eq CableClub_EventScript_OnLoadFromColosseum - compare VAR_CABLE_CLUB_STATE, USING_TRADE_CENTER - goto_if_eq CableClub_EventScript_OnLoadFromTradeCenter - compare VAR_CABLE_CLUB_STATE, USING_RECORD_CORNER - goto_if_eq CableClub_EventScript_OnLoadFromRecordCorner - compare VAR_CABLE_CLUB_STATE, USING_UNION_ROOM - goto_if_eq CableClub_EventScript_OnLoadFromUnionRoom - compare VAR_CABLE_CLUB_STATE, USING_BERRY_CRUSH - goto_if_eq CableClub_EventScript_OnLoadFromBerryCrush - compare VAR_CABLE_CLUB_STATE, USING_MINIGAME - goto_if_eq CableClub_EventScript_OnLoadFromGameCorner + goto_if_eq VAR_CABLE_CLUB_STATE, USING_SINGLE_BATTLE, CableClub_EventScript_OnLoadFromColosseum + goto_if_eq VAR_CABLE_CLUB_STATE, USING_DOUBLE_BATTLE, CableClub_EventScript_OnLoadFromColosseum + goto_if_eq VAR_CABLE_CLUB_STATE, USING_MULTI_BATTLE, CableClub_EventScript_OnLoadFromColosseum + goto_if_eq VAR_CABLE_CLUB_STATE, USING_TRADE_CENTER, CableClub_EventScript_OnLoadFromTradeCenter + goto_if_eq VAR_CABLE_CLUB_STATE, USING_RECORD_CORNER, CableClub_EventScript_OnLoadFromRecordCorner + goto_if_eq VAR_CABLE_CLUB_STATE, USING_UNION_ROOM, CableClub_EventScript_OnLoadFromUnionRoom + goto_if_eq VAR_CABLE_CLUB_STATE, USING_BERRY_CRUSH, CableClub_EventScript_OnLoadFromBerryCrush + goto_if_eq VAR_CABLE_CLUB_STATE, USING_MINIGAME, CableClub_EventScript_OnLoadFromGameCorner end CableClub_EventScript_OnLoadFromColosseum:: @@ -150,8 +135,7 @@ CableClub_EventScript_ExitMinigameRoom:: CableClub_EventScript_CloseLinkAndExitLinkRoom:: special CloseLink setvar VAR_CABLE_CLUB_STATE, 0 - compare VAR_0x8007, 0 - goto_if_eq CableClub_EventScript_PlayerExitLinkRoom + goto_if_eq VAR_0x8007, 0, CableClub_EventScript_PlayerExitLinkRoom applymovement VAR_0x8007, Movement_AttendantFaceLeft waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Movement_PlayerExitLinkRoom @@ -173,8 +157,7 @@ CableClub_EventScript_ExitTradeCenter:: CableClub_EventScript_PlayerExitTradeCenter:: special CloseLink setvar VAR_CABLE_CLUB_STATE, 0 - compare VAR_0x8007, 0 - goto_if_eq CableClub_EventScript_PlayerExitLinkRoom + goto_if_eq VAR_0x8007, 0, CableClub_EventScript_PlayerExitLinkRoom applymovement OBJ_EVENT_ID_PLAYER, Movement_PlayerFaceAttendantRight waitmovement 0 applymovement VAR_0x8007, Movement_AttendantFaceLeft @@ -197,8 +180,7 @@ CableClub_EventScript_PlayerExitRecordCorner:: setvar VAR_CABLE_CLUB_STATE, 0 applymovement OBJ_EVENT_ID_PLAYER, Movement_PlayerExitLinkRoom waitmovement 0 - compare VAR_0x8007, 0 - goto_if_eq CableClub_EventScript_ExitRecordCornerRet + goto_if_eq VAR_0x8007, 0, CableClub_EventScript_ExitRecordCornerRet applymovement VAR_0x8007, Movement_AttendantFaceDown waitmovement 0 CableClub_EventScript_ExitRecordCornerRet:: @@ -216,8 +198,7 @@ CableClub_EventScript_ExitUnionRoom:: CableClub_EventScript_PlayerExitUnionRoom:: setvar VAR_CABLE_CLUB_STATE, 0 - compare VAR_0x8007, 0 - goto_if_eq CableClub_EventScript_PlayerExitLinkRoom + goto_if_eq VAR_0x8007, 0, CableClub_EventScript_PlayerExitLinkRoom applymovement OBJ_EVENT_ID_PLAYER, Movement_PlayerFaceAttendantRight waitmovement 0 applymovement VAR_0x8007, Movement_AttendantFaceLeft @@ -325,8 +306,7 @@ CableClub_EventScript_SingleBattleMode:: CableClub_EventScript_DoubleBattleMode:: special HasEnoughMonsForDoubleBattle - compare VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS - goto_if_ne CableClub_EventScript_NeedTwoMonsForDoubleBattle + goto_if_ne VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS, CableClub_EventScript_NeedTwoMonsForDoubleBattle setvar VAR_0x8004, USING_DOUBLE_BATTLE goto CableClub_EventScript_TryEnterColosseum end @@ -343,24 +323,17 @@ CableClub_EventScript_MultiBattleMode:: CableClub_EventScript_TryEnterColosseum:: call Common_EventScript_SaveGame - compare VAR_RESULT, 0 - goto_if_eq CableClub_EventScript_AbortLink + goto_if_eq VAR_RESULT, 0, CableClub_EventScript_AbortLink message gText_PleaseWaitForLink waitmessage special TryBattleLinkup waitstate - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq CableClub_EventScript_EnterColosseum - compare VAR_RESULT, LINKUP_SOMEONE_NOT_READY - goto_if_eq CableClub_EventScript_AbortLinkSomeoneNotReady - compare VAR_RESULT, LINKUP_DIFF_SELECTIONS - goto_if_eq CableClub_EventScript_AbortLinkDifferentSelections - compare VAR_RESULT, LINKUP_WRONG_NUM_PLAYERS - goto_if_eq CableClub_EventScript_AbortLinkIncorrectNumberOfBattlers - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq CableClub_EventScript_AbortLink - compare VAR_RESULT, LINKUP_CONNECTION_ERROR - goto_if_eq CableClub_EventScript_AbortLinkConnectionError + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterColosseum + goto_if_eq VAR_RESULT, LINKUP_SOMEONE_NOT_READY, CableClub_EventScript_AbortLinkSomeoneNotReady + goto_if_eq VAR_RESULT, LINKUP_DIFF_SELECTIONS, CableClub_EventScript_AbortLinkDifferentSelections + goto_if_eq VAR_RESULT, LINKUP_WRONG_NUM_PLAYERS, CableClub_EventScript_AbortLinkIncorrectNumberOfBattlers + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_AbortLink + goto_if_eq VAR_RESULT, LINKUP_CONNECTION_ERROR, CableClub_EventScript_AbortLinkConnectionError end CableClub_EventScript_EnterColosseum:: @@ -387,10 +360,9 @@ CableClub_EventScript_EnterColosseum:: closedoor 9, 1 waitdooranim release - compare VAR_0x8004, USING_MULTI_BATTLE - goto_if_eq CableClub_EventScript_WarpTo4PColosseum + goto_if_eq VAR_0x8004, USING_MULTI_BATTLE, CableClub_EventScript_WarpTo4PColosseum special SetCableClubWarp - warp MAP_BATTLE_COLOSSEUM_2P, 255, 6, 8 + warp MAP_BATTLE_COLOSSEUM_2P, 6, 8 special DoCableClubWarp waitstate end @@ -403,7 +375,7 @@ CableClub_EventScript_PlayerApproachLinkRoomRight:: CableClub_EventScript_WarpTo4PColosseum:: special SetCableClubWarp - warp MAP_BATTLE_COLOSSEUM_4P, 255, 5, 8 + warp MAP_BATTLE_COLOSSEUM_4P, 5, 8 special DoCableClubWarp waitstate end @@ -443,31 +415,21 @@ CableClub_EventScript_ConfirmNumberAndRestart:: CableClub_EventScript_TradeCenter:: copyvar VAR_0x8007, VAR_LAST_TALKED call CableClub_EventScript_CheckPartyTradeRequirements - compare VAR_RESULT, 0 - goto_if_eq CableClub_EventScript_AbortLink + goto_if_eq VAR_RESULT, 0, CableClub_EventScript_AbortLink call Common_EventScript_SaveGame - compare VAR_RESULT, 0 - goto_if_eq CableClub_EventScript_AbortLink + goto_if_eq VAR_RESULT, 0, CableClub_EventScript_AbortLink message gText_PleaseWaitForLink waitmessage special TryTradeLinkup waitstate - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq CableClub_EventScript_EnterTradeCenter - compare VAR_RESULT, LINKUP_SOMEONE_NOT_READY - goto_if_eq CableClub_EventScript_AbortLinkSomeoneNotReady - compare VAR_RESULT, LINKUP_DIFF_SELECTIONS - goto_if_eq CableClub_EventScript_AbortLinkDifferentSelections - compare VAR_RESULT, LINKUP_WRONG_NUM_PLAYERS - goto_if_eq CableClub_EventScript_AbortLinkIncorrectNumberOfParticipants - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq CableClub_EventScript_AbortLink - compare VAR_RESULT, LINKUP_CONNECTION_ERROR - goto_if_eq CableClub_EventScript_AbortLinkConnectionError - compare VAR_RESULT, LINKUP_PLAYER_NOT_READY - goto_if_eq CableClub_EventScript_AbortLinkPlayerNotReady - compare VAR_RESULT, LINKUP_PARTNER_NOT_READY - goto_if_eq CableClub_EventScript_AbortLinkOtherTrainerNotReady + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterTradeCenter + goto_if_eq VAR_RESULT, LINKUP_SOMEONE_NOT_READY, CableClub_EventScript_AbortLinkSomeoneNotReady + goto_if_eq VAR_RESULT, LINKUP_DIFF_SELECTIONS, CableClub_EventScript_AbortLinkDifferentSelections + goto_if_eq VAR_RESULT, LINKUP_WRONG_NUM_PLAYERS, CableClub_EventScript_AbortLinkIncorrectNumberOfParticipants + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_AbortLink + goto_if_eq VAR_RESULT, LINKUP_CONNECTION_ERROR, CableClub_EventScript_AbortLinkConnectionError + goto_if_eq VAR_RESULT, LINKUP_PLAYER_NOT_READY, CableClub_EventScript_AbortLinkPlayerNotReady + goto_if_eq VAR_RESULT, LINKUP_PARTNER_NOT_READY, CableClub_EventScript_AbortLinkOtherTrainerNotReady end CableClub_EventScript_EnterTradeCenter:: @@ -493,18 +455,16 @@ CableClub_EventScript_EnterTradeCenter:: waitdooranim release special SetCableClubWarp - setwarp MAP_TRADE_CENTER, 255, 5, 8 + setwarp MAP_TRADE_CENTER, 5, 8 special DoCableClubWarp waitstate end CableClub_EventScript_CheckPartyTradeRequirements:: specialvar VAR_RESULT, CalculatePlayerPartyCount - compare VAR_RESULT, 2 - goto_if_lt CableClub_EventScript_NeedTwoMonsToTrade + goto_if_lt VAR_RESULT, 2, CableClub_EventScript_NeedTwoMonsToTrade specialvar VAR_RESULT, DoesPartyHaveEnigmaBerry - compare VAR_RESULT, TRUE - goto_if_eq CableClub_EventScript_CantTradeEnigmaBerry + goto_if_eq VAR_RESULT, TRUE, CableClub_EventScript_CantTradeEnigmaBerry setvar VAR_RESULT, 1 return @@ -521,28 +481,20 @@ CableClub_EventScript_CantTradeEnigmaBerry:: CableClub_EventScript_RecordCorner:: copyvar VAR_0x8007, VAR_LAST_TALKED call Common_EventScript_SaveGame - compare VAR_RESULT, 0 - goto_if_eq CableClub_EventScript_AbortLink + goto_if_eq VAR_RESULT, 0, CableClub_EventScript_AbortLink message gText_PleaseWaitForLink waitmessage special TryRecordMixLinkup waitstate special ValidateMixingGameLanguage waitstate - compare VAR_RESULT, LINKUP_FOREIGN_GAME - goto_if_eq CableClub_EventScript_AbortLinkForeignGame - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq CableClub_EventScript_EnterRecordCorner - compare VAR_RESULT, LINKUP_SOMEONE_NOT_READY - goto_if_eq CableClub_EventScript_AbortLinkSomeoneNotReady - compare VAR_RESULT, LINKUP_DIFF_SELECTIONS - goto_if_eq CableClub_EventScript_AbortLinkDifferentSelections - compare VAR_RESULT, LINKUP_WRONG_NUM_PLAYERS - goto_if_eq CableClub_EventScript_AbortLinkIncorrectNumberOfParticipants - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq CableClub_EventScript_AbortLink - compare VAR_RESULT, LINKUP_CONNECTION_ERROR - goto_if_eq CableClub_EventScript_AbortLinkConnectionError + goto_if_eq VAR_RESULT, LINKUP_FOREIGN_GAME, CableClub_EventScript_AbortLinkForeignGame + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterRecordCorner + goto_if_eq VAR_RESULT, LINKUP_SOMEONE_NOT_READY, CableClub_EventScript_AbortLinkSomeoneNotReady + goto_if_eq VAR_RESULT, LINKUP_DIFF_SELECTIONS, CableClub_EventScript_AbortLinkDifferentSelections + goto_if_eq VAR_RESULT, LINKUP_WRONG_NUM_PLAYERS, CableClub_EventScript_AbortLinkIncorrectNumberOfParticipants + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_AbortLink + goto_if_eq VAR_RESULT, LINKUP_CONNECTION_ERROR, CableClub_EventScript_AbortLinkConnectionError end CableClub_EventScript_EnterRecordCorner:: @@ -568,7 +520,7 @@ CableClub_EventScript_EnterRecordCorner:: waitdooranim release special SetCableClubWarp - setwarp MAP_RECORD_CORNER, 255, 8, 9 + setwarp MAP_RECORD_CORNER, 8, 9 special DoCableClubWarp waitstate end @@ -726,8 +678,7 @@ EventScript_BattleColosseum_4P_PlayerSpot0:: fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate - compare VAR_RESULT, 0 - goto_if_eq EventScript_BattleColosseum_4P_CancelSpotTrigger + goto_if_eq VAR_RESULT, 0, EventScript_BattleColosseum_4P_CancelSpotTrigger setvar VAR_0x8005, 0 special ColosseumPlayerSpotTriggered waitstate @@ -737,8 +688,7 @@ EventScript_BattleColosseum_4P_PlayerSpot1:: fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate - compare VAR_RESULT, 0 - goto_if_eq EventScript_BattleColosseum_4P_CancelSpotTrigger + goto_if_eq VAR_RESULT, 0, EventScript_BattleColosseum_4P_CancelSpotTrigger setvar VAR_0x8005, 1 special ColosseumPlayerSpotTriggered waitstate @@ -748,8 +698,7 @@ EventScript_BattleColosseum_4P_PlayerSpot2:: fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate - compare VAR_RESULT, 0 - goto_if_eq EventScript_BattleColosseum_4P_CancelSpotTrigger + goto_if_eq VAR_RESULT, 0, EventScript_BattleColosseum_4P_CancelSpotTrigger setvar VAR_0x8005, 2 special ColosseumPlayerSpotTriggered waitstate @@ -759,8 +708,7 @@ EventScript_BattleColosseum_4P_PlayerSpot3:: fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate - compare VAR_RESULT, 0 - goto_if_eq EventScript_BattleColosseum_4P_CancelSpotTrigger + goto_if_eq VAR_RESULT, 0, EventScript_BattleColosseum_4P_CancelSpotTrigger setvar VAR_0x8005, 3 special ColosseumPlayerSpotTriggered waitstate @@ -800,36 +748,32 @@ EventScript_RecordCenter_Spot0:: setvar VAR_0x8005, 0 special RecordMixingPlayerSpotTriggered waitstate - compare VAR_TEMP_1, ITEM_NONE - goto_if_ne RecordCorner_EventScript_ReceivedGiftItem + goto_if_ne VAR_TEMP_1, ITEM_NONE, RecordCorner_EventScript_ReceivedGiftItem end EventScript_RecordCenter_Spot1:: setvar VAR_0x8005, 1 special RecordMixingPlayerSpotTriggered waitstate - compare VAR_TEMP_1, ITEM_NONE - goto_if_ne RecordCorner_EventScript_ReceivedGiftItem + goto_if_ne VAR_TEMP_1, ITEM_NONE, RecordCorner_EventScript_ReceivedGiftItem end EventScript_RecordCenter_Spot2:: setvar VAR_0x8005, 2 special RecordMixingPlayerSpotTriggered waitstate - compare VAR_TEMP_1, ITEM_NONE - goto_if_ne RecordCorner_EventScript_ReceivedGiftItem + goto_if_ne VAR_TEMP_1, ITEM_NONE, RecordCorner_EventScript_ReceivedGiftItem end EventScript_RecordCenter_Spot3:: setvar VAR_0x8005, 3 special RecordMixingPlayerSpotTriggered waitstate - compare VAR_TEMP_1, ITEM_NONE - goto_if_ne RecordCorner_EventScript_ReceivedGiftItem + goto_if_ne VAR_TEMP_1, ITEM_NONE, RecordCorner_EventScript_ReceivedGiftItem end RecordCorner_EventScript_ReceivedGiftItem:: - bufferitemname 1, VAR_TEMP_1 + bufferitemname STR_VAR_2, VAR_TEMP_1 message RecordCorner_Text_PlayerSentOverOneX waitmessage waitbuttonpress @@ -870,8 +814,7 @@ TradeCenter_EventScript_Attendant:: end RecordCorner_EventScript_Attendant:: - compare VAR_TEMP_0, 0 - goto_if_ne RecordCorner_EventScript_AlreadyMixed + goto_if_ne VAR_TEMP_0, 0, RecordCorner_EventScript_AlreadyMixed special Script_FacePlayer message RecordCorner_Text_TakeSeatAndWait waitmessage @@ -891,8 +834,7 @@ RecordCorner_EventScript_AlreadyMixed:: EventScript_ConfirmLeaveCableClubRoom:: msgbox Text_TerminateLinkConfirmation, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq EventScript_TerminateLink + goto_if_eq VAR_RESULT, YES, EventScript_TerminateLink erasebox 0, 0, 29, 19 releaseall end @@ -915,12 +857,10 @@ CableClub_EventScript_UnionRoomAttendant:: setvar VAR_FRONTIER_FACILITY, FACILITY_UNION_ROOM goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_WirelessClubAdjustements specialvar VAR_RESULT, IsBadEggInParty - compare VAR_RESULT, TRUE - goto_if_eq CableClub_EventScript_AbortLinkPlayerHasBadEgg + goto_if_eq VAR_RESULT, TRUE, CableClub_EventScript_AbortLinkPlayerHasBadEgg copyvar VAR_0x8007, VAR_LAST_TALKED specialvar VAR_RESULT, IsWirelessAdapterConnected - compare VAR_RESULT, FALSE - goto_if_eq CableClub_EventScript_UnionRoomAdapterNotConnected + goto_if_eq VAR_RESULT, FALSE, CableClub_EventScript_UnionRoomAdapterNotConnected message CableClub_Text_WelcomeUnionRoomEnter waitmessage goto CableClub_EventScript_UnionRoomSelect @@ -943,11 +883,9 @@ CableClub_EventScript_UnionRoomInfo:: CableClub_EventScript_EnterUnionRoom:: call CableClub_EventScript_CheckPartyUnionRoomRequirements - compare VAR_RESULT, 0 - goto_if_eq CableClub_EventScript_AbortLink + goto_if_eq VAR_RESULT, 0, CableClub_EventScript_AbortLink call Common_EventScript_SaveGame - compare VAR_RESULT, 0 - goto_if_eq CableClub_EventScript_AbortLink + goto_if_eq VAR_RESULT, 0, CableClub_EventScript_AbortLink msgbox CableClub_Text_EnjoyUnionRoom, MSGBOX_DEFAULT closemessage special HealPlayerParty @@ -970,7 +908,7 @@ CableClub_EventScript_EnterUnionRoom:: waitdooranim special Script_ResetUnionRoomTrade special SetCableClubWarp - warpteleport2 MAP_UNION_ROOM, 255, 7, 11 + warpspinenter MAP_UNION_ROOM, 7, 11 waitstate special RunUnionRoom waitstate @@ -978,11 +916,9 @@ CableClub_EventScript_EnterUnionRoom:: CableClub_EventScript_CheckPartyUnionRoomRequirements:: specialvar VAR_RESULT, CountPartyNonEggMons - compare VAR_RESULT, 2 - goto_if_lt CableClub_EventScript_NeedTwoMonsForUnionRoom + goto_if_lt VAR_RESULT, 2, CableClub_EventScript_NeedTwoMonsForUnionRoom specialvar VAR_RESULT, DoesPartyHaveEnigmaBerry - compare VAR_RESULT, TRUE - goto_if_eq CableClub_EventScript_NoEnigmaBerryInUnionRoom + goto_if_eq VAR_RESULT, TRUE, CableClub_EventScript_NoEnigmaBerryInUnionRoom setvar VAR_RESULT, 1 return @@ -1006,8 +942,7 @@ CableClub_EventScript_WirelessClubAttendant:: faceplayer goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_WirelessClubAdjustements msgbox CableClub_Text_AskAboutLinking, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq CableClub_EventScript_DontAskAboutLinking + goto_if_eq VAR_RESULT, NO, CableClub_EventScript_DontAskAboutLinking msgbox CableClub_Text_ExplainWirelessClub, MSGBOX_DEFAULT release return @@ -1023,11 +958,9 @@ CableClub_EventScript_DirectCornerAttendant:: setvar VAR_FRONTIER_FACILITY, FACILITY_MULTI_OR_EREADER @ Set preemptively for multi battles, ignored otherwise goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_WirelessClubAdjustements specialvar VAR_RESULT, IsBadEggInParty - compare VAR_RESULT, TRUE - goto_if_eq CableClub_EventScript_AbortLinkPlayerHasBadEgg + goto_if_eq VAR_RESULT, TRUE, CableClub_EventScript_AbortLinkPlayerHasBadEgg specialvar VAR_RESULT, IsWirelessAdapterConnected - compare VAR_RESULT, FALSE - goto_if_eq CableClub_EventScript_WelcomeToCableClub + goto_if_eq VAR_RESULT, FALSE, CableClub_EventScript_WelcomeToCableClub message CableClub_Text_WelcomeWhichDirectCornerRoom waitmessage delay 28 @@ -1035,9 +968,8 @@ CableClub_EventScript_DirectCornerAttendant:: end CableClub_EventScript_DirectCornerSelectService:: - checkitem ITEM_POWDER_JAR, 1 - compare VAR_RESULT, FALSE - goto_if_eq CableClub_EventScript_DirectCornerNoBerry + checkitem ITEM_POWDER_JAR + goto_if_eq VAR_RESULT, FALSE, CableClub_EventScript_DirectCornerNoBerry goto_if_set FLAG_VISITED_MAUVILLE_CITY, CableClub_EventScript_DirectCornerSelectAllServices multichoice 0, 0, MULTI_WIRELESS_NO_RECORD, FALSE switch VAR_RESULT @@ -1081,11 +1013,9 @@ CableClub_EventScript_DirectCornerHasRecordMix:: CableClub_EventScript_WirelessTrade:: msgbox CableClub_Text_TradePokemon, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq CableClub_EventScript_AbortLink + goto_if_eq VAR_RESULT, NO, CableClub_EventScript_AbortLink call CableClub_EventScript_CheckPartyTradeRequirements - compare VAR_RESULT, 0 - goto_if_eq CableClub_EventScript_AbortLink + goto_if_eq VAR_RESULT, 0, CableClub_EventScript_AbortLink setvar VAR_0x8004, LINK_GROUP_TRADE goto CableClub_EventScript_SaveAndChooseLinkLeader end @@ -1110,8 +1040,7 @@ CableClub_EventScript_WirelessSingleBattle:: CableClub_EventScript_WirelessDoubleBattle:: special HasEnoughMonsForDoubleBattle - compare VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS - goto_if_ne CableClub_EventScript_TwoMonsNeededForWirelessDoubleBattle + goto_if_ne VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS, CableClub_EventScript_TwoMonsNeededForWirelessDoubleBattle setvar VAR_0x8004, LINK_GROUP_DOUBLE_BATTLE goto CableClub_EventScript_SaveAndChooseLinkLeader end @@ -1133,19 +1062,16 @@ CableClub_EventScript_WirelessBattleInfo:: CableClub_EventScript_WirelessRecordMix:: msgbox CableClub_Text_AccessRecordCorner, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq CableClub_EventScript_AbortLink + goto_if_eq VAR_RESULT, NO, CableClub_EventScript_AbortLink setvar VAR_0x8004, LINK_GROUP_RECORD_CORNER goto CableClub_EventScript_SaveAndChooseLinkLeader end CableClub_EventScript_WirelessBerryCrush:: msgbox CableClub_Text_UseBerryCrush, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq CableClub_EventScript_AbortLink + goto_if_eq VAR_RESULT, NO, CableClub_EventScript_AbortLink special HasAtLeastOneBerry - compare VAR_RESULT, FALSE - goto_if_eq CableClub_EventScript_NeedBerryForBerryCrush + goto_if_eq VAR_RESULT, FALSE, CableClub_EventScript_NeedBerryForBerryCrush setvar VAR_0x8004, LINK_GROUP_BERRY_CRUSH goto CableClub_EventScript_SaveAndChooseLinkLeader end @@ -1157,8 +1083,7 @@ CableClub_EventScript_NeedBerryForBerryCrush:: CableClub_EventScript_SaveAndChooseLinkLeader:: call Common_EventScript_SaveGame - compare VAR_RESULT, 0 - goto_if_eq CableClub_EventScript_AbortLink + goto_if_eq VAR_RESULT, 0, CableClub_EventScript_AbortLink switch VAR_0x8004 case LINK_GROUP_TRADE, CableClub_EventScript_ChooseLinkLeaderFrom2 case LINK_GROUP_SINGLE_BATTLE, CableClub_EventScript_ChooseLinkLeaderFrom2 @@ -1181,23 +1106,17 @@ CableClub_EventScript_ChooseLinkLeaderFrom2:: CableClub_EventScript_TryLeadGroup2Players:: call CableClub_EventScript_TryBecomeLinkLeader - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq CableClub_EventScript_EnterWirelessLinkRoom - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq CableClub_EventScript_ChooseLinkLeaderFrom2 - compare VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN - goto_if_eq CableClub_EventScript_TryLeadGroup2Players + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderFrom2 + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryLeadGroup2Players release return CableClub_EventScript_TryJoinGroup2Players:: call CableClub_EventScript_TryJoinLinkGroup - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq CableClub_EventScript_EnterWirelessLinkRoom - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq CableClub_EventScript_ChooseLinkLeaderFrom2 - compare VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN - goto_if_eq CableClub_EventScript_TryJoinGroup2Players + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderFrom2 + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryJoinGroup2Players release return @@ -1214,23 +1133,17 @@ CableClub_EventScript_ChooseLinkLeaderFrom4:: CableClub_EventScript_TryLeadGroup4Players:: call CableClub_EventScript_TryBecomeLinkLeader - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq CableClub_EventScript_EnterWirelessLinkRoom - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq CableClub_EventScript_ChooseLinkLeaderFrom4 - compare VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN - goto_if_eq CableClub_EventScript_TryLeadGroup4Players + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderFrom4 + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryLeadGroup4Players release return CableClub_EventScript_TryJoinGroup4Players:: call CableClub_EventScript_TryJoinLinkGroup - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq CableClub_EventScript_EnterWirelessLinkRoom - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq CableClub_EventScript_ChooseLinkLeaderFrom4 - compare VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN - goto_if_eq CableClub_EventScript_TryJoinGroup4Players + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderFrom4 + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryJoinGroup4Players release return @@ -1247,23 +1160,17 @@ CableClub_EventScript_ChooseLinkLeader:: CableClub_EventScript_TryLeadGroupXPlayers:: call CableClub_EventScript_TryBecomeLinkLeader - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq CableClub_EventScript_EnterWirelessLinkRoom - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq CableClub_EventScript_ChooseLinkLeader - compare VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN - goto_if_eq CableClub_EventScript_TryLeadGroupXPlayers + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeader + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryLeadGroupXPlayers release return CableClub_EventScript_TryJoinGroupXPlayers:: call CableClub_EventScript_TryJoinLinkGroup - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq CableClub_EventScript_EnterWirelessLinkRoom - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq CableClub_EventScript_ChooseLinkLeader - compare VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN - goto_if_eq CableClub_EventScript_TryJoinGroupXPlayers + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeader + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryJoinGroupXPlayers release return @@ -1307,8 +1214,7 @@ EventScript_WirelessBoxResults:: lockall goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_NotReadyYet specialvar VAR_RESULT, IsWirelessAdapterConnected - compare VAR_RESULT, FALSE - goto_if_eq CableClub_EventScript_AdapterNotConnected + goto_if_eq VAR_RESULT, FALSE, CableClub_EventScript_AdapterNotConnected fadescreen FADE_TO_BLACK special ShowWirelessCommunicationScreen waitstate @@ -1322,33 +1228,33 @@ CableClub_EventScript_AdapterNotConnected:: end CableClub_EventScript_OpenUnionRoomBarrier:: - setmetatile 5, 2, METATILE_PokemonCenter_Floor_ShadowTop_Alt, 0 - setmetatile 5, 3, METATILE_PokemonCenter_Floor_Plain_Alt, 0 + setmetatile 5, 2, METATILE_PokemonCenter_Floor_ShadowTop_Alt, FALSE + setmetatile 5, 3, METATILE_PokemonCenter_Floor_Plain_Alt, FALSE return CableClub_EventScript_CloseUnionRoomBarrier:: - setmetatile 5, 2, METATILE_PokemonCenter_Floor_ShadowTop, 1 - setmetatile 5, 3, METATILE_PokemonCenter_CounterBarrier, 1 + setmetatile 5, 2, METATILE_PokemonCenter_Floor_ShadowTop, TRUE + setmetatile 5, 3, METATILE_PokemonCenter_CounterBarrier, TRUE return CableClub_EventScript_OpenDirectCornerBarrier:: - setmetatile 9, 2, METATILE_PokemonCenter_Floor_ShadowTop_Alt, 0 - setmetatile 9, 3, METATILE_PokemonCenter_Floor_Plain_Alt, 0 + setmetatile 9, 2, METATILE_PokemonCenter_Floor_ShadowTop_Alt, FALSE + setmetatile 9, 3, METATILE_PokemonCenter_Floor_Plain_Alt, FALSE return CableClub_EventScript_CloseDirectCornerBarrier:: - setmetatile 9, 2, METATILE_PokemonCenter_Floor_ShadowTop, 1 - setmetatile 9, 3, METATILE_PokemonCenter_CounterBarrier, 1 + setmetatile 9, 2, METATILE_PokemonCenter_Floor_ShadowTop, TRUE + setmetatile 9, 3, METATILE_PokemonCenter_CounterBarrier, TRUE return EventScript_OpenMossdeepGameCornerBarrier:: - setmetatile 5, 2, METATILE_MossdeepGameCorner_CounterOpen_Top, 0 - setmetatile 5, 3, METATILE_MossdeepGameCorner_CounterOpen_Bottom, 0 + setmetatile 5, 2, METATILE_MossdeepGameCorner_CounterOpen_Top, FALSE + setmetatile 5, 3, METATILE_MossdeepGameCorner_CounterOpen_Bottom, FALSE return EventScript_CloseMossdeepGameCornerBarrier:: - setmetatile 5, 2, METATILE_MossdeepGameCorner_CounterClosed_Top, 1 - setmetatile 5, 3, METATILE_MossdeepGameCorner_CounterClosed_Bottom, 1 + setmetatile 5, 2, METATILE_MossdeepGameCorner_CounterClosed_Top, TRUE + setmetatile 5, 3, METATILE_MossdeepGameCorner_CounterClosed_Bottom, TRUE return CableClub_OnResume: @@ -1389,8 +1295,7 @@ MossdeepCity_GameCorner_1F_EventScript_OldMan2:: message MossdeepCity_GameCorner_1F_Text_WelcomeCanYouWait waitmessage specialvar VAR_RESULT, IsWirelessAdapterConnected - compare VAR_RESULT, FALSE - goto_if_eq MossdeepCity_GameCorner_1F_EventScript_AdapterNotConnected + goto_if_eq VAR_RESULT, FALSE, MossdeepCity_GameCorner_1F_EventScript_AdapterNotConnected delay 60 message MossdeepCity_GameCorner_1F_Text_PlayWhichGame waitmessage @@ -1405,18 +1310,15 @@ MossdeepCity_GameCorner_1F_EventScript_OldMan2:: MossdeepCity_GameCorner_1F_EventScript_PlayPokemonJump:: setvar VAR_0x8005, 0 special IsPokemonJumpSpeciesInParty - compare VAR_RESULT, FALSE - goto_if_eq MossdeepCity_GameCorner_1F_EventScript_DontHaveRequiredMon + goto_if_eq VAR_RESULT, FALSE, MossdeepCity_GameCorner_1F_EventScript_DontHaveRequiredMon msgbox MossdeepCity_GameCorner_1F_Text_EnterWhichPokemon, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK setvar VAR_0x8005, 0 special ChooseMonForWirelessMinigame waitstate - compare VAR_0x8004, PARTY_SIZE - goto_if_ge MossdeepCity_GameCorner_1F_EventScript_AbortMinigame + goto_if_ge VAR_0x8004, PARTY_SIZE, MossdeepCity_GameCorner_1F_EventScript_AbortMinigame call Common_EventScript_SaveGame - compare VAR_RESULT, 0 - goto_if_eq MossdeepCity_GameCorner_1F_EventScript_AbortMinigame + goto_if_eq VAR_RESULT, 0, MossdeepCity_GameCorner_1F_EventScript_AbortMinigame setvar VAR_0x8004, LINK_GROUP_POKEMON_JUMP goto MossdeepCity_GameCorner_1F_EventScript_ChooseLinkLeader end @@ -1424,18 +1326,15 @@ MossdeepCity_GameCorner_1F_EventScript_PlayPokemonJump:: MossdeepCity_GameCorner_1F_EventScript_PlayDodrioBerryPicking:: setvar VAR_0x8005, 1 special IsDodrioInParty - compare VAR_RESULT, FALSE - goto_if_eq MossdeepCity_GameCorner_1F_EventScript_DontHaveRequiredMon + goto_if_eq VAR_RESULT, FALSE, MossdeepCity_GameCorner_1F_EventScript_DontHaveRequiredMon msgbox MossdeepCity_GameCorner_1F_Text_EnterWhichPokemon, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK setvar VAR_0x8005, 1 special ChooseMonForWirelessMinigame waitstate - compare VAR_0x8004, PARTY_SIZE - goto_if_ge MossdeepCity_GameCorner_1F_EventScript_AbortMinigame + goto_if_ge VAR_0x8004, PARTY_SIZE, MossdeepCity_GameCorner_1F_EventScript_AbortMinigame call Common_EventScript_SaveGame - compare VAR_RESULT, 0 - goto_if_eq MossdeepCity_GameCorner_1F_EventScript_AbortMinigame + goto_if_eq VAR_RESULT, 0, MossdeepCity_GameCorner_1F_EventScript_AbortMinigame setvar VAR_0x8004, LINK_GROUP_BERRY_PICKING goto MossdeepCity_GameCorner_1F_EventScript_ChooseLinkLeader end @@ -1453,23 +1352,17 @@ MossdeepCity_GameCorner_1F_EventScript_ChooseLinkLeader:: MossdeepCity_GameCorner_1F_EventScript_TryBecomeLinkLeader:: call CableClub_EventScript_TryBecomeLinkLeader - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq MossdeepCity_GameCorner_1F_EventScript_EnterMinigameRoom - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq MossdeepCity_GameCorner_1F_EventScript_ChooseLinkLeader - compare VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN - goto_if_eq MossdeepCity_GameCorner_1F_EventScript_TryBecomeLinkLeader + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, MossdeepCity_GameCorner_1F_EventScript_EnterMinigameRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, MossdeepCity_GameCorner_1F_EventScript_ChooseLinkLeader + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, MossdeepCity_GameCorner_1F_EventScript_TryBecomeLinkLeader release return MossdeepCity_GameCorner_1F_EventScript_TryJoinLinkGroup:: call CableClub_EventScript_TryJoinLinkGroup - compare VAR_RESULT, LINKUP_SUCCESS - goto_if_eq MossdeepCity_GameCorner_1F_EventScript_EnterMinigameRoom - compare VAR_RESULT, LINKUP_FAILED - goto_if_eq MossdeepCity_GameCorner_1F_EventScript_ChooseLinkLeader - compare VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN - goto_if_eq MossdeepCity_GameCorner_1F_EventScript_TryJoinLinkGroup + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, MossdeepCity_GameCorner_1F_EventScript_EnterMinigameRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, MossdeepCity_GameCorner_1F_EventScript_ChooseLinkLeader + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, MossdeepCity_GameCorner_1F_EventScript_TryJoinLinkGroup release return @@ -1501,12 +1394,9 @@ MossdeepCity_GameCorner_1F_EventScript_AdapterNotConnected:: MossdeepCity_GameCorner_1F_EventScript_DontHaveRequiredMon:: msgbox MossdeepCity_GameCorner_1F_Text_ExplainRequiredMon, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MossdeepCity_GameCorner_1F_EventScript_AbortMinigame - compare VAR_0x8005, 0 - call_if_eq MossdeepCity_GameCorner_1F_EventScript_ExplainPokemonJumpRequirements - compare VAR_0x8005, 1 - call_if_eq MossdeepCity_GameCorner_1F_EventScript_ExplainDodrioBerryPickingRequirements + goto_if_eq VAR_RESULT, NO, MossdeepCity_GameCorner_1F_EventScript_AbortMinigame + call_if_eq VAR_0x8005, 0, MossdeepCity_GameCorner_1F_EventScript_ExplainPokemonJumpRequirements + call_if_eq VAR_0x8005, 1, MossdeepCity_GameCorner_1F_EventScript_ExplainDodrioBerryPickingRequirements goto MossdeepCity_GameCorner_1F_EventScript_AbortMinigame end diff --git a/data/scripts/contest_hall.inc b/data/scripts/contest_hall.inc index 17364559bb..04c62a6de3 100644 --- a/data/scripts/contest_hall.inc +++ b/data/scripts/contest_hall.inc @@ -18,8 +18,7 @@ LilycoveCity_ContestLobby_EventScript_SpeakToContestReceptionist:: lock faceplayer - compare VAR_CONTEST_PRIZE_PICKUP, 0 - goto_if_ne LilycoveCity_ContestLobby_EventScript_PickUpPrize + goto_if_ne VAR_CONTEST_PRIZE_PICKUP, 0, LilycoveCity_ContestLobby_EventScript_PickUpPrize call_if_set FLAG_RECEIVED_POKEBLOCK_CASE, LilycoveCity_ContestLobby_EventScript_ReceptionWelcome call_if_unset FLAG_RECEIVED_POKEBLOCK_CASE, LilycoveCity_ContestLobby_EventScript_GivePokeblockCase goto LilycoveCity_ContestLobby_EventScript_AskEnterContest @@ -44,8 +43,7 @@ LilycoveCity_ContestLobby_EventScript_PickUpPrize:: LilycoveCity_ContestLobby_EventScript_GiveLuxuryBallAtCounter:: giveitem ITEM_LUXURY_BALL - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_ContestLobby_EventScript_NoRoomForLuxuryBallAtCounter + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_ContestLobby_EventScript_NoRoomForLuxuryBallAtCounter setvar VAR_CONTEST_PRIZE_PICKUP, 0 closemessage release @@ -103,19 +101,13 @@ LilycoveCity_ContestLobby_EventScript_CancelEnterContest:: LilycoveCity_ContestLobby_EventScript_ChooseContestMon:: msgbox LilycoveCity_ContestLobby_Text_EnterWhichPokemon1, MSGBOX_DEFAULT choosecontestmon - compare VAR_0x8004, 255 - goto_if_eq LilycoveCity_ContestLobby_EventScript_CancelEnterContest + goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, LilycoveCity_ContestLobby_EventScript_CancelEnterContest special TryEnterContestMon - compare VAR_RESULT, CANT_ENTER_CONTEST - goto_if_eq LilycoveCity_ContestLobby_EventScript_CantEnterLowRank - compare VAR_RESULT, CAN_ENTER_CONTEST_EQUAL_RANK - goto_if_eq LilycoveCity_ContestLobby_EventScript_EnterMon - compare VAR_RESULT, CAN_ENTER_CONTEST_HIGH_RANK - goto_if_eq LilycoveCity_ContestLobby_EventScript_ConfirmEntryAlreadyWon - compare VAR_RESULT, CANT_ENTER_CONTEST_EGG - goto_if_eq LilycoveCity_ContestLobby_EventScript_CantEnterEgg - compare VAR_RESULT, CANT_ENTER_CONTEST_FAINTED - goto_if_eq LilycoveCity_ContestLobby_EventScript_CantEnterFainted + goto_if_eq VAR_RESULT, CANT_ENTER_CONTEST, LilycoveCity_ContestLobby_EventScript_CantEnterLowRank + goto_if_eq VAR_RESULT, CAN_ENTER_CONTEST_EQUAL_RANK, LilycoveCity_ContestLobby_EventScript_EnterMon + goto_if_eq VAR_RESULT, CAN_ENTER_CONTEST_HIGH_RANK, LilycoveCity_ContestLobby_EventScript_ConfirmEntryAlreadyWon + goto_if_eq VAR_RESULT, CANT_ENTER_CONTEST_EGG, LilycoveCity_ContestLobby_EventScript_CantEnterEgg + goto_if_eq VAR_RESULT, CANT_ENTER_CONTEST_FAINTED, LilycoveCity_ContestLobby_EventScript_CantEnterFainted end LilycoveCity_ContestLobby_EventScript_ChooseContestRank:: @@ -283,8 +275,8 @@ ContestHall_EventScript_GetCategoryTough:: return ContestHall_EventScript_ContestGettingStarted:: - buffercontesttypestring 1, VAR_0x8008 - bufferstdstring 2, VAR_0x8009 + buffercontestname STR_VAR_2, VAR_0x8008 + bufferstdstring STR_VAR_3, VAR_0x8009 call ContestHall_EventScript_GettingStarted lockall applymovement LOCALID_MC, ContestHall_Movement_MCBackUp @@ -293,8 +285,7 @@ ContestHall_EventScript_ContestGettingStarted:: return ContestHall_EventScript_GettingStarted:: - compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK - goto_if_eq ContestHall_EventScript_GettingStartedLink + goto_if_eq VAR_CONTEST_TYPE, CONTEST_TYPE_LINK, ContestHall_EventScript_GettingStartedLink lockall msgbox ContestHall_Text_GettingStartedParticipantsAsFollows, MSGBOX_DEFAULT releaseall @@ -302,8 +293,7 @@ ContestHall_EventScript_GettingStarted:: ContestHall_EventScript_GettingStartedLink:: specialvar VAR_RESULT, IsWirelessContest - compare VAR_RESULT, TRUE - goto_if_eq ContestHall_EventScript_GettingStartedWireless + goto_if_eq VAR_RESULT, TRUE, ContestHall_EventScript_GettingStartedWireless messageautoscroll ContestHall_Text_GettingStartedParticipantsAsFollowsLink waitmessage return @@ -326,16 +316,14 @@ ContestHall_EventScript_ShowContestMons:: call ContestHall_EventScript_TryWaitForLink call ContestHall_EventScript_TryWaitForLink addvar VAR_0x8006, 1 - compare VAR_0x8006, CONTESTANT_COUNT - goto_if_ne ContestHall_EventScript_ShowContestMons + goto_if_ne VAR_0x8006, CONTESTANT_COUNT, ContestHall_EventScript_ShowContestMons call ContestHall_EventScript_AudienceVote setvar VAR_TEMP_1, 6 return ContestHall_EventScript_TryWaitForLink:: specialvar VAR_RESULT, IsWirelessContest - compare VAR_RESULT, TRUE - goto_if_eq ContestHall_EventScript_WaitForLink + goto_if_eq VAR_RESULT, TRUE, ContestHall_EventScript_WaitForLink return ContestHall_EventScript_WaitForLink:: @@ -344,14 +332,10 @@ ContestHall_EventScript_WaitForLink:: return ContestHall_EventScript_ContestantWalkToCenter:: - compare VAR_0x8006, 0 - goto_if_eq ContestHall_EventScript_Player1WalkToCenter - compare VAR_0x8006, 1 - goto_if_eq ContestHall_EventScript_Player2WalkToCenter - compare VAR_0x8006, 2 - goto_if_eq ContestHall_EventScript_Player3WalkToCenter - compare VAR_0x8006, 3 - goto_if_eq ContestHall_EventScript_Player4WalkToCenter + goto_if_eq VAR_0x8006, 0, ContestHall_EventScript_Player1WalkToCenter + goto_if_eq VAR_0x8006, 1, ContestHall_EventScript_Player2WalkToCenter + goto_if_eq VAR_0x8006, 2, ContestHall_EventScript_Player3WalkToCenter + goto_if_eq VAR_0x8006, 3, ContestHall_EventScript_Player4WalkToCenter return ContestHall_EventScript_Player1WalkToCenter:: @@ -393,7 +377,7 @@ ContestHall_EventScript_Player4WalkToCenter:: ContestHall_EventScript_ShowContestMonPic:: special BufferContestTrainerAndMonNames addvar VAR_0x8006, 1 - buffernumberstring 1, VAR_0x8006 + buffernumberstring STR_VAR_2, VAR_0x8006 lockall applymovement VAR_0x800B, ContestHall_Movement_ContestantDelay32 waitmovement 0 @@ -413,8 +397,7 @@ ContestHall_EventScript_ShowContestMonPic:: return ContestHall_EventScript_EntryXTrainersMon:: - compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK - goto_if_eq ContestHall_EventScript_EntryXTrainersMonLink + goto_if_eq VAR_CONTEST_TYPE, CONTEST_TYPE_LINK, ContestHall_EventScript_EntryXTrainersMonLink message ContestHall_Text_EntryXTrainersMon waitmessage return @@ -441,15 +424,13 @@ ContestHall_EventScript_AudienceVote:: return ContestHall_EventScript_AudienceWillVote:: - compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK - goto_if_eq ContestHall_EventScript_AudienceWillVoteLink + goto_if_eq VAR_CONTEST_TYPE, CONTEST_TYPE_LINK, ContestHall_EventScript_AudienceWillVoteLink msgbox ContestHall_Text_SeenContestantsAudienceWillVote, MSGBOX_DEFAULT return ContestHall_EventScript_AudienceWillVoteLink:: specialvar VAR_RESULT, IsWirelessContest - compare VAR_RESULT, TRUE - goto_if_eq ContestHall_EventScript_AudienceWillVoteWireless + goto_if_eq VAR_RESULT, TRUE, ContestHall_EventScript_AudienceWillVoteWireless messageautoscroll ContestHall_Text_SeenContestantsAudienceWillVote waitmessage return @@ -467,8 +448,7 @@ ContestHall_EventScript_AudienceWillVoteWireless:: return ContestHall_EventScript_VotingUnderWay:: - compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK - goto_if_eq ContestHall_EventScript_VotingUnderWayLink + goto_if_eq VAR_CONTEST_TYPE, CONTEST_TYPE_LINK, ContestHall_EventScript_VotingUnderWayLink message ContestHall_Text_VotingUnderWay return @@ -510,16 +490,11 @@ ContestHall_EventScript_AudienceReactToContestant:: @ and are set to 9 if they havent displayed a heart yet, and 1 if they have ContestHall_EventScript_AudienceHeartEmotes:: special GetContestMonCondition - compare VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_NORMAL - call_if_eq ContestHall_EventScript_GetNumberOfHeartsNormal - compare VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_SUPER - call_if_eq ContestHall_EventScript_GetNumberOfHeartsSuper - compare VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_HYPER - call_if_eq ContestHall_EventScript_GetNumberOfHeartsHyper - compare VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_MASTER - call_if_eq ContestHall_EventScript_GetNumberOfHeartsMaster - compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK - call_if_eq ContestHall_EventScript_GetNumberOfHeartsLink + call_if_eq VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_NORMAL, ContestHall_EventScript_GetNumberOfHeartsNormal + call_if_eq VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_SUPER, ContestHall_EventScript_GetNumberOfHeartsSuper + call_if_eq VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_HYPER, ContestHall_EventScript_GetNumberOfHeartsHyper + call_if_eq VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_MASTER, ContestHall_EventScript_GetNumberOfHeartsMaster + call_if_eq VAR_CONTEST_TYPE, CONTEST_TYPE_LINK, ContestHall_EventScript_GetNumberOfHeartsLink setvar VAR_TEMP_1, 9 setvar VAR_TEMP_2, 9 setvar VAR_TEMP_3, 9 @@ -528,8 +503,7 @@ ContestHall_EventScript_AudienceHeartEmotes:: setvar VAR_TEMP_6, 9 setvar VAR_TEMP_7, 9 setvar VAR_TEMP_8, 9 - compare VAR_TEMP_0, 0 - call_if_gt ContestHall_EventScript_DisplayHearts + call_if_gt VAR_TEMP_0, 0, ContestHall_EventScript_DisplayHearts setvar VAR_TEMP_1, 0 setvar VAR_TEMP_2, 0 setvar VAR_TEMP_3, 0 @@ -543,124 +517,75 @@ ContestHall_EventScript_AudienceHeartEmotes:: ContestHall_EventScript_DisplayHearts:: setvar VAR_RESULT, 8 special GenerateContestRand - compare VAR_RESULT, 0 - call_if_eq ContestHall_EventScript_TryDisplayHeartAudienceMember1 - compare VAR_RESULT, 1 - call_if_eq ContestHall_EventScript_TryDisplayHeartAudienceMember2 - compare VAR_RESULT, 2 - call_if_eq ContestHall_EventScript_TryDisplayHeartAudienceMember3 - compare VAR_RESULT, 3 - call_if_eq ContestHall_EventScript_TryDisplayHeartAudienceMember4 - compare VAR_RESULT, 4 - call_if_eq ContestHall_EventScript_TryDisplayHeartAudienceMember5 - compare VAR_RESULT, 5 - call_if_eq ContestHall_EventScript_TryDisplayHeartAudienceMember6 - compare VAR_RESULT, 6 - call_if_eq ContestHall_EventScript_TryDisplayHeartAudienceMember7 - compare VAR_RESULT, 7 - call_if_eq ContestHall_EventScript_TryDisplayHeartAudienceMember8 - compare VAR_TEMP_0, 0 @ Still more hearts to display - goto_if_gt ContestHall_EventScript_DisplayHearts + call_if_eq VAR_RESULT, 0, ContestHall_EventScript_TryDisplayHeartAudienceMember1 + call_if_eq VAR_RESULT, 1, ContestHall_EventScript_TryDisplayHeartAudienceMember2 + call_if_eq VAR_RESULT, 2, ContestHall_EventScript_TryDisplayHeartAudienceMember3 + call_if_eq VAR_RESULT, 3, ContestHall_EventScript_TryDisplayHeartAudienceMember4 + call_if_eq VAR_RESULT, 4, ContestHall_EventScript_TryDisplayHeartAudienceMember5 + call_if_eq VAR_RESULT, 5, ContestHall_EventScript_TryDisplayHeartAudienceMember6 + call_if_eq VAR_RESULT, 6, ContestHall_EventScript_TryDisplayHeartAudienceMember7 + call_if_eq VAR_RESULT, 7, ContestHall_EventScript_TryDisplayHeartAudienceMember8 + goto_if_gt VAR_TEMP_0, 0, ContestHall_EventScript_DisplayHearts @ Still more hearts to display waitmovement 0 return ContestHall_EventScript_GetNumberOfHeartsNormal:: - compare VAR_0x8004, 80 - goto_if_gt ContestHall_EventScript_Set8Hearts - compare VAR_0x8004, 70 - goto_if_gt ContestHall_EventScript_Set7Hearts - compare VAR_0x8004, 60 - goto_if_gt ContestHall_EventScript_Set6Hearts - compare VAR_0x8004, 50 - goto_if_gt ContestHall_EventScript_Set5Hearts - compare VAR_0x8004, 40 - goto_if_gt ContestHall_EventScript_Set4Hearts - compare VAR_0x8004, 30 - goto_if_gt ContestHall_EventScript_Set3Hearts - compare VAR_0x8004, 20 - goto_if_gt ContestHall_EventScript_Set2Hearts - compare VAR_0x8004, 10 - goto_if_gt ContestHall_EventScript_Set1Heart + goto_if_gt VAR_0x8004, 80, ContestHall_EventScript_Set8Hearts + goto_if_gt VAR_0x8004, 70, ContestHall_EventScript_Set7Hearts + goto_if_gt VAR_0x8004, 60, ContestHall_EventScript_Set6Hearts + goto_if_gt VAR_0x8004, 50, ContestHall_EventScript_Set5Hearts + goto_if_gt VAR_0x8004, 40, ContestHall_EventScript_Set4Hearts + goto_if_gt VAR_0x8004, 30, ContestHall_EventScript_Set3Hearts + goto_if_gt VAR_0x8004, 20, ContestHall_EventScript_Set2Hearts + goto_if_gt VAR_0x8004, 10, ContestHall_EventScript_Set1Heart setvar VAR_TEMP_0, 0 return ContestHall_EventScript_GetNumberOfHeartsSuper:: - compare VAR_0x8004, 230 - goto_if_gt ContestHall_EventScript_Set8Hearts - compare VAR_0x8004, 210 - goto_if_gt ContestHall_EventScript_Set7Hearts - compare VAR_0x8004, 190 - goto_if_gt ContestHall_EventScript_Set6Hearts - compare VAR_0x8004, 170 - goto_if_gt ContestHall_EventScript_Set5Hearts - compare VAR_0x8004, 150 - goto_if_gt ContestHall_EventScript_Set4Hearts - compare VAR_0x8004, 130 - goto_if_gt ContestHall_EventScript_Set3Hearts - compare VAR_0x8004, 110 - goto_if_gt ContestHall_EventScript_Set2Hearts - compare VAR_0x8004, 90 - goto_if_gt ContestHall_EventScript_Set1Heart + goto_if_gt VAR_0x8004, 230, ContestHall_EventScript_Set8Hearts + goto_if_gt VAR_0x8004, 210, ContestHall_EventScript_Set7Hearts + goto_if_gt VAR_0x8004, 190, ContestHall_EventScript_Set6Hearts + goto_if_gt VAR_0x8004, 170, ContestHall_EventScript_Set5Hearts + goto_if_gt VAR_0x8004, 150, ContestHall_EventScript_Set4Hearts + goto_if_gt VAR_0x8004, 130, ContestHall_EventScript_Set3Hearts + goto_if_gt VAR_0x8004, 110, ContestHall_EventScript_Set2Hearts + goto_if_gt VAR_0x8004, 90, ContestHall_EventScript_Set1Heart setvar VAR_TEMP_0, 0 return ContestHall_EventScript_GetNumberOfHeartsHyper:: - compare VAR_0x8004, 380 - goto_if_gt ContestHall_EventScript_Set8Hearts - compare VAR_0x8004, 350 - goto_if_gt ContestHall_EventScript_Set7Hearts - compare VAR_0x8004, 320 - goto_if_gt ContestHall_EventScript_Set6Hearts - compare VAR_0x8004, 290 - goto_if_gt ContestHall_EventScript_Set5Hearts - compare VAR_0x8004, 260 - goto_if_gt ContestHall_EventScript_Set4Hearts - compare VAR_0x8004, 230 - goto_if_gt ContestHall_EventScript_Set3Hearts - compare VAR_0x8004, 200 - goto_if_gt ContestHall_EventScript_Set2Hearts - compare VAR_0x8004, 170 - goto_if_gt ContestHall_EventScript_Set1Heart + goto_if_gt VAR_0x8004, 380, ContestHall_EventScript_Set8Hearts + goto_if_gt VAR_0x8004, 350, ContestHall_EventScript_Set7Hearts + goto_if_gt VAR_0x8004, 320, ContestHall_EventScript_Set6Hearts + goto_if_gt VAR_0x8004, 290, ContestHall_EventScript_Set5Hearts + goto_if_gt VAR_0x8004, 260, ContestHall_EventScript_Set4Hearts + goto_if_gt VAR_0x8004, 230, ContestHall_EventScript_Set3Hearts + goto_if_gt VAR_0x8004, 200, ContestHall_EventScript_Set2Hearts + goto_if_gt VAR_0x8004, 170, ContestHall_EventScript_Set1Heart setvar VAR_TEMP_0, 0 return ContestHall_EventScript_GetNumberOfHeartsMaster:: - compare VAR_0x8004, 600 - goto_if_gt ContestHall_EventScript_Set8Hearts - compare VAR_0x8004, 560 - goto_if_gt ContestHall_EventScript_Set7Hearts - compare VAR_0x8004, 520 - goto_if_gt ContestHall_EventScript_Set6Hearts - compare VAR_0x8004, 480 - goto_if_gt ContestHall_EventScript_Set5Hearts - compare VAR_0x8004, 440 - goto_if_gt ContestHall_EventScript_Set4Hearts - compare VAR_0x8004, 400 - goto_if_gt ContestHall_EventScript_Set3Hearts - compare VAR_0x8004, 360 - goto_if_gt ContestHall_EventScript_Set2Hearts - compare VAR_0x8004, 320 - goto_if_gt ContestHall_EventScript_Set1Heart + goto_if_gt VAR_0x8004, 600, ContestHall_EventScript_Set8Hearts + goto_if_gt VAR_0x8004, 560, ContestHall_EventScript_Set7Hearts + goto_if_gt VAR_0x8004, 520, ContestHall_EventScript_Set6Hearts + goto_if_gt VAR_0x8004, 480, ContestHall_EventScript_Set5Hearts + goto_if_gt VAR_0x8004, 440, ContestHall_EventScript_Set4Hearts + goto_if_gt VAR_0x8004, 400, ContestHall_EventScript_Set3Hearts + goto_if_gt VAR_0x8004, 360, ContestHall_EventScript_Set2Hearts + goto_if_gt VAR_0x8004, 320, ContestHall_EventScript_Set1Heart setvar VAR_TEMP_0, 0 return ContestHall_EventScript_GetNumberOfHeartsLink:: - compare VAR_0x8004, 600 - goto_if_gt ContestHall_EventScript_Set8Hearts - compare VAR_0x8004, 550 - goto_if_gt ContestHall_EventScript_Set7Hearts - compare VAR_0x8004, 500 - goto_if_gt ContestHall_EventScript_Set6Hearts - compare VAR_0x8004, 450 - goto_if_gt ContestHall_EventScript_Set5Hearts - compare VAR_0x8004, 400 - goto_if_gt ContestHall_EventScript_Set4Hearts - compare VAR_0x8004, 300 - goto_if_gt ContestHall_EventScript_Set3Hearts - compare VAR_0x8004, 200 - goto_if_gt ContestHall_EventScript_Set2Hearts - compare VAR_0x8004, 100 - goto_if_gt ContestHall_EventScript_Set1Heart + goto_if_gt VAR_0x8004, 600, ContestHall_EventScript_Set8Hearts + goto_if_gt VAR_0x8004, 550, ContestHall_EventScript_Set7Hearts + goto_if_gt VAR_0x8004, 500, ContestHall_EventScript_Set6Hearts + goto_if_gt VAR_0x8004, 450, ContestHall_EventScript_Set5Hearts + goto_if_gt VAR_0x8004, 400, ContestHall_EventScript_Set4Hearts + goto_if_gt VAR_0x8004, 300, ContestHall_EventScript_Set3Hearts + goto_if_gt VAR_0x8004, 200, ContestHall_EventScript_Set2Hearts + goto_if_gt VAR_0x8004, 100, ContestHall_EventScript_Set1Heart setvar VAR_TEMP_0, 0 return @@ -697,8 +622,7 @@ ContestHall_EventScript_Set8Hearts:: return ContestHall_EventScript_TryDisplayHeartAudienceMember1:: - compare VAR_TEMP_1, 1 - goto_if_eq ContestHall_EventScript_AudienceMember1AlreadyEmoted + goto_if_eq VAR_TEMP_1, 1, ContestHall_EventScript_AudienceMember1AlreadyEmoted applymovement LOCALID_AUDIENCE_1, ContestHall_Movement_Heart playse SE_PIN delay 14 @@ -710,8 +634,7 @@ ContestHall_EventScript_AudienceMember1AlreadyEmoted:: return ContestHall_EventScript_TryDisplayHeartAudienceMember2:: - compare VAR_TEMP_2, 1 - goto_if_eq ContestHall_EventScript_AudienceMember2AlreadyEmoted + goto_if_eq VAR_TEMP_2, 1, ContestHall_EventScript_AudienceMember2AlreadyEmoted applymovement LOCALID_AUDIENCE_2, ContestHall_Movement_Heart playse SE_PIN delay 14 @@ -723,8 +646,7 @@ ContestHall_EventScript_AudienceMember2AlreadyEmoted:: return ContestHall_EventScript_TryDisplayHeartAudienceMember3:: - compare VAR_TEMP_3, 1 - goto_if_eq ContestHall_EventScript_AudienceMember3AlreadyEmoted + goto_if_eq VAR_TEMP_3, 1, ContestHall_EventScript_AudienceMember3AlreadyEmoted applymovement LOCALID_AUDIENCE_3, ContestHall_Movement_Heart playse SE_PIN delay 14 @@ -736,8 +658,7 @@ ContestHall_EventScript_AudienceMember3AlreadyEmoted:: return ContestHall_EventScript_TryDisplayHeartAudienceMember4:: - compare VAR_TEMP_4, 1 - goto_if_eq ContestHall_EventScript_Audience4MemberAlreadyEmoted + goto_if_eq VAR_TEMP_4, 1, ContestHall_EventScript_Audience4MemberAlreadyEmoted applymovement LOCALID_AUDIENCE_4, ContestHall_Movement_Heart playse SE_PIN delay 14 @@ -749,8 +670,7 @@ ContestHall_EventScript_Audience4MemberAlreadyEmoted:: return ContestHall_EventScript_TryDisplayHeartAudienceMember5:: - compare VAR_TEMP_5, 1 - goto_if_eq ContestHall_EventScript_AudienceMember5AlreadyEmoted + goto_if_eq VAR_TEMP_5, 1, ContestHall_EventScript_AudienceMember5AlreadyEmoted applymovement LOCALID_AUDIENCE_5, ContestHall_Movement_Heart playse SE_PIN delay 14 @@ -762,8 +682,7 @@ ContestHall_EventScript_AudienceMember5AlreadyEmoted:: return ContestHall_EventScript_TryDisplayHeartAudienceMember6:: - compare VAR_TEMP_6, 1 - goto_if_eq ContestHall_EventScript_AudienceMember6AlreadyEmoted + goto_if_eq VAR_TEMP_6, 1, ContestHall_EventScript_AudienceMember6AlreadyEmoted applymovement LOCALID_AUDIENCE_6, ContestHall_Movement_Heart playse SE_PIN delay 14 @@ -775,8 +694,7 @@ ContestHall_EventScript_AudienceMember6AlreadyEmoted:: return ContestHall_EventScript_TryDisplayHeartAudienceMember7:: - compare VAR_TEMP_7, 1 - goto_if_eq ContestHall_EventScript_AudienceMember7AlreadyEmoted + goto_if_eq VAR_TEMP_7, 1, ContestHall_EventScript_AudienceMember7AlreadyEmoted applymovement LOCALID_AUDIENCE_7, ContestHall_Movement_Heart playse SE_PIN delay 14 @@ -788,8 +706,7 @@ ContestHall_EventScript_AudienceMember7AlreadyEmoted:: return ContestHall_EventScript_TryDisplayHeartAudienceMember8:: - compare VAR_TEMP_8, 1 - goto_if_eq ContestHall_EventScript_AudienceMember8AlreadyEmoted + goto_if_eq VAR_TEMP_8, 1, ContestHall_EventScript_AudienceMember8AlreadyEmoted applymovement LOCALID_ARTIST, ContestHall_Movement_Heart playse SE_PIN delay 14 @@ -870,15 +787,13 @@ ContestHall_EventScript_DoContestAppeals:: return ContestHall_EventScript_LetsAppeal:: - compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK - goto_if_eq ContestHall_EventScript_LetsAppealLink + goto_if_eq VAR_CONTEST_TYPE, CONTEST_TYPE_LINK, ContestHall_EventScript_LetsAppealLink msgbox ContestHall_Text_VotingCompleteLetsAppeal, MSGBOX_DEFAULT return ContestHall_EventScript_LetsAppealLink:: specialvar VAR_RESULT, IsWirelessContest - compare VAR_RESULT, TRUE - goto_if_eq ContestHall_EventScript_LetsAppealWireless + goto_if_eq VAR_RESULT, TRUE, ContestHall_EventScript_LetsAppealWireless messageautoscroll ContestHall_Text_VotingCompleteLetsAppeal waitmessage return @@ -920,8 +835,7 @@ ContestHall_EventScript_ContestResults:: return ContestHall_EventScript_ThatsItForJudging:: - compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK - goto_if_eq ContestHall_EventScript_ThatsItForJudgingLink + goto_if_eq VAR_CONTEST_TYPE, CONTEST_TYPE_LINK, ContestHall_EventScript_ThatsItForJudgingLink msgbox ContestHall_Text_ThatsItForJudging, MSGBOX_DEFAULT return @@ -933,8 +847,7 @@ ContestHall_EventScript_ThatsItForJudgingLink:: return ContestHall_EventScript_ThankYouForAppeals:: - compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK - goto_if_eq ContestHall_EventScript_ThankYouForAppealsLink + goto_if_eq VAR_CONTEST_TYPE, CONTEST_TYPE_LINK, ContestHall_EventScript_ThankYouForAppealsLink msgbox ContestHall_Text_ThankYouForAppeals, MSGBOX_DEFAULT return @@ -946,8 +859,7 @@ ContestHall_EventScript_ThankYouForAppealsLink:: return ContestHall_EventScript_JudgeLooksReady:: - compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK - goto_if_eq ContestHall_EventScript_JudgeLooksReadyLink + goto_if_eq VAR_CONTEST_TYPE, CONTEST_TYPE_LINK, ContestHall_EventScript_JudgeLooksReadyLink msgbox ContestHall_Text_JudgeLooksReady, MSGBOX_DEFAULT return @@ -959,8 +871,7 @@ ContestHall_EventScript_JudgeLooksReadyLink:: return ContestHall_EventScript_WeWillDeclareWinner:: - compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK - goto_if_eq ContestHall_EventScript_WeWillDeclareWinnerLink + goto_if_eq VAR_CONTEST_TYPE, CONTEST_TYPE_LINK, ContestHall_EventScript_WeWillDeclareWinnerLink msgbox ContestHall_Text_WeWillNowDeclareWinner, MSGBOX_DEFAULT return @@ -1000,7 +911,7 @@ ContestHall_EventScript_CongratulateWinner:: special BufferContestWinnerTrainerName special BufferContestWinnerMonName addvar VAR_0x8005, 1 - buffernumberstring 1, VAR_0x8005 + buffernumberstring STR_VAR_2, VAR_0x8005 addvar VAR_0x8005, -1 call ContestHall_EventScript_CongratsWinner applymovement VAR_TEMP_3, ContestHall_Movement_WinningPlayerWalkUp @@ -1010,8 +921,7 @@ ContestHall_EventScript_CongratulateWinner:: return ContestHall_EventScript_CongratsWinner:: - compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK - goto_if_eq ContestHall_EventScript_CongratsWinnerLink + goto_if_eq VAR_CONTEST_TYPE, CONTEST_TYPE_LINK, ContestHall_EventScript_CongratsWinnerLink msgbox ContestHall_Text_CongratsTrainerXandMon, MSGBOX_DEFAULT return @@ -1023,8 +933,7 @@ ContestHall_EventScript_CongratsWinnerLink:: ContestHall_EventScript_AudienceLookAround:: addvar VAR_TEMP_1, 1 lockall - compare VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_NORMAL - call_if_gt ContestHall_EventScript_VObjectAudienceLookAround + call_if_gt VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_NORMAL, ContestHall_EventScript_VObjectAudienceLookAround applymovement LOCALID_AUDIENCE_5, ContestHall_Movement_AudienceMemberLookRight applymovement LOCALID_AUDIENCE_2, ContestHall_Movement_AudienceMemberLookDown applymovement LOCALID_AUDIENCE_3, ContestHall_Movement_AudienceMemberLookRight @@ -1033,8 +942,7 @@ ContestHall_EventScript_AudienceLookAround:: applymovement LOCALID_AUDIENCE_7, ContestHall_Movement_AudienceMemberLookDown applymovement LOCALID_AUDIENCE_1, ContestHall_Movement_AudienceMemberLookUp applymovement LOCALID_AUDIENCE_4, ContestHall_Movement_AudienceMemberLookLeft - compare VAR_TEMP_1, 4 - goto_if_ne ContestHall_EventScript_AudienceLookAround + goto_if_ne VAR_TEMP_1, 4, ContestHall_EventScript_AudienceLookAround delay 30 return @@ -1108,8 +1016,7 @@ ContestHall_EventScript_VObjectAudienceLookAround:: return ContestHall_EventScript_GiveWinnerPrize:: - compare VAR_CONTEST_TYPE, CONTEST_TYPE_LINK - goto_if_eq ContestHall_EventScript_EndLinkContest + goto_if_eq VAR_CONTEST_TYPE, CONTEST_TYPE_LINK, ContestHall_EventScript_EndLinkContest call ContestHall_EventScript_CheckShouldSkipPrize goto_if_set FLAG_TEMP_2, ContestHall_EventScript_SkipPrize lockall @@ -1122,8 +1029,7 @@ ContestHall_EventScript_GiveWinnerPrize:: call ContestHall_EventScript_AudienceLookAround delay 30 special ShouldReadyContestArtist - compare VAR_0x8004, TRUE - goto_if_eq ContestHall_EventScript_SetReadyForContestArtist + goto_if_eq VAR_0x8004, TRUE, ContestHall_EventScript_SetReadyForContestArtist return ContestHall_EventScript_SkipPrize:: @@ -1132,25 +1038,21 @@ ContestHall_EventScript_SkipPrize:: releaseall delay 90 special ShouldReadyContestArtist - compare VAR_0x8004, TRUE - goto_if_eq ContestHall_EventScript_SetReadyForContestArtist + goto_if_eq VAR_0x8004, TRUE, ContestHall_EventScript_SetReadyForContestArtist return ContestHall_EventScript_CheckShouldSkipPrize:: specialvar VAR_RESULT, HasMonWonThisContestBefore - compare VAR_RESULT, TRUE - goto_if_eq ContestHall_EventScript_CheckPlayerWon + goto_if_eq VAR_RESULT, TRUE, ContestHall_EventScript_CheckPlayerWon return ContestHall_EventScript_CheckPlayerWon:: special GetContestWinnerId - compare VAR_0x8005, 3 - goto_if_eq ContestHall_EventScript_CheckRankIsMaster + goto_if_eq VAR_0x8005, 3, ContestHall_EventScript_CheckRankIsMaster return ContestHall_EventScript_CheckRankIsMaster:: - compare VAR_CONTEST_RANK, CONTEST_RANK_MASTER - goto_if_eq ContestHall_EventScript_DontSkipPrize + goto_if_eq VAR_CONTEST_RANK, CONTEST_RANK_MASTER, ContestHall_EventScript_DontSkipPrize setflag FLAG_TEMP_2 return @@ -1171,8 +1073,7 @@ ContestHall_EventScript_EndLinkContest:: special GetContestPlayerId special GetContestWinnerId special ShouldReadyContestArtist - compare VAR_0x8004, TRUE - goto_if_eq ContestHall_EventScript_SetReadyForLinkContestArtist + goto_if_eq VAR_0x8004, TRUE, ContestHall_EventScript_SetReadyForLinkContestArtist closemessage return @@ -1223,21 +1124,17 @@ ContestHall_EventScript_Player4ApproachForPrize:: @ In NPC Contests, the player is always entry 4 (id number 3) ContestHall_EventScript_GivePrizeIfWinner:: special GetContestWinnerId - compare VAR_0x8005, 3 - goto_if_eq ContestHall_EventScript_GiveContestPrizes + goto_if_eq VAR_0x8005, 3, ContestHall_EventScript_GiveContestPrizes lockall msgbox ContestHall_Text_CongratsPleaseCompeteAgain, MSGBOX_DEFAULT releaseall return ContestHall_EventScript_GiveContestPrizes:: - compare VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_SUPER - call_if_eq ContestHall_EventScript_SetSketchFlag + call_if_eq VAR_CONTEST_TYPE, CONTEST_TYPE_NPC_SUPER, ContestHall_EventScript_SetSketchFlag specialvar VAR_RESULT, HasMonWonThisContestBefore - compare VAR_RESULT, FALSE - goto_if_eq ContestHall_EventScript_ReceiveContestRibbon - compare VAR_CONTEST_RANK, CONTEST_RANK_MASTER - goto_if_eq ContestHall_EventScript_GiveLuxuryBall + goto_if_eq VAR_RESULT, FALSE, ContestHall_EventScript_ReceiveContestRibbon + goto_if_eq VAR_CONTEST_RANK, CONTEST_RANK_MASTER, ContestHall_EventScript_GiveLuxuryBall lockall msgbox ContestHall_Text_CongratsPleaseCompeteAgain, MSGBOX_DEFAULT releaseall @@ -1253,8 +1150,7 @@ ContestHall_EventScript_NoRoomForLuxuryBall:: ContestHall_EventScript_GiveLuxuryBall:: giveitem ITEM_LUXURY_BALL - compare VAR_RESULT, FALSE - goto_if_eq ContestHall_EventScript_NoRoomForLuxuryBall + goto_if_eq VAR_RESULT, FALSE, ContestHall_EventScript_NoRoomForLuxuryBall lockall msgbox ContestHall_Text_CongratsPleaseCompeteAgain, MSGBOX_DEFAULT releaseall @@ -1460,8 +1356,7 @@ ContestHall_Movement_Player2ApproachForPrize: @ IsContestWithRSPlayer has no side effect, so this is nop ContestHall_EventScript_CheckIfContestWithRSPlayer:: specialvar VAR_RESULT, IsContestWithRSPlayer - compare VAR_RESULT, TRUE - goto_if_eq ContestHall_EventScript_RetRSPlayer + goto_if_eq VAR_RESULT, TRUE, ContestHall_EventScript_RetRSPlayer return ContestHall_EventScript_RetRSPlayer:: @@ -1469,8 +1364,7 @@ ContestHall_EventScript_RetRSPlayer:: LilycoveCity_ContestLobby_EventScript_DelayIfContestWithRSPlayer:: specialvar VAR_RESULT, IsContestWithRSPlayer - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_ContestLobby_EventScript_DelayForRSPlayer + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_ContestLobby_EventScript_DelayForRSPlayer return LilycoveCity_ContestLobby_EventScript_DelayForRSPlayer:: diff --git a/data/scripts/day_care.inc b/data/scripts/day_care.inc index 8d529d5e10..cb053f2c40 100644 --- a/data/scripts/day_care.inc +++ b/data/scripts/day_care.inc @@ -5,23 +5,18 @@ Route117_EventScript_DaycareMan:: faceplayer special GetDaycareMonNicknames specialvar VAR_RESULT, GetDaycareState - compare VAR_RESULT, DAYCARE_EGG_WAITING - goto_if_eq Route117_EventScript_DaycareEggWaiting - compare VAR_RESULT, DAYCARE_ONE_MON - goto_if_eq Route117_EventScript_CheckOnOneMon - compare VAR_RESULT, DAYCARE_TWO_MONS - goto_if_eq Route117_EventScript_CheckOnTwoMons + goto_if_eq VAR_RESULT, DAYCARE_EGG_WAITING, Route117_EventScript_DaycareEggWaiting + goto_if_eq VAR_RESULT, DAYCARE_ONE_MON, Route117_EventScript_CheckOnOneMon + goto_if_eq VAR_RESULT, DAYCARE_TWO_MONS, Route117_EventScript_CheckOnTwoMons msgbox Route117_Text_SeeWifeIfYoudLikeMeToRaiseMon, MSGBOX_DEFAULT release end Route117_EventScript_DaycareEggWaiting:: msgbox Route117_Text_DoYouWantEgg, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route117_EventScript_DaycareAcceptEgg + goto_if_eq VAR_RESULT, YES, Route117_EventScript_DaycareAcceptEgg msgbox Route117_Text_IWillKeepDoYouWantIt, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route117_EventScript_DaycareAcceptEgg + goto_if_eq VAR_RESULT, YES, Route117_EventScript_DaycareAcceptEgg msgbox Route117_Text_IllKeepIt, MSGBOX_DEFAULT clearflag FLAG_PENDING_DAYCARE_EGG special RejectEggFromDayCare @@ -30,8 +25,7 @@ Route117_EventScript_DaycareEggWaiting:: Route117_EventScript_DaycareAcceptEgg:: specialvar VAR_RESULT, CalculatePlayerPartyCount - compare VAR_RESULT, PARTY_SIZE - goto_if_ne Route117_EventScript_DaycareReceiveEgg + goto_if_ne VAR_RESULT, PARTY_SIZE, Route117_EventScript_DaycareReceiveEgg msgbox Route117_Text_YouHaveNoRoomForIt, MSGBOX_DEFAULT release end @@ -49,8 +43,7 @@ Route117_EventScript_DaycareReceiveEgg:: Route117_EventScript_CheckMonReceivedMail:: specialvar VAR_RESULT, CheckDaycareMonReceivedMail - compare VAR_RESULT, 1 - call_if_eq Route117_EventScript_MonReceivedMail + call_if_eq VAR_RESULT, 1, Route117_EventScript_MonReceivedMail return Route117_EventScript_MonReceivedMail:: @@ -83,35 +76,27 @@ Route117_PokemonDayCare_EventScript_DaycareWoman:: lock faceplayer specialvar VAR_RESULT, GetDaycareState - compare VAR_RESULT, DAYCARE_EGG_WAITING - goto_if_eq Route117_PokemonDayCare_EventScript_EggWaiting - compare VAR_RESULT, DAYCARE_ONE_MON - goto_if_eq Route117_PokemonDayCare_EventScript_OneMonInDaycare - compare VAR_RESULT, DAYCARE_TWO_MONS - goto_if_eq Route117_PokemonDayCare_EventScript_TwoMonsInDaycare + goto_if_eq VAR_RESULT, DAYCARE_EGG_WAITING, Route117_PokemonDayCare_EventScript_EggWaiting + goto_if_eq VAR_RESULT, DAYCARE_ONE_MON, Route117_PokemonDayCare_EventScript_OneMonInDaycare + goto_if_eq VAR_RESULT, DAYCARE_TWO_MONS, Route117_PokemonDayCare_EventScript_TwoMonsInDaycare msgbox Route117_PokemonDayCare_Text_WouldYouLikeUsToRaiseAMon, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route117_PokemonDayCare_EventScript_GiveMonToRaise + goto_if_eq VAR_RESULT, YES, Route117_PokemonDayCare_EventScript_GiveMonToRaise msgbox Route117_PokemonDayCare_Text_FineThenComeAgain, MSGBOX_DEFAULT release end Route117_PokemonDayCare_EventScript_GiveMonToRaise:: specialvar VAR_RESULT, CountPartyNonEggMons - compare VAR_RESULT, 1 - goto_if_eq Route117_PokemonDayCare_EventScript_OnlyOneMon + goto_if_eq VAR_RESULT, 1, Route117_PokemonDayCare_EventScript_OnlyOneMon specialvar VAR_RESULT, CountPartyAliveNonEggMons - compare VAR_RESULT, 2 - goto_if_eq Route117_PokemonDayCare_EventScript_OnlyTwoAliveMons + goto_if_eq VAR_RESULT, 2, Route117_PokemonDayCare_EventScript_OnlyTwoAliveMons msgbox Route117_PokemonDayCare_Text_WhichMonShouldWeRaise, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK special ChooseSendDaycareMon waitstate - compare VAR_0x8004, 255 - goto_if_eq Route117_PokemonDayCare_EventScript_ComeAgain + goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, Route117_PokemonDayCare_EventScript_ComeAgain specialvar VAR_RESULT, CountPartyAliveNonEggMons_IgnoreVar0x8004Slot - compare VAR_RESULT, 0 - goto_if_eq Route117_PokemonDayCare_EventScript_OnlyOneAliveMon + goto_if_eq VAR_RESULT, 0, Route117_PokemonDayCare_EventScript_OnlyOneAliveMon specialvar VAR_0x8005, GetSelectedMonNicknameAndSpecies waitse playmoncry VAR_0x8005, CRY_MODE_NORMAL @@ -120,8 +105,7 @@ Route117_PokemonDayCare_EventScript_GiveMonToRaise:: special StoreSelectedPokemonInDaycare incrementgamestat GAME_STAT_USED_DAYCARE specialvar VAR_RESULT, GetDaycareState - compare VAR_RESULT, DAYCARE_ONE_MON - goto_if_eq Route117_PokemonDayCare_EventScript_CanRaiseOneMore + goto_if_eq VAR_RESULT, DAYCARE_ONE_MON, Route117_PokemonDayCare_EventScript_CanRaiseOneMore release end @@ -132,8 +116,7 @@ Route117_PokemonDayCare_EventScript_ComeAgain:: Route117_PokemonDayCare_EventScript_CanRaiseOneMore:: msgbox Route117_PokemonDayCare_Text_WeCanRaiseOneMore, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route117_PokemonDayCare_EventScript_GiveMonToRaise + goto_if_eq VAR_RESULT, YES, Route117_PokemonDayCare_EventScript_GiveMonToRaise goto Route117_PokemonDayCare_EventScript_ComeAgain end @@ -163,8 +146,7 @@ Route117_PokemonDayCare_EventScript_YourMonHasGrownXLevels:: Route117_PokemonDayCare_EventScript_DisplayLevelsGained:: specialvar VAR_RESULT, GetNumLevelsGainedFromDaycare - compare VAR_RESULT, 0 - call_if_ne Route117_PokemonDayCare_EventScript_YourMonHasGrownXLevels + call_if_ne VAR_RESULT, 0, Route117_PokemonDayCare_EventScript_YourMonHasGrownXLevels return Route117_PokemonDayCare_EventScript_OneMonInDaycare:: @@ -172,42 +154,35 @@ Route117_PokemonDayCare_EventScript_OneMonInDaycare:: setvar VAR_0x8004, 0 call Route117_PokemonDayCare_EventScript_DisplayLevelsGained msgbox Route117_PokemonDayCare_Text_WeCanRaiseOneMore, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route117_PokemonDayCare_EventScript_GiveMonToRaise + goto_if_eq VAR_RESULT, YES, Route117_PokemonDayCare_EventScript_GiveMonToRaise msgbox Route117_PokemonDayCare_Text_TakeYourMonBack, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route117_PokemonDayCare_EventScript_TryRetrieveMon + goto_if_eq VAR_RESULT, YES, Route117_PokemonDayCare_EventScript_TryRetrieveMon goto Route117_PokemonDayCare_EventScript_ComeAgain end Route117_PokemonDayCare_EventScript_TryRetrieveMon:: specialvar VAR_RESULT, CalculatePlayerPartyCount - compare VAR_RESULT, PARTY_SIZE - goto_if_eq Route117_PokemonDayCare_EventScript_NoRoom + goto_if_eq VAR_RESULT, PARTY_SIZE, Route117_PokemonDayCare_EventScript_NoRoom specialvar VAR_RESULT, GetDaycareState setvar VAR_0x8004, 0 - compare VAR_RESULT, DAYCARE_ONE_MON - goto_if_eq Route117_PokemonDayCare_EventScript_CostPrompt + goto_if_eq VAR_RESULT, DAYCARE_ONE_MON, Route117_PokemonDayCare_EventScript_CostPrompt special ShowDaycareLevelMenu waitstate copyvar VAR_0x8004, VAR_RESULT - compare VAR_RESULT, DAYCARE_EXITED_LEVEL_MENU - goto_if_eq Route117_PokemonDayCare_EventScript_ComeAgain + goto_if_eq VAR_RESULT, DAYCARE_EXITED_LEVEL_MENU, Route117_PokemonDayCare_EventScript_ComeAgain goto Route117_PokemonDayCare_EventScript_CostPrompt end Route117_PokemonDayCare_EventScript_CostPrompt:: special GetDaycareCost msgbox Route117_PokemonDayCare_Text_ItWillCostX, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route117_PokemonDayCare_EventScript_CheckEnoughMoney + goto_if_eq VAR_RESULT, YES, Route117_PokemonDayCare_EventScript_CheckEnoughMoney goto Route117_PokemonDayCare_EventScript_ComeAgain end Route117_PokemonDayCare_EventScript_CheckEnoughMoney:: specialvar VAR_RESULT, IsEnoughForCostInVar0x8005 - compare VAR_RESULT, 1 - goto_if_eq Route117_PokemonDayCare_EventScript_RetrieveMon + goto_if_eq VAR_RESULT, 1, Route117_PokemonDayCare_EventScript_RetrieveMon msgbox Route117_PokemonDayCare_Text_NotEnoughMoney, MSGBOX_DEFAULT release end @@ -224,15 +199,13 @@ Route117_PokemonDayCare_EventScript_RetrieveMon:: msgbox Route117_PokemonDayCare_Text_TookBackMon, MSGBOX_DEFAULT waitmoncry specialvar VAR_RESULT, GetDaycareState - compare VAR_RESULT, DAYCARE_ONE_MON - goto_if_eq Route117_PokemonDayCare_EventScript_AskRetrieveOtherMon + goto_if_eq VAR_RESULT, DAYCARE_ONE_MON, Route117_PokemonDayCare_EventScript_AskRetrieveOtherMon goto Route117_PokemonDayCare_EventScript_ComeAgain end Route117_PokemonDayCare_EventScript_AskRetrieveOtherMon:: msgbox Route117_PokemonDayCare_Text_TakeOtherOneBackToo, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route117_PokemonDayCare_EventScript_TryRetrieveMon + goto_if_eq VAR_RESULT, YES, Route117_PokemonDayCare_EventScript_TryRetrieveMon goto Route117_PokemonDayCare_EventScript_ComeAgain end @@ -274,8 +247,7 @@ Route117_PokemonDayCare_EventScript_TwoMonsInDaycare:: setvar VAR_0x8004, 1 call Route117_PokemonDayCare_EventScript_DisplayLevelsGained msgbox Route117_PokemonDayCare_Text_TakeYourMonBack, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route117_PokemonDayCare_EventScript_TryRetrieveMon + goto_if_eq VAR_RESULT, YES, Route117_PokemonDayCare_EventScript_TryRetrieveMon msgbox Route117_PokemonDayCare_Text_ComeAgain, MSGBOX_DEFAULT release end @@ -284,8 +256,7 @@ Route117_PokemonDayCare_EventScript_TwoMonsInDaycare:: Route117_PokemonDayCare_EventScript_UnusedRetrieveMon:: special ShowDaycareLevelMenu waitstate - compare VAR_RESULT, 2 - goto_if_eq Route117_PokemonDayCare_EventScript_ComeAgain + goto_if_eq VAR_RESULT, 2, Route117_PokemonDayCare_EventScript_ComeAgain copyvar VAR_0x8004, VAR_RESULT specialvar VAR_RESULT, TakePokemonFromDaycare msgbox Route117_PokemonDayCare_Text_HeresYourMon, MSGBOX_DEFAULT diff --git a/data/scripts/elite_four.inc b/data/scripts/elite_four.inc index 0ae319061a..97d7f41314 100644 --- a/data/scripts/elite_four.inc +++ b/data/scripts/elite_four.inc @@ -2,18 +2,18 @@ PokemonLeague_EliteFour_SetAdvanceToNextRoomMetatiles:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_Delay32 waitmovement 0 playse SE_DOOR - setmetatile 6, 1, METATILE_EliteFour_OpenDoor_Frame, 0 - setmetatile 6, 2, METATILE_EliteFour_OpenDoor_Opening, 0 - setmetatile 0, 2, METATILE_EliteFour_RightSpotlightOff, 1 - setmetatile 1, 2, METATILE_EliteFour_LeftSpotlightOff, 1 - setmetatile 2, 2, METATILE_EliteFour_RightSpotlightOff, 1 - setmetatile 3, 2, METATILE_EliteFour_LeftSpotlightOff, 1 - setmetatile 4, 2, METATILE_EliteFour_RightSpotlightOff, 1 - setmetatile 8, 2, METATILE_EliteFour_LeftSpotlightOff, 1 - setmetatile 9, 2, METATILE_EliteFour_RightSpotlightOff, 1 - setmetatile 10, 2, METATILE_EliteFour_LeftSpotlightOff, 1 - setmetatile 11, 2, METATILE_EliteFour_RightSpotlightOff, 1 - setmetatile 12, 2, METATILE_EliteFour_LeftSpotlightOff, 1 + setmetatile 6, 1, METATILE_EliteFour_OpenDoor_Frame, FALSE + setmetatile 6, 2, METATILE_EliteFour_OpenDoor_Opening, FALSE + setmetatile 0, 2, METATILE_EliteFour_RightSpotlightOff, TRUE + setmetatile 1, 2, METATILE_EliteFour_LeftSpotlightOff, TRUE + setmetatile 2, 2, METATILE_EliteFour_RightSpotlightOff, TRUE + setmetatile 3, 2, METATILE_EliteFour_LeftSpotlightOff, TRUE + setmetatile 4, 2, METATILE_EliteFour_RightSpotlightOff, TRUE + setmetatile 8, 2, METATILE_EliteFour_LeftSpotlightOff, TRUE + setmetatile 9, 2, METATILE_EliteFour_RightSpotlightOff, TRUE + setmetatile 10, 2, METATILE_EliteFour_LeftSpotlightOff, TRUE + setmetatile 11, 2, METATILE_EliteFour_RightSpotlightOff, TRUE + setmetatile 12, 2, METATILE_EliteFour_LeftSpotlightOff, TRUE special DrawWholeMapView return @@ -21,42 +21,42 @@ PokemonLeague_EliteFour_EventScript_WalkInCloseDoor:: applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkUp6 waitmovement 0 playse SE_TRUCK_DOOR - setmetatile 5, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 - setmetatile 6, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 - setmetatile 7, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 - setmetatile 5, 13, METATILE_EliteFour_EntryDoor_ClosedBottom, 1 - setmetatile 6, 13, METATILE_EliteFour_EntryDoor_ClosedBottom, 1 - setmetatile 7, 13, METATILE_EliteFour_EntryDoor_ClosedBottom, 1 + setmetatile 5, 12, METATILE_EliteFour_EntryDoor_ClosedTop, TRUE + setmetatile 6, 12, METATILE_EliteFour_EntryDoor_ClosedTop, TRUE + setmetatile 7, 12, METATILE_EliteFour_EntryDoor_ClosedTop, TRUE + setmetatile 5, 13, METATILE_EliteFour_EntryDoor_ClosedBottom, TRUE + setmetatile 6, 13, METATILE_EliteFour_EntryDoor_ClosedBottom, TRUE + setmetatile 7, 13, METATILE_EliteFour_EntryDoor_ClosedBottom, TRUE special DrawWholeMapView return @ Essentially unused, only necessary when re-entering an Elite Four room after defeating the member, which isnt normally possible PokemonLeague_EliteFour_EventScript_ResetAdvanceToNextRoom:: - setmetatile 6, 1, METATILE_EliteFour_OpenDoor_Frame, 0 - setmetatile 6, 2, METATILE_EliteFour_OpenDoor_Opening, 0 - setmetatile 5, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 - setmetatile 6, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 - setmetatile 7, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 - setmetatile 5, 13, METATILE_EliteFour_EntryDoor_ClosedBottom, 1 - setmetatile 6, 13, METATILE_EliteFour_EntryDoor_ClosedBottom, 1 - setmetatile 7, 13, METATILE_EliteFour_EntryDoor_ClosedBottom, 1 - setmetatile 0, 2, METATILE_EliteFour_RightSpotlightOff, 1 - setmetatile 1, 2, METATILE_EliteFour_LeftSpotlightOff, 1 - setmetatile 2, 2, METATILE_EliteFour_RightSpotlightOff, 1 - setmetatile 3, 2, METATILE_EliteFour_LeftSpotlightOff, 1 - setmetatile 4, 2, METATILE_EliteFour_RightSpotlightOff, 1 - setmetatile 8, 2, METATILE_EliteFour_LeftSpotlightOff, 1 - setmetatile 9, 2, METATILE_EliteFour_RightSpotlightOff, 1 - setmetatile 10, 2, METATILE_EliteFour_LeftSpotlightOff, 1 - setmetatile 11, 2, METATILE_EliteFour_RightSpotlightOff, 1 - setmetatile 12, 2, METATILE_EliteFour_LeftSpotlightOff, 1 + setmetatile 6, 1, METATILE_EliteFour_OpenDoor_Frame, FALSE + setmetatile 6, 2, METATILE_EliteFour_OpenDoor_Opening, FALSE + setmetatile 5, 12, METATILE_EliteFour_EntryDoor_ClosedTop, TRUE + setmetatile 6, 12, METATILE_EliteFour_EntryDoor_ClosedTop, TRUE + setmetatile 7, 12, METATILE_EliteFour_EntryDoor_ClosedTop, TRUE + setmetatile 5, 13, METATILE_EliteFour_EntryDoor_ClosedBottom, TRUE + setmetatile 6, 13, METATILE_EliteFour_EntryDoor_ClosedBottom, TRUE + setmetatile 7, 13, METATILE_EliteFour_EntryDoor_ClosedBottom, TRUE + setmetatile 0, 2, METATILE_EliteFour_RightSpotlightOff, TRUE + setmetatile 1, 2, METATILE_EliteFour_LeftSpotlightOff, TRUE + setmetatile 2, 2, METATILE_EliteFour_RightSpotlightOff, TRUE + setmetatile 3, 2, METATILE_EliteFour_LeftSpotlightOff, TRUE + setmetatile 4, 2, METATILE_EliteFour_RightSpotlightOff, TRUE + setmetatile 8, 2, METATILE_EliteFour_LeftSpotlightOff, TRUE + setmetatile 9, 2, METATILE_EliteFour_RightSpotlightOff, TRUE + setmetatile 10, 2, METATILE_EliteFour_LeftSpotlightOff, TRUE + setmetatile 11, 2, METATILE_EliteFour_RightSpotlightOff, TRUE + setmetatile 12, 2, METATILE_EliteFour_LeftSpotlightOff, TRUE return PokemonLeague_EliteFour_EventScript_CloseDoor:: - setmetatile 5, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 - setmetatile 6, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 - setmetatile 7, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 - setmetatile 5, 13, METATILE_EliteFour_EntryDoor_ClosedBottom, 1 - setmetatile 6, 13, METATILE_EliteFour_EntryDoor_ClosedBottom, 1 - setmetatile 7, 13, METATILE_EliteFour_EntryDoor_ClosedBottom, 1 + setmetatile 5, 12, METATILE_EliteFour_EntryDoor_ClosedTop, TRUE + setmetatile 6, 12, METATILE_EliteFour_EntryDoor_ClosedTop, TRUE + setmetatile 7, 12, METATILE_EliteFour_EntryDoor_ClosedTop, TRUE + setmetatile 5, 13, METATILE_EliteFour_EntryDoor_ClosedBottom, TRUE + setmetatile 6, 13, METATILE_EliteFour_EntryDoor_ClosedBottom, TRUE + setmetatile 7, 13, METATILE_EliteFour_EntryDoor_ClosedBottom, TRUE return diff --git a/data/scripts/field_move_scripts.inc b/data/scripts/field_move_scripts.inc index b81ca21dd1..3e99fc08e2 100644 --- a/data/scripts/field_move_scripts.inc +++ b/data/scripts/field_move_scripts.inc @@ -3,14 +3,12 @@ EventScript_CutTree:: lockall goto_if_unset FLAG_BADGE01_GET, EventScript_CheckTreeCantCut checkpartymove MOVE_CUT - compare VAR_RESULT, PARTY_SIZE - goto_if_eq EventScript_CheckTreeCantCut + goto_if_eq VAR_RESULT, PARTY_SIZE, EventScript_CheckTreeCantCut setfieldeffectargument 0, VAR_RESULT - bufferpartymonnick 0, VAR_RESULT - buffermovename 1, MOVE_CUT + bufferpartymonnick STR_VAR_1, VAR_RESULT + buffermovename STR_VAR_2, MOVE_CUT msgbox Text_WantToCut, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq EventScript_CancelCut + goto_if_eq VAR_RESULT, NO, EventScript_CancelCut msgbox Text_MonUsedFieldMove, MSGBOX_DEFAULT closemessage dofieldeffect FLDEFF_USE_CUT_ON_TREE @@ -64,14 +62,12 @@ EventScript_RockSmash:: lockall goto_if_unset FLAG_BADGE03_GET, EventScript_CantSmashRock checkpartymove MOVE_ROCK_SMASH - compare VAR_RESULT, PARTY_SIZE - goto_if_eq EventScript_CantSmashRock + goto_if_eq VAR_RESULT, PARTY_SIZE, EventScript_CantSmashRock setfieldeffectargument 0, VAR_RESULT - bufferpartymonnick 0, VAR_RESULT - buffermovename 1, MOVE_ROCK_SMASH + bufferpartymonnick STR_VAR_1, VAR_RESULT + buffermovename STR_VAR_2, MOVE_ROCK_SMASH msgbox Text_WantToSmash, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq EventScript_CancelSmash + goto_if_eq VAR_RESULT, NO, EventScript_CancelSmash msgbox Text_MonUsedFieldMove, MSGBOX_DEFAULT closemessage dofieldeffect FLDEFF_USE_ROCK_SMASH @@ -92,11 +88,9 @@ EventScript_SmashRock:: waitmovement 0 removeobject VAR_LAST_TALKED specialvar VAR_RESULT, TryUpdateRusturfTunnelState - compare VAR_RESULT, TRUE - goto_if_eq EventScript_EndSmash + goto_if_eq VAR_RESULT, TRUE, EventScript_EndSmash special RockSmashWildEncounter - compare VAR_RESULT, FALSE - goto_if_eq EventScript_EndSmash + goto_if_eq VAR_RESULT, FALSE, EventScript_EndSmash waitstate releaseall end @@ -132,12 +126,10 @@ EventScript_StrengthBoulder:: goto_if_unset FLAG_BADGE04_GET, EventScript_CantStrength goto_if_set FLAG_SYS_USE_STRENGTH, EventScript_CheckActivatedBoulder checkpartymove MOVE_STRENGTH - compare VAR_RESULT, PARTY_SIZE - goto_if_eq EventScript_CantStrength + goto_if_eq VAR_RESULT, PARTY_SIZE, EventScript_CantStrength setfieldeffectargument 0, VAR_RESULT msgbox Text_WantToStrength, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq EventScript_CancelStrength + goto_if_eq VAR_RESULT, NO, EventScript_CancelStrength closemessage dofieldeffect FLDEFF_USE_STRENGTH waitstate @@ -193,13 +185,11 @@ Text_StrengthActivated: EventScript_UseWaterfall:: lockall checkpartymove MOVE_WATERFALL - compare VAR_RESULT, PARTY_SIZE - goto_if_eq EventScript_CantWaterfall - bufferpartymonnick 0, VAR_RESULT + goto_if_eq VAR_RESULT, PARTY_SIZE, EventScript_CantWaterfall + bufferpartymonnick STR_VAR_1, VAR_RESULT setfieldeffectargument 0, VAR_RESULT msgbox Text_WantToWaterfall, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq EventScript_EndWaterfall + goto_if_eq VAR_RESULT, NO, EventScript_EndWaterfall msgbox Text_MonUsedWaterfall, MSGBOX_DEFAULT dofieldeffect FLDEFF_USE_WATERFALL goto EventScript_EndWaterfall @@ -228,14 +218,12 @@ Text_MonUsedWaterfall: EventScript_UseDive:: lockall checkpartymove MOVE_DIVE - compare VAR_RESULT, PARTY_SIZE - goto_if_eq EventScript_CantDive - bufferpartymonnick 0, VAR_RESULT + goto_if_eq VAR_RESULT, PARTY_SIZE, EventScript_CantDive + bufferpartymonnick STR_VAR_1, VAR_RESULT setfieldeffectargument 0, VAR_RESULT setfieldeffectargument 1, 1 msgbox Text_WantToDive, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq EventScript_EndDive + goto_if_eq VAR_RESULT, NO, EventScript_EndDive msgbox Text_MonUsedDive, MSGBOX_DEFAULT dofieldeffect FLDEFF_USE_DIVE goto EventScript_EndDive @@ -253,14 +241,12 @@ EventScript_EndDive:: EventScript_UseDiveUnderwater:: lockall checkpartymove MOVE_DIVE - compare VAR_RESULT, PARTY_SIZE - goto_if_eq EventScript_CantSurface - bufferpartymonnick 0, VAR_RESULT + goto_if_eq VAR_RESULT, PARTY_SIZE, EventScript_CantSurface + bufferpartymonnick STR_VAR_1, VAR_RESULT setfieldeffectargument 0, VAR_RESULT setfieldeffectargument 1, 1 msgbox Text_WantToSurface, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq EventScript_EndSurface + goto_if_eq VAR_RESULT, NO, EventScript_EndSurface msgbox Text_MonUsedDive, MSGBOX_DEFAULT dofieldeffect FLDEFF_USE_DIVE goto EventScript_EndSurface diff --git a/data/scripts/field_poison.inc b/data/scripts/field_poison.inc index a4f9b90b6b..ddda34ebaa 100644 --- a/data/scripts/field_poison.inc +++ b/data/scripts/field_poison.inc @@ -2,10 +2,8 @@ EventScript_FieldPoison:: lockall special TryFieldPoisonWhiteOut waitstate - compare VAR_RESULT, FLDPSN_WHITEOUT - goto_if_eq EventScript_FieldWhiteOut - compare VAR_RESULT, FLDPSN_FRONTIER_WHITEOUT - goto_if_eq EventScript_FrontierFieldWhiteOut + goto_if_eq VAR_RESULT, FLDPSN_WHITEOUT, EventScript_FieldWhiteOut + goto_if_eq VAR_RESULT, FLDPSN_FRONTIER_WHITEOUT, EventScript_FrontierFieldWhiteOut releaseall end @@ -30,16 +28,12 @@ EventScript_FrontierFieldWhiteOut:: waitmessage waitbuttonpress pike_inchallenge - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattlePike_EventScript_Retire + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattlePike_EventScript_Retire pyramid_inchallenge - compare VAR_RESULT, 1 @ On Pyramid floor - goto_if_eq BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost - compare VAR_RESULT, 2 @ On Pyramid peak - goto_if_eq BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost + goto_if_eq VAR_RESULT, 1, BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost @ On Pyramid floor + goto_if_eq VAR_RESULT, 2, BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost @ On Pyramid peak trainerhill_inchallenge - compare VAR_RESULT, TRUE - goto_if_eq TrainerHill_1F_EventScript_Lost + goto_if_eq VAR_RESULT, TRUE, TrainerHill_1F_EventScript_Lost special Script_FadeOutMapMusic waitstate fadescreen FADE_TO_BLACK diff --git a/data/scripts/flash.inc b/data/scripts/flash.inc index a69975a165..dbfec2314d 100644 --- a/data/scripts/flash.inc +++ b/data/scripts/flash.inc @@ -1,4 +1,4 @@ EventScript_UseFlash:: animateflash 1 - setflashradius 1 + setflashlevel 1 end diff --git a/data/scripts/gabby_and_ty.inc b/data/scripts/gabby_and_ty.inc index 68be27a028..e3dbdfd665 100644 --- a/data/scripts/gabby_and_ty.inc +++ b/data/scripts/gabby_and_ty.inc @@ -199,12 +199,9 @@ GabbyAndTy_EventScript_TyBattle6:: GabbyAndTy_EventScript_FirstInterview:: special GabbyAndTyBeforeInterview special GetGabbyAndTyLocalIds - compare VAR_FACING, DIR_NORTH - call_if_eq GabbyAndTy_EventScript_FacePlayerNorth - compare VAR_FACING, DIR_SOUTH - call_if_eq GabbyAndTy_EventScript_FacePlayerSouth - compare VAR_FACING, DIR_EAST - call_if_eq GabbyAndTy_EventScript_FacePlayerEast + call_if_eq VAR_FACING, DIR_NORTH, GabbyAndTy_EventScript_FacePlayerNorth + call_if_eq VAR_FACING, DIR_SOUTH, GabbyAndTy_EventScript_FacePlayerSouth + call_if_eq VAR_FACING, DIR_EAST, GabbyAndTy_EventScript_FacePlayerEast goto_if_set FLAG_TEMP_1, GabbyAndTy_EventScript_KeepingAnEyeOutForYou msgbox GabbyAndTy_Text_WhoAreYouInterview, MSGBOX_YESNO goto GabbyAndTy_EventScript_Interview @@ -230,16 +227,12 @@ GabbyAndTy_EventScript_FacePlayerEast:: GabbyAndTy_EventScript_RequestInterview:: special GabbyAndTyBeforeInterview special GetGabbyAndTyLocalIds - compare VAR_FACING, DIR_NORTH - call_if_eq GabbyAndTy_EventScript_FacePlayerNorth - compare VAR_FACING, DIR_SOUTH - call_if_eq GabbyAndTy_EventScript_FacePlayerSouth - compare VAR_FACING, DIR_EAST - call_if_eq GabbyAndTy_EventScript_FacePlayerEast + call_if_eq VAR_FACING, DIR_NORTH, GabbyAndTy_EventScript_FacePlayerNorth + call_if_eq VAR_FACING, DIR_SOUTH, GabbyAndTy_EventScript_FacePlayerSouth + call_if_eq VAR_FACING, DIR_EAST, GabbyAndTy_EventScript_FacePlayerEast goto_if_set FLAG_TEMP_1, GabbyAndTy_EventScript_KeepingAnEyeOutForYou specialvar VAR_RESULT, GabbyAndTyGetLastQuote - compare VAR_RESULT, 0 - goto_if_eq GabbyAndTy_EventScript_DidntInterviewLastTime + goto_if_eq VAR_RESULT, 0, GabbyAndTy_EventScript_DidntInterviewLastTime msgbox GabbyAndTy_Text_QuoteFromLastInterview, MSGBOX_DEFAULT specialvar VAR_RESULT, GabbyAndTyGetLastBattleTrivia switch VAR_RESULT @@ -293,15 +286,13 @@ GabbyAndTy_EventScript_RequestInterviewLostAMon:: end GabbyAndTy_EventScript_Interview:: - compare VAR_RESULT, NO - goto_if_eq GabbyAndTy_EventScript_DontGiveUpKeepingEyeOut + goto_if_eq VAR_RESULT, NO, GabbyAndTy_EventScript_DontGiveUpKeepingEyeOut msgbox GabbyAndTy_Text_DescribeYourFeelings, MSGBOX_DEFAULT setvar VAR_0x8004, EASY_CHAT_TYPE_GABBY_AND_TY call Common_ShowEasyChatScreen lock faceplayer - compare VAR_RESULT, 0 - goto_if_eq GabbyAndTy_EventScript_DontGiveUpKeepingEyeOut + goto_if_eq VAR_RESULT, 0, GabbyAndTy_EventScript_DontGiveUpKeepingEyeOut msgbox GabbyAndTy_Text_PerfectWellBeSeeingYou, MSGBOX_DEFAULT special GabbyAndTyAfterInterview setflag FLAG_TEMP_1 diff --git a/data/scripts/gift_altering_cave.inc b/data/scripts/gift_altering_cave.inc index 8761b5fa40..65ff87068a 100644 --- a/data/scripts/gift_altering_cave.inc +++ b/data/scripts/gift_altering_cave.inc @@ -1,8 +1,7 @@ MysteryGiftScript_AlteringCave:: setvaddress MysteryGiftScript_AlteringCave addvar VAR_ALTERING_CAVE_WILD_SET, 1 - compare VAR_ALTERING_CAVE_WILD_SET, 10 - vgoto_if_ne MysteryGiftScript_AlteringCave_ + vgoto_if_ne VAR_ALTERING_CAVE_WILD_SET, (NUM_ALTERING_CAVE_TABLES + 1), MysteryGiftScript_AlteringCave_ setvar VAR_ALTERING_CAVE_WILD_SET, 0 MysteryGiftScript_AlteringCave_: lock diff --git a/data/scripts/gift_aurora_ticket.inc b/data/scripts/gift_aurora_ticket.inc index c9250b9f93..0cadf804a7 100644 --- a/data/scripts/gift_aurora_ticket.inc +++ b/data/scripts/gift_aurora_ticket.inc @@ -4,15 +4,13 @@ MysteryGiftScript_AuroraTicket:: faceplayer vgoto_if_set FLAG_RECEIVED_AURORA_TICKET, AuroraTicket_Obtained vgoto_if_set FLAG_BATTLED_DEOXYS, AuroraTicket_Obtained - checkitem ITEM_AURORA_TICKET, 1 - compare VAR_RESULT, TRUE - vgoto_if_eq AuroraTicket_Obtained + checkitem ITEM_AURORA_TICKET + vgoto_if_eq VAR_RESULT, TRUE, AuroraTicket_Obtained vmessage sText_AuroraTicketForYou waitmessage waitbuttonpress - checkitemspace ITEM_AURORA_TICKET, 1 - compare VAR_RESULT, FALSE - vgoto_if_eq AuroraTicket_NoBagSpace + checkitemspace ITEM_AURORA_TICKET + vgoto_if_eq VAR_RESULT, FALSE, AuroraTicket_NoBagSpace giveitem ITEM_AURORA_TICKET setflag FLAG_ENABLE_SHIP_BIRTH_ISLAND setflag FLAG_RECEIVED_AURORA_TICKET diff --git a/data/scripts/gift_battle_card.inc b/data/scripts/gift_battle_card.inc index 80b4ba26eb..95e55e1b95 100644 --- a/data/scripts/gift_battle_card.inc +++ b/data/scripts/gift_battle_card.inc @@ -3,8 +3,7 @@ MysteryGiftScript_BattleCard:: vgoto_if_set FLAG_MYSTERY_GIFT_DONE, MysteryGiftScript_BattleCardInfo setorcopyvar VAR_RESULT, GET_CARD_BATTLES_WON specialvar VAR_0x8008, GetMysteryGiftCardStat - compare VAR_0x8008, REQUIRED_CARD_BATTLES - vgoto_if_ne MysteryGiftScript_BattleCardInfo + vgoto_if_ne VAR_0x8008, REQUIRED_CARD_BATTLES, MysteryGiftScript_BattleCardInfo lock faceplayer vmessage sText_MysteryGiftBattleCountCard_WonPrize diff --git a/data/scripts/gift_mystic_ticket.inc b/data/scripts/gift_mystic_ticket.inc index 29c325f72d..3ed8aa6bcf 100644 --- a/data/scripts/gift_mystic_ticket.inc +++ b/data/scripts/gift_mystic_ticket.inc @@ -5,15 +5,13 @@ MysteryGiftScript_MysticTicket:: vgoto_if_set FLAG_RECEIVED_MYSTIC_TICKET, MysticTicket_Obtained vgoto_if_set FLAG_CAUGHT_LUGIA, MysticTicket_Obtained vgoto_if_set FLAG_CAUGHT_HO_OH, MysticTicket_Obtained - checkitem ITEM_MYSTIC_TICKET, 1 - compare VAR_RESULT, TRUE - vgoto_if_eq MysticTicket_Obtained + checkitem ITEM_MYSTIC_TICKET + vgoto_if_eq VAR_RESULT, TRUE, MysticTicket_Obtained vmessage sText_MysticTicketForYou waitmessage waitbuttonpress - checkitemspace ITEM_MYSTIC_TICKET, 1 - compare VAR_RESULT, FALSE - vgoto_if_eq MysticTicket_NoBagSpace + checkitemspace ITEM_MYSTIC_TICKET + vgoto_if_eq VAR_RESULT, FALSE, MysticTicket_NoBagSpace giveitem ITEM_MYSTIC_TICKET setflag FLAG_ENABLE_SHIP_NAVEL_ROCK setflag FLAG_RECEIVED_MYSTIC_TICKET diff --git a/data/scripts/gift_old_sea_map.inc b/data/scripts/gift_old_sea_map.inc index 5e47a10df1..06435492e4 100644 --- a/data/scripts/gift_old_sea_map.inc +++ b/data/scripts/gift_old_sea_map.inc @@ -4,15 +4,13 @@ MysteryGiftScript_OldSeaMap:: faceplayer vgoto_if_set FLAG_RECEIVED_OLD_SEA_MAP, OldSeaMap_Obtained vgoto_if_set FLAG_CAUGHT_MEW, OldSeaMap_Obtained - checkitem ITEM_OLD_SEA_MAP, 1 - compare VAR_RESULT, TRUE - vgoto_if_eq OldSeaMap_Obtained + checkitem ITEM_OLD_SEA_MAP + vgoto_if_eq VAR_RESULT, TRUE, OldSeaMap_Obtained vmessage sText_MysteryGiftOldSeaMapForYou waitmessage waitbuttonpress - checkitemspace ITEM_OLD_SEA_MAP, 1 - compare VAR_RESULT, FALSE - vgoto_if_eq OldSeaMap_NoBagSpace + checkitemspace ITEM_OLD_SEA_MAP + vgoto_if_eq VAR_RESULT, FALSE, OldSeaMap_NoBagSpace giveitem ITEM_OLD_SEA_MAP setflag FLAG_ENABLE_SHIP_FARAWAY_ISLAND setflag FLAG_RECEIVED_OLD_SEA_MAP diff --git a/data/scripts/gift_pichu.inc b/data/scripts/gift_pichu.inc index e62fc4536e..d2cd381b53 100644 --- a/data/scripts/gift_pichu.inc +++ b/data/scripts/gift_pichu.inc @@ -5,8 +5,7 @@ MysteryGiftScript_SurfPichu:: SurfPichu_GiveIfPossible: specialvar VAR_GIFT_PICHU_SLOT, CalculatePlayerPartyCount - compare VAR_GIFT_PICHU_SLOT, PARTY_SIZE - vgoto_if_eq SurfPichu_FullParty + vgoto_if_eq VAR_GIFT_PICHU_SLOT, PARTY_SIZE, SurfPichu_FullParty setflag FLAG_MYSTERY_GIFT_DONE vcall SurfPichu_GiveEgg lock @@ -32,16 +31,11 @@ SurfPichu_GiveEgg: giveegg SPECIES_PICHU setmoneventlegal VAR_GIFT_PICHU_SLOT setmonmetlocation VAR_GIFT_PICHU_SLOT, METLOC_FATEFUL_ENCOUNTER - compare VAR_GIFT_PICHU_SLOT, 1 - vgoto_if_eq SurfPichu_Slot1 - compare VAR_GIFT_PICHU_SLOT, 2 - vgoto_if_eq SurfPichu_Slot2 - compare VAR_GIFT_PICHU_SLOT, 3 - vgoto_if_eq SurfPichu_Slot3 - compare VAR_GIFT_PICHU_SLOT, 4 - vgoto_if_eq SurfPichu_Slot4 - compare VAR_GIFT_PICHU_SLOT, 5 - vgoto_if_eq SurfPichu_Slot5 + vgoto_if_eq VAR_GIFT_PICHU_SLOT, 1, SurfPichu_Slot1 + vgoto_if_eq VAR_GIFT_PICHU_SLOT, 2, SurfPichu_Slot2 + vgoto_if_eq VAR_GIFT_PICHU_SLOT, 3, SurfPichu_Slot3 + vgoto_if_eq VAR_GIFT_PICHU_SLOT, 4, SurfPichu_Slot4 + vgoto_if_eq VAR_GIFT_PICHU_SLOT, 5, SurfPichu_Slot5 return SurfPichu_Slot1: diff --git a/data/scripts/gift_stamp_card.inc b/data/scripts/gift_stamp_card.inc index f6e1eb7c7c..4ac399bec5 100644 --- a/data/scripts/gift_stamp_card.inc +++ b/data/scripts/gift_stamp_card.inc @@ -5,7 +5,7 @@ MysteryGiftScript_StampCard:: setorcopyvar VAR_RESULT, GET_NUM_STAMPS specialvar VAR_0x8009, GetMysteryGiftCardStat subvar VAR_0x8008, VAR_0x8009 - buffernumberstring 0, VAR_0x8008 + buffernumberstring STR_VAR_1, VAR_0x8008 lock faceplayer vmessage sText_MysteryGiftStampCard diff --git a/data/scripts/gift_trainer.inc b/data/scripts/gift_trainer.inc index 2dbc86d53e..b927809058 100644 --- a/data/scripts/gift_trainer.inc +++ b/data/scripts/gift_trainer.inc @@ -1,8 +1,7 @@ MysteryGiftScript_VisitingTrainer:: setvaddress MysteryGiftScript_VisitingTrainer special ValidateEReaderTrainer - compare VAR_RESULT, 0 - vgoto_if_eq MysteryGiftScript_VisitingTrainerArrived + vgoto_if_eq VAR_RESULT, 0, MysteryGiftScript_VisitingTrainerArrived lock faceplayer vmessage sText_MysteryGiftVisitingTrainerInstructions diff --git a/data/scripts/hall_of_fame.inc b/data/scripts/hall_of_fame.inc index 9b730de317..fc082870f7 100644 --- a/data/scripts/hall_of_fame.inc +++ b/data/scripts/hall_of_fame.inc @@ -2,8 +2,7 @@ EverGrandeCity_HallOfFame_EventScript_SetGameClearFlags:: special SetChampionSaveWarp setflag FLAG_IS_CHAMPION call EverGrandeCity_HallOfFame_EventScript_ResetDefeatedEventLegendaries - compare VAR_FOSSIL_MANIAC_STATE, 0 - call_if_eq EverGrandeCity_HallOfFame_EventScript_SetDesertUnderpassCommentReady + call_if_eq VAR_FOSSIL_MANIAC_STATE, 0, EverGrandeCity_HallOfFame_EventScript_SetDesertUnderpassCommentReady clearflag FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS call EverGrandeCity_HallOfFame_EventScript_ResetEliteFour setflag FLAG_HIDE_SLATEPORT_CITY_STERNS_SHIPYARD_MR_BRINEY @@ -22,8 +21,7 @@ EverGrandeCity_HallOfFame_EventScript_SetGameClearFlags:: call_if_unset FLAG_RECEIVED_BELDUM, EverGrandeCity_HallOfFame_EventScript_ShowStevensHouseBeldum setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_BEDROOM setflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_BEDROOM - compare VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 0 - call_if_eq EverGrandeCity_HallOfFame_EventScript_ReadyDexUpgradeEvent + call_if_eq VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 0, EverGrandeCity_HallOfFame_EventScript_ReadyDexUpgradeEvent return EverGrandeCity_HallOfFame_EventScript_ResetDefeatedEventLegendaries:: diff --git a/data/scripts/interview.inc b/data/scripts/interview.inc index 90fceb9d18..e102bf889c 100644 --- a/data/scripts/interview.inc +++ b/data/scripts/interview.inc @@ -8,14 +8,11 @@ Interview_EventScript_EndInterview:: SlateportCity_PokemonFanClub_EventScript_ReporterNoNickname:: setvar VAR_0x8005, TVSHOW_FAN_CLUB_LETTER special InterviewBefore - compare VAR_RESULT, TRUE - goto_if_eq SlateportCity_PokemonFanClub_EventScript_AlreadyInterviewed2 + goto_if_eq VAR_RESULT, TRUE, SlateportCity_PokemonFanClub_EventScript_AlreadyInterviewed2 copyvar VAR_0x8009, VAR_0x8006 msgbox SlateportCity_PokemonFanClub_Text_InterviewRequest, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq SlateportCity_PokemonFanClub_EventScript_AcceptInterview2 - compare VAR_RESULT, NO - goto_if_eq SlateportCity_PokemonFanClub_EventScript_DeclineInterview2 + goto_if_eq VAR_RESULT, YES, SlateportCity_PokemonFanClub_EventScript_AcceptInterview2 + goto_if_eq VAR_RESULT, NO, SlateportCity_PokemonFanClub_EventScript_DeclineInterview2 end SlateportCity_PokemonFanClub_EventScript_AcceptInterview2:: @@ -26,10 +23,8 @@ SlateportCity_PokemonFanClub_EventScript_AcceptInterview2:: call Common_ShowEasyChatScreen lock faceplayer - compare VAR_RESULT, 1 - goto_if_eq SlateportCity_PokemonFanClub_EventScript_SubmitResponse2 - compare VAR_RESULT, 0 - goto_if_eq SlateportCity_PokemonFanClub_EventScript_DeclineInterview2 + goto_if_eq VAR_RESULT, 1, SlateportCity_PokemonFanClub_EventScript_SubmitResponse2 + goto_if_eq VAR_RESULT, 0, SlateportCity_PokemonFanClub_EventScript_DeclineInterview2 end SlateportCity_PokemonFanClub_EventScript_DeclineInterview2:: @@ -53,24 +48,19 @@ SlateportCity_OceanicMuseum_1F_EventScript_Reporter:: faceplayer setvar VAR_0x8005, TVSHOW_RECENT_HAPPENINGS special InterviewBefore - compare VAR_RESULT, TRUE - goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_AlreadyInterviewed + goto_if_eq VAR_RESULT, TRUE, SlateportCity_OceanicMuseum_1F_EventScript_AlreadyInterviewed copyvar VAR_0x8009, VAR_0x8006 goto_if_set FLAG_OCEANIC_MUSEUM_MET_REPORTER, SlateportCity_OceanicMuseum_1F_EventScript_RequestInterviewShort setflag FLAG_OCEANIC_MUSEUM_MET_REPORTER msgbox SlateportCity_OceanicMuseum_1F_Text_InterviewRequest, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_AcceptInterview - compare VAR_RESULT, NO - goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_DeclineInterview + goto_if_eq VAR_RESULT, YES, SlateportCity_OceanicMuseum_1F_EventScript_AcceptInterview + goto_if_eq VAR_RESULT, NO, SlateportCity_OceanicMuseum_1F_EventScript_DeclineInterview end SlateportCity_OceanicMuseum_1F_EventScript_RequestInterviewShort:: msgbox SlateportCity_OceanicMuseum_1F_Text_InterviewRequestShort, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_AcceptInterview - compare VAR_RESULT, NO - goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_DeclineInterview + goto_if_eq VAR_RESULT, YES, SlateportCity_OceanicMuseum_1F_EventScript_AcceptInterview + goto_if_eq VAR_RESULT, NO, SlateportCity_OceanicMuseum_1F_EventScript_DeclineInterview end SlateportCity_OceanicMuseum_1F_EventScript_AcceptInterview:: @@ -81,10 +71,8 @@ SlateportCity_OceanicMuseum_1F_EventScript_AcceptInterview:: call Common_ShowEasyChatScreen lock faceplayer - compare VAR_RESULT, 1 - goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_SubmitResponse - compare VAR_RESULT, 0 - goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_DeclineInterview + goto_if_eq VAR_RESULT, 1, SlateportCity_OceanicMuseum_1F_EventScript_SubmitResponse + goto_if_eq VAR_RESULT, 0, SlateportCity_OceanicMuseum_1F_EventScript_DeclineInterview end SlateportCity_OceanicMuseum_1F_EventScript_DeclineInterview:: @@ -107,18 +95,14 @@ SlateportCity_PokemonFanClub_EventScript_Reporter:: lock faceplayer specialvar VAR_RESULT, IsLeadMonNicknamedOrNotEnglish - compare VAR_RESULT, FALSE - goto_if_eq SlateportCity_PokemonFanClub_EventScript_ReporterNoNickname + goto_if_eq VAR_RESULT, FALSE, SlateportCity_PokemonFanClub_EventScript_ReporterNoNickname setvar VAR_0x8005, TVSHOW_PKMN_FAN_CLUB_OPINIONS special InterviewBefore - compare VAR_RESULT, TRUE - goto_if_eq SlateportCity_PokemonFanClub_EventScript_AlreadyInterviewed + goto_if_eq VAR_RESULT, TRUE, SlateportCity_PokemonFanClub_EventScript_AlreadyInterviewed copyvar VAR_0x8009, VAR_0x8006 msgbox SlateportCity_PokemonFanClub_Text_InterviewRequestHasName, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq SlateportCity_PokemonFanClub_EventScript_AcceptInterview - compare VAR_RESULT, NO - goto_if_eq SlateportCity_PokemonFanClub_EventScript_DeclineInterview + goto_if_eq VAR_RESULT, YES, SlateportCity_PokemonFanClub_EventScript_AcceptInterview + goto_if_eq VAR_RESULT, NO, SlateportCity_PokemonFanClub_EventScript_DeclineInterview end SlateportCity_PokemonFanClub_EventScript_AcceptInterview:: @@ -153,15 +137,13 @@ SlateportCity_PokemonFanClub_EventScript_ContinueInterview:: call Common_ShowEasyChatScreen lock faceplayer - compare VAR_RESULT, 0 - goto_if_eq SlateportCity_PokemonFanClub_EventScript_DeclineInterview + goto_if_eq VAR_RESULT, 0, SlateportCity_PokemonFanClub_EventScript_DeclineInterview msgbox SlateportCity_PokemonFanClub_Text_WhatDoPokemonMeanToYou, MSGBOX_DEFAULT setvar VAR_0x8006, 1 call Common_ShowEasyChatScreen lock faceplayer - compare VAR_RESULT, 0 - goto_if_eq SlateportCity_PokemonFanClub_EventScript_DeclineInterview + goto_if_eq VAR_RESULT, 0, SlateportCity_PokemonFanClub_EventScript_DeclineInterview msgbox SlateportCity_PokemonFanClub_Text_ThatsAllForInterview, MSGBOX_DEFAULT copyvar VAR_0x8007, VAR_0x800A setvar VAR_0x8005, TVSHOW_PKMN_FAN_CLUB_OPINIONS @@ -184,14 +166,11 @@ LilycoveCity_ContestLobby_EventScript_Reporter:: goto_if_set FLAG_TEMP_2, LilycoveCity_ContestLobby_EventScript_AlreadyInterviewed setvar VAR_0x8005, TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE special InterviewBefore - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_ContestLobby_EventScript_AlreadyInterviewed + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_ContestLobby_EventScript_AlreadyInterviewed copyvar VAR_0x8009, VAR_0x8006 msgbox LilycoveCity_ContestLobby_Text_InterviewRequest, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq LilycoveCity_ContestLobby_EventScript_AcceptInterview - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_ContestLobby_EventScript_DeclineInterview + goto_if_eq VAR_RESULT, YES, LilycoveCity_ContestLobby_EventScript_AcceptInterview + goto_if_eq VAR_RESULT, NO, LilycoveCity_ContestLobby_EventScript_DeclineInterview end LilycoveCity_ContestLobby_EventScript_AcceptInterview:: @@ -202,10 +181,8 @@ LilycoveCity_ContestLobby_EventScript_AcceptInterview:: call Common_ShowEasyChatScreen lock faceplayer - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_ContestLobby_EventScript_SubmitResponse - compare VAR_RESULT, 0 - goto_if_eq LilycoveCity_ContestLobby_EventScript_DeclineInterview + goto_if_eq VAR_RESULT, 1, LilycoveCity_ContestLobby_EventScript_SubmitResponse + goto_if_eq VAR_RESULT, 0, LilycoveCity_ContestLobby_EventScript_DeclineInterview end LilycoveCity_ContestLobby_EventScript_DeclineInterview:: @@ -223,8 +200,7 @@ LilycoveCity_ContestLobby_EventScript_SubmitResponse:: call Common_ShowEasyChatScreen lock faceplayer - compare VAR_RESULT, 0 - goto_if_eq LilycoveCity_ContestLobby_EventScript_DeclineInterview + goto_if_eq VAR_RESULT, 0, LilycoveCity_ContestLobby_EventScript_DeclineInterview msgbox LilycoveCity_ContestLobby_Text_ThatsAllForInterview, MSGBOX_DEFAULT setflag FLAG_TEMP_2 setvar VAR_0x8005, TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE @@ -237,12 +213,10 @@ LilycoveCity_ContestLobby_EventScript_AlreadyInterviewed:: end LilycoveCity_ContestLobby_EventScript_TryShowContestReporter:: - compare VAR_CONTEST_HALL_STATE, 2 - goto_if_ne LilycoveCity_ContestLobby_EventScript_DontShowContestReporter + goto_if_ne VAR_CONTEST_HALL_STATE, 2, LilycoveCity_ContestLobby_EventScript_DontShowContestReporter setvar VAR_0x8005, TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE special InterviewBefore - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_ContestLobby_EventScript_DontShowContestReporter + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_ContestLobby_EventScript_DontShowContestReporter switch VAR_CONTEST_TYPE case 0, LilycoveCity_ContestLobby_EventScript_DontShowContestReporter case 2, LilycoveCity_ContestLobby_EventScript_ShowContestReporter @@ -265,14 +239,11 @@ BattleFrontier_BattleTowerLobby_EventScript_Reporter:: goto_if_set FLAG_TEMP_2, BattleFrontier_BattleTowerLobby_EventScript_AlreadyInterviewed setvar VAR_0x8005, TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE special InterviewBefore - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_AlreadyInterviewed + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleTowerLobby_EventScript_AlreadyInterviewed copyvar VAR_0x8009, VAR_0x8006 msgbox BattleFrontier_BattleTowerLobby_Text_InterviewRequest, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_AcceptInterview - compare VAR_RESULT, NO - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_DeclineInterview + goto_if_eq VAR_RESULT, YES, BattleFrontier_BattleTowerLobby_EventScript_AcceptInterview + goto_if_eq VAR_RESULT, NO, BattleFrontier_BattleTowerLobby_EventScript_DeclineInterview end BattleFrontier_BattleTowerLobby_EventScript_AcceptInterview:: @@ -280,20 +251,16 @@ BattleFrontier_BattleTowerLobby_EventScript_AcceptInterview:: waitmessage multichoice 20, 8, MULTI_SATISFACTION, TRUE copyvar VAR_0x8008, VAR_RESULT - compare VAR_RESULT, 0 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_Satisfied - compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattleTowerLobby_EventScript_Dissatisfied + call_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_Satisfied + call_if_eq VAR_RESULT, 1, BattleFrontier_BattleTowerLobby_EventScript_Dissatisfied msgbox BattleFrontier_BattleTowerLobby_Text_DescribeYourBattle, MSGBOX_DEFAULT setvar VAR_0x8004, EASY_CHAT_TYPE_BATTLE_TOWER_INTERVIEW copyvar VAR_0x8005, VAR_0x8009 call Common_ShowEasyChatScreen lock faceplayer - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_SubmitResponse - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_CancelInterview + goto_if_eq VAR_RESULT, 1, BattleFrontier_BattleTowerLobby_EventScript_SubmitResponse + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_CancelInterview end BattleFrontier_BattleTowerLobby_EventScript_DeclineInterview:: @@ -310,8 +277,7 @@ BattleFrontier_BattleTowerLobby_EventScript_Dissatisfied:: return BattleFrontier_BattleTowerLobby_EventScript_SubmitResponse:: - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_CancelInterview + goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_CancelInterview msgbox BattleFrontier_BattleTowerLobby_Text_ThatsGreatLine, MSGBOX_DEFAULT setflag FLAG_TEMP_2 copyvar VAR_0x8004, VAR_0x8008 @@ -330,12 +296,10 @@ BattleFrontier_BattleTowerLobby_EventScript_AlreadyInterviewed:: end BattleFrontier_BattleTowerLobby_EventScript_ShowOrHideReporter:: - compare VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, 0 - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_HideReporter + goto_if_eq VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, 0, BattleFrontier_BattleTowerLobby_EventScript_HideReporter setvar VAR_0x8005, TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE special InterviewBefore - compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_HideReporter + goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleTowerLobby_EventScript_HideReporter clearflag FLAG_HIDE_BATTLE_TOWER_REPORTER return @@ -347,8 +311,7 @@ BattleFrontier_BattleTowerLobby_EventScript_HideReporter:: EventScript_ContestLiveInterview:: setvar VAR_0x8005, TVSHOW_CONTEST_LIVE_UPDATES special InterviewBefore - compare VAR_RESULT, TRUE - goto_if_eq EventScript_ContestLiveInterviewEnd + goto_if_eq VAR_RESULT, TRUE, EventScript_ContestLiveInterviewEnd setvar VAR_0x8005, TVSHOW_CONTEST_LIVE_UPDATES special InterviewAfter return diff --git a/data/scripts/kecleon.inc b/data/scripts/kecleon.inc index 82eca777d5..6345519026 100644 --- a/data/scripts/kecleon.inc +++ b/data/scripts/kecleon.inc @@ -48,17 +48,15 @@ Route119_EventScript_Kecleon2:: end EventScript_Kecleon:: - checkitem ITEM_DEVON_SCOPE, 1 - compare VAR_RESULT, 1 - goto_if_eq EventScript_AskUseDevonScope + checkitem ITEM_DEVON_SCOPE + goto_if_eq VAR_RESULT, TRUE, EventScript_AskUseDevonScope msgbox Kecleon_Text_SomethingUnseeable, MSGBOX_DEFAULT release end EventScript_AskUseDevonScope:: msgbox Kecleon_Text_WantToUseDevonScope, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq EventScript_BattleKecleon + goto_if_eq VAR_RESULT, YES, EventScript_BattleKecleon release end @@ -73,17 +71,14 @@ EventScript_BattleKecleon:: playmoncry SPECIES_KECLEON, CRY_MODE_ENCOUNTER delay 40 waitmoncry - setwildbattle SPECIES_KECLEON, 30, ITEM_NONE + setwildbattle SPECIES_KECLEON, 30 setflag FLAG_SYS_CTRL_OBJ_DELETE dowildbattle clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, GetBattleOutcome - compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq EventScript_RemoveKecleon - compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq EventScript_RemoveKecleon - compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq EventScript_RemoveKecleon + goto_if_eq VAR_RESULT, B_OUTCOME_WON, EventScript_RemoveKecleon + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, EventScript_RemoveKecleon + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, EventScript_RemoveKecleon release end diff --git a/data/scripts/lilycove_lady.inc b/data/scripts/lilycove_lady.inc index 576fa28ade..5519de9791 100644 --- a/data/scripts/lilycove_lady.inc +++ b/data/scripts/lilycove_lady.inc @@ -2,858 +2,789 @@ .set LOCALID_LADYS_MON, 5 LilycoveCity_PokemonCenter_1F_EventScript_LilycoveLady:: - special Script_GetLilycoveLadyId - switch VAR_RESULT - case LILYCOVE_LADY_QUIZ, LilycoveCity_PokemonCenter_1F_EventScript_QuizLady - case LILYCOVE_LADY_FAVOR, LilycoveCity_PokemonCenter_1F_EventScript_FavorLady - case LILYCOVE_LADY_CONTEST, LilycoveCity_PokemonCenter_1F_EventScript_ContestLady - end + special Script_GetLilycoveLadyId + switch VAR_RESULT + case LILYCOVE_LADY_QUIZ, LilycoveCity_PokemonCenter_1F_EventScript_QuizLady + case LILYCOVE_LADY_FAVOR, LilycoveCity_PokemonCenter_1F_EventScript_FavorLady + case LILYCOVE_LADY_CONTEST, LilycoveCity_PokemonCenter_1F_EventScript_ContestLady + end LilycoveCity_PokemonCenter_1F_EventScript_FavorLady:: - lock - faceplayer - msgbox LilycoveCity_PokemonCenter_1F_Text_ImTheFavorLady, MSGBOX_DEFAULT - specialvar VAR_RESULT, GetFavorLadyState - compare VAR_RESULT, LILYCOVE_LADY_STATE_READY - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyReady - compare VAR_RESULT, LILYCOVE_LADY_STATE_COMPLETED - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyCompleted - compare VAR_RESULT, LILYCOVE_LADY_STATE_PRIZE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyPrize - end + lock + faceplayer + msgbox LilycoveCity_PokemonCenter_1F_Text_ImTheFavorLady, MSGBOX_DEFAULT + specialvar VAR_RESULT, GetFavorLadyState + goto_if_eq VAR_RESULT, LILYCOVE_LADY_STATE_READY, LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyReady + goto_if_eq VAR_RESULT, LILYCOVE_LADY_STATE_COMPLETED, LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyCompleted + goto_if_eq VAR_RESULT, LILYCOVE_LADY_STATE_PRIZE, LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyPrize + end LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyCompleted:: - msgbox LilycoveCity_PokemonCenter_1F_Text_ThankYouForLastTime, MSGBOX_DEFAULT - release - end + msgbox LilycoveCity_PokemonCenter_1F_Text_ThankYouForLastTime, MSGBOX_DEFAULT + release + end LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyReady:: - special BufferFavorLadyRequest - msgbox LilycoveCity_PokemonCenter_1F_Text_ObsessedWithThing, MSGBOX_DEFAULT - specialvar VAR_RESULT, HasAnotherPlayerGivenFavorLadyItem - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_RequestItem - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_TellAboutPlayersItem - end + special BufferFavorLadyRequest + msgbox LilycoveCity_PokemonCenter_1F_Text_ObsessedWithThing, MSGBOX_DEFAULT + specialvar VAR_RESULT, HasAnotherPlayerGivenFavorLadyItem + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonCenter_1F_EventScript_RequestItem + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonCenter_1F_EventScript_TellAboutPlayersItem + end LilycoveCity_PokemonCenter_1F_EventScript_TellAboutPlayersItem:: - special BufferFavorLadyItemName - special BufferFavorLadyPlayerName - specialvar VAR_RESULT, DidFavorLadyLikeItem - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_PlayerGaveBadThing - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_PlayerGaveGreatThing - end + special BufferFavorLadyItemName + special BufferFavorLadyPlayerName + specialvar VAR_RESULT, DidFavorLadyLikeItem + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonCenter_1F_EventScript_PlayerGaveBadThing + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonCenter_1F_EventScript_PlayerGaveGreatThing + end LilycoveCity_PokemonCenter_1F_EventScript_PlayerGaveBadThing:: - msgbox LilycoveCity_PokemonCenter_1F_Text_PlayerGaveMeBadThing, MSGBOX_DEFAULT - goto LilycoveCity_PokemonCenter_1F_EventScript_RequestItem - end + msgbox LilycoveCity_PokemonCenter_1F_Text_PlayerGaveMeBadThing, MSGBOX_DEFAULT + goto LilycoveCity_PokemonCenter_1F_EventScript_RequestItem + end LilycoveCity_PokemonCenter_1F_EventScript_PlayerGaveGreatThing:: - msgbox LilycoveCity_PokemonCenter_1F_Text_PlayerGaveMeGreatThing, MSGBOX_DEFAULT - goto LilycoveCity_PokemonCenter_1F_EventScript_RequestItem - end + msgbox LilycoveCity_PokemonCenter_1F_Text_PlayerGaveMeGreatThing, MSGBOX_DEFAULT + goto LilycoveCity_PokemonCenter_1F_EventScript_RequestItem + end LilycoveCity_PokemonCenter_1F_EventScript_RequestItem:: - msgbox LilycoveCity_PokemonCenter_1F_Text_WillYouShareThing, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_DeclineFavor - compare VAR_RESULT, YES - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_AcceptFavor - end + msgbox LilycoveCity_PokemonCenter_1F_Text_WillYouShareThing, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, LilycoveCity_PokemonCenter_1F_EventScript_DeclineFavor + goto_if_eq VAR_RESULT, YES, LilycoveCity_PokemonCenter_1F_EventScript_AcceptFavor + end LilycoveCity_PokemonCenter_1F_EventScript_DeclineFavor:: - msgbox LilycoveCity_PokemonCenter_1F_Text_IsThatSoGoodbye, MSGBOX_DEFAULT - release - end + msgbox LilycoveCity_PokemonCenter_1F_Text_IsThatSoGoodbye, MSGBOX_DEFAULT + release + end LilycoveCity_PokemonCenter_1F_EventScript_AcceptFavor:: - msgbox LilycoveCity_PokemonCenter_1F_Text_WhatWillYouGiveMe, MSGBOX_DEFAULT - goto LilycoveCity_PokemonCenter_1F_EventScript_ChooseFavorItem - end + msgbox LilycoveCity_PokemonCenter_1F_Text_WhatWillYouGiveMe, MSGBOX_DEFAULT + goto LilycoveCity_PokemonCenter_1F_EventScript_ChooseFavorItem + end LilycoveCity_PokemonCenter_1F_EventScript_ChooseFavorItem:: - fadescreen FADE_TO_BLACK - setvar VAR_RESULT, 0 - special Script_FavorLadyOpenBagMenu - waitstate - compare VAR_RESULT, 0 - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_AskQuitChooseFavorItem - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_GiveFavorItem - end + fadescreen FADE_TO_BLACK + setvar VAR_RESULT, 0 + special Script_FavorLadyOpenBagMenu + waitstate + goto_if_eq VAR_RESULT, 0, LilycoveCity_PokemonCenter_1F_EventScript_AskQuitChooseFavorItem + goto_if_eq VAR_RESULT, 1, LilycoveCity_PokemonCenter_1F_EventScript_GiveFavorItem + end LilycoveCity_PokemonCenter_1F_EventScript_AskQuitChooseFavorItem:: - msgbox LilycoveCity_PokemonCenter_1F_Text_NotWillingToShare, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_DeclineFavor - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_ChooseFavorItem - end + msgbox LilycoveCity_PokemonCenter_1F_Text_NotWillingToShare, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, LilycoveCity_PokemonCenter_1F_EventScript_DeclineFavor + goto_if_eq VAR_RESULT, NO, LilycoveCity_PokemonCenter_1F_EventScript_ChooseFavorItem + end LilycoveCity_PokemonCenter_1F_EventScript_GiveFavorItem:: - specialvar VAR_RESULT, Script_DoesFavorLadyLikeItem - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_DidntLikeFavorItem - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_CheckLovedItem - end + specialvar VAR_RESULT, Script_DoesFavorLadyLikeItem + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonCenter_1F_EventScript_DidntLikeFavorItem + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonCenter_1F_EventScript_CheckLovedItem + end LilycoveCity_PokemonCenter_1F_EventScript_DidntLikeFavorItem:: - special BufferFavorLadyRequest - msgbox LilycoveCity_PokemonCenter_1F_Text_IllTryToCherishIt, MSGBOX_DEFAULT - release - end + special BufferFavorLadyRequest + msgbox LilycoveCity_PokemonCenter_1F_Text_IllTryToCherishIt, MSGBOX_DEFAULT + release + end LilycoveCity_PokemonCenter_1F_EventScript_CheckLovedItem:: - specialvar VAR_RESULT, IsFavorLadyThresholdMet - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_LikedFavorItem - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_LovedFavorItem - end + specialvar VAR_RESULT, IsFavorLadyThresholdMet + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonCenter_1F_EventScript_LikedFavorItem + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonCenter_1F_EventScript_LovedFavorItem + end LilycoveCity_PokemonCenter_1F_EventScript_LikedFavorItem:: - special BufferFavorLadyRequest - msgbox LilycoveCity_PokemonCenter_1F_Text_IWillCherishThis, MSGBOX_DEFAULT - release - end + special BufferFavorLadyRequest + msgbox LilycoveCity_PokemonCenter_1F_Text_IWillCherishThis, MSGBOX_DEFAULT + release + end LilycoveCity_PokemonCenter_1F_EventScript_LovedFavorItem:: - special BufferFavorLadyRequest - msgbox LilycoveCity_PokemonCenter_1F_Text_IWillTreasureThis, MSGBOX_DEFAULT - goto LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyPrize - end + special BufferFavorLadyRequest + msgbox LilycoveCity_PokemonCenter_1F_Text_IWillTreasureThis, MSGBOX_DEFAULT + goto LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyPrize + end LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyPrize:: - setvar VAR_0x8004, 0 - specialvar VAR_0x8004, FavorLadyGetPrize - msgbox LilycoveCity_PokemonCenter_1F_Text_IllGiveYouThisInReturn, MSGBOX_DEFAULT - giveitem VAR_0x8004 - compare VAR_RESULT, 0 - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_NoRoomForFavorPrize - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_ReceivedFavorPrize - end + setvar VAR_0x8004, 0 + specialvar VAR_0x8004, FavorLadyGetPrize + msgbox LilycoveCity_PokemonCenter_1F_Text_IllGiveYouThisInReturn, MSGBOX_DEFAULT + giveitem VAR_0x8004 + goto_if_eq VAR_RESULT, 0, LilycoveCity_PokemonCenter_1F_EventScript_NoRoomForFavorPrize + goto_if_eq VAR_RESULT, 1, LilycoveCity_PokemonCenter_1F_EventScript_ReceivedFavorPrize + end LilycoveCity_PokemonCenter_1F_EventScript_NoRoomForFavorPrize:: - msgbox LilycoveCity_PokemonCenter_1F_Text_YouDontHaveSpaceForIt, MSGBOX_DEFAULT - release - end + msgbox LilycoveCity_PokemonCenter_1F_Text_YouDontHaveSpaceForIt, MSGBOX_DEFAULT + release + end LilycoveCity_PokemonCenter_1F_EventScript_ReceivedFavorPrize:: - special SetFavorLadyState_Complete - release - end + special SetFavorLadyState_Complete + release + end LilycoveCity_PokemonCenter_1F_EventScript_QuizLady:: - lock - faceplayer - msgbox LilycoveCity_PokemonCenter_1F_Text_ImTheQuizLady, MSGBOX_DEFAULT - specialvar VAR_RESULT, GetQuizLadyState - compare VAR_RESULT, LILYCOVE_LADY_STATE_READY - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_HasQuiz - compare VAR_RESULT, LILYCOVE_LADY_STATE_COMPLETED - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_CheckMadeQuiz - compare VAR_RESULT, LILYCOVE_LADY_STATE_PRIZE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_ReadyGivePrize - end + lock + faceplayer + msgbox LilycoveCity_PokemonCenter_1F_Text_ImTheQuizLady, MSGBOX_DEFAULT + specialvar VAR_RESULT, GetQuizLadyState + goto_if_eq VAR_RESULT, LILYCOVE_LADY_STATE_READY, LilycoveCity_PokemonCenter_1F_EventScript_HasQuiz + goto_if_eq VAR_RESULT, LILYCOVE_LADY_STATE_COMPLETED, LilycoveCity_PokemonCenter_1F_EventScript_CheckMadeQuiz + goto_if_eq VAR_RESULT, LILYCOVE_LADY_STATE_PRIZE, LilycoveCity_PokemonCenter_1F_EventScript_ReadyGivePrize + end LilycoveCity_PokemonCenter_1F_EventScript_HasQuiz:: - specialvar VAR_RESULT, GetQuizAuthor - compare VAR_RESULT, QUIZ_AUTHOR_PLAYER - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_WaitingToTakeYourQuiz - compare VAR_RESULT, QUIZ_AUTHOR_OTHER_PLAYER - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_PlayerQuizReady - compare VAR_RESULT, QUIZ_AUTHOR_LADY - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_LadyQuizReady - end + specialvar VAR_RESULT, GetQuizAuthor + goto_if_eq VAR_RESULT, QUIZ_AUTHOR_PLAYER, LilycoveCity_PokemonCenter_1F_EventScript_WaitingToTakeYourQuiz + goto_if_eq VAR_RESULT, QUIZ_AUTHOR_OTHER_PLAYER, LilycoveCity_PokemonCenter_1F_EventScript_PlayerQuizReady + goto_if_eq VAR_RESULT, QUIZ_AUTHOR_LADY, LilycoveCity_PokemonCenter_1F_EventScript_LadyQuizReady + end LilycoveCity_PokemonCenter_1F_EventScript_CheckMadeQuiz:: - specialvar VAR_RESULT, IsQuizLadyWaitingForChallenger - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_AskMakeQuiz - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_WaitingToTakeYourQuiz - end + specialvar VAR_RESULT, IsQuizLadyWaitingForChallenger + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonCenter_1F_EventScript_AskMakeQuiz + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonCenter_1F_EventScript_WaitingToTakeYourQuiz + end LilycoveCity_PokemonCenter_1F_EventScript_WaitingToTakeYourQuiz:: - msgbox LilycoveCity_PokemonCenter_1F_Text_WaitingToTakeYourQuiz, MSGBOX_DEFAULT - release - end + msgbox LilycoveCity_PokemonCenter_1F_Text_WaitingToTakeYourQuiz, MSGBOX_DEFAULT + release + end LilycoveCity_PokemonCenter_1F_EventScript_PlayerQuizReady:: - msgbox LilycoveCity_PokemonCenter_1F_Text_WaitingForChallenger, MSGBOX_DEFAULT - goto LilycoveCity_PokemonCenter_1F_EventScript_AskTakeQuiz - end + msgbox LilycoveCity_PokemonCenter_1F_Text_WaitingForChallenger, MSGBOX_DEFAULT + goto LilycoveCity_PokemonCenter_1F_EventScript_AskTakeQuiz + end LilycoveCity_PokemonCenter_1F_EventScript_LadyQuizReady:: - msgbox LilycoveCity_PokemonCenter_1F_Text_WaitingForChallenger, MSGBOX_DEFAULT - goto LilycoveCity_PokemonCenter_1F_EventScript_AskTakeQuiz - end + msgbox LilycoveCity_PokemonCenter_1F_Text_WaitingForChallenger, MSGBOX_DEFAULT + goto LilycoveCity_PokemonCenter_1F_EventScript_AskTakeQuiz + end LilycoveCity_PokemonCenter_1F_EventScript_AskTakeQuiz:: - setvar VAR_0x8004, 0 - msgbox LilycoveCity_PokemonCenter_1F_Text_TakeQuizChallenge, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_TakeQuiz - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_DeclineQuiz - end + setvar VAR_0x8004, 0 + msgbox LilycoveCity_PokemonCenter_1F_Text_TakeQuizChallenge, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, LilycoveCity_PokemonCenter_1F_EventScript_TakeQuiz + goto_if_eq VAR_RESULT, NO, LilycoveCity_PokemonCenter_1F_EventScript_DeclineQuiz + end LilycoveCity_PokemonCenter_1F_EventScript_DeclineQuiz:: - msgbox LilycoveCity_PokemonCenter_1F_Text_HowBoringBye, MSGBOX_DEFAULT - release - end + msgbox LilycoveCity_PokemonCenter_1F_Text_HowBoringBye, MSGBOX_DEFAULT + release + end LilycoveCity_PokemonCenter_1F_EventScript_TakeQuiz:: - special ClearQuizLadyPlayerAnswer - compare VAR_0x8004, 0 - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_ShowQuestion - compare VAR_0x8004, EASY_CHAT_TYPE_QUIZ_ANSWER - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_GetAnswer + special ClearQuizLadyPlayerAnswer + goto_if_eq VAR_0x8004, 0, LilycoveCity_PokemonCenter_1F_EventScript_ShowQuestion + goto_if_eq VAR_0x8004, EASY_CHAT_TYPE_QUIZ_ANSWER, LilycoveCity_PokemonCenter_1F_EventScript_GetAnswer LilycoveCity_PokemonCenter_1F_EventScript_CheckQuizTakingState:: - compare VAR_RESULT, 0 - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_AskQuitQuiz - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_SubmitQuizResponse - end + goto_if_eq VAR_RESULT, 0, LilycoveCity_PokemonCenter_1F_EventScript_AskQuitQuiz + goto_if_eq VAR_RESULT, 1, LilycoveCity_PokemonCenter_1F_EventScript_SubmitQuizResponse + end LilycoveCity_PokemonCenter_1F_EventScript_ShowQuestion:: - special QuizLadyShowQuizQuestion - waitstate - goto LilycoveCity_PokemonCenter_1F_EventScript_CheckQuizTakingState - end + special QuizLadyShowQuizQuestion + waitstate + goto LilycoveCity_PokemonCenter_1F_EventScript_CheckQuizTakingState + end LilycoveCity_PokemonCenter_1F_EventScript_GetAnswer:: - special QuizLadyGetPlayerAnswer - waitstate - goto LilycoveCity_PokemonCenter_1F_EventScript_CheckQuizTakingState - end + special QuizLadyGetPlayerAnswer + waitstate + goto LilycoveCity_PokemonCenter_1F_EventScript_CheckQuizTakingState + end LilycoveCity_PokemonCenter_1F_EventScript_AskQuitQuiz:: - msgbox LilycoveCity_PokemonCenter_1F_Text_YoureGoingToQuit, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_QuitTakingQuiz - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_TakeQuiz - end + msgbox LilycoveCity_PokemonCenter_1F_Text_YoureGoingToQuit, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, LilycoveCity_PokemonCenter_1F_EventScript_QuitTakingQuiz + goto_if_eq VAR_RESULT, NO, LilycoveCity_PokemonCenter_1F_EventScript_TakeQuiz + end LilycoveCity_PokemonCenter_1F_EventScript_QuitTakingQuiz:: - msgbox LilycoveCity_PokemonCenter_1F_Text_TakeTheQuizAnotherTime, MSGBOX_DEFAULT - release - end + msgbox LilycoveCity_PokemonCenter_1F_Text_TakeTheQuizAnotherTime, MSGBOX_DEFAULT + release + end LilycoveCity_PokemonCenter_1F_EventScript_SubmitQuizResponse:: - special SetQuizLadyState_Complete - msgbox LilycoveCity_PokemonCenter_1F_Text_WaitForAnswer, MSGBOX_DEFAULT - specialvar VAR_RESULT, IsQuizAnswerCorrect - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_IncorrectResponse - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_CorrectResponse - end + special SetQuizLadyState_Complete + msgbox LilycoveCity_PokemonCenter_1F_Text_WaitForAnswer, MSGBOX_DEFAULT + specialvar VAR_RESULT, IsQuizAnswerCorrect + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonCenter_1F_EventScript_IncorrectResponse + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonCenter_1F_EventScript_CorrectResponse + end LilycoveCity_PokemonCenter_1F_EventScript_CorrectResponse:: - playse SE_SUCCESS - delay 10 - playse SE_SUCCESS - msgbox LilycoveCity_PokemonCenter_1F_Text_YouGotItRight, MSGBOX_DEFAULT - goto LilycoveCity_PokemonCenter_1F_EventScript_ReadyGivePrize - end + playse SE_SUCCESS + delay 10 + playse SE_SUCCESS + msgbox LilycoveCity_PokemonCenter_1F_Text_YouGotItRight, MSGBOX_DEFAULT + goto LilycoveCity_PokemonCenter_1F_EventScript_ReadyGivePrize + end LilycoveCity_PokemonCenter_1F_EventScript_IncorrectResponse:: - special BufferQuizCorrectAnswer - special BufferQuizPrizeName - playse SE_FAILURE - delay 10 - playse SE_FAILURE - msgbox LilycoveCity_PokemonCenter_1F_Text_WrongTheCorrectAnswerIs, MSGBOX_DEFAULT - msgbox LilycoveCity_PokemonCenter_1F_Text_IGetToKeepPrize, MSGBOX_DEFAULT - goto LilycoveCity_PokemonCenter_1F_EventScript_AskMakeQuiz - end + special BufferQuizCorrectAnswer + special BufferQuizPrizeName + playse SE_FAILURE + delay 10 + playse SE_FAILURE + msgbox LilycoveCity_PokemonCenter_1F_Text_WrongTheCorrectAnswerIs, MSGBOX_DEFAULT + msgbox LilycoveCity_PokemonCenter_1F_Text_IGetToKeepPrize, MSGBOX_DEFAULT + goto LilycoveCity_PokemonCenter_1F_EventScript_AskMakeQuiz + end @ VAR_RESULT is essentially ignored, both jumps are identical LilycoveCity_PokemonCenter_1F_EventScript_ReadyGivePrize:: - specialvar VAR_RESULT, BufferQuizAuthorNameAndCheckIfLady - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_GivePrize1 - compare VAR_RESULT, 0 - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_GivePrize0 - end + specialvar VAR_RESULT, BufferQuizAuthorNameAndCheckIfLady + goto_if_eq VAR_RESULT, 1, LilycoveCity_PokemonCenter_1F_EventScript_GivePrize1 + goto_if_eq VAR_RESULT, 0, LilycoveCity_PokemonCenter_1F_EventScript_GivePrize0 + end LilycoveCity_PokemonCenter_1F_EventScript_GivePrize1:: - msgbox LilycoveCity_PokemonCenter_1F_Text_YouGotItRightYouveWonPersonsPrize, MSGBOX_DEFAULT - goto LilycoveCity_PokemonCenter_1F_EventScript_GivePrize - end + msgbox LilycoveCity_PokemonCenter_1F_Text_YouGotItRightYouveWonPersonsPrize, MSGBOX_DEFAULT + goto LilycoveCity_PokemonCenter_1F_EventScript_GivePrize + end LilycoveCity_PokemonCenter_1F_EventScript_GivePrize0:: - msgbox LilycoveCity_PokemonCenter_1F_Text_YouGotItRightYouveWonPersonsPrize, MSGBOX_DEFAULT - goto LilycoveCity_PokemonCenter_1F_EventScript_GivePrize - end + msgbox LilycoveCity_PokemonCenter_1F_Text_YouGotItRightYouveWonPersonsPrize, MSGBOX_DEFAULT + goto LilycoveCity_PokemonCenter_1F_EventScript_GivePrize + end LilycoveCity_PokemonCenter_1F_EventScript_GivePrize:: - setvar VAR_0x8005, 0 - special BufferQuizPrizeItem - special SetQuizLadyState_Complete - giveitem VAR_0x8005 - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_NoSpaceForQuizPrize - goto LilycoveCity_PokemonCenter_1F_EventScript_AskMakeQuiz - end + setvar VAR_0x8005, 0 + special BufferQuizPrizeItem + special SetQuizLadyState_Complete + giveitem VAR_0x8005 + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonCenter_1F_EventScript_NoSpaceForQuizPrize + goto LilycoveCity_PokemonCenter_1F_EventScript_AskMakeQuiz + end LilycoveCity_PokemonCenter_1F_EventScript_NoSpaceForQuizPrize:: - msgbox LilycoveCity_PokemonCenter_1F_Text_YourBagIsFilledUp, MSGBOX_DEFAULT - special SetQuizLadyState_GivePrize - release - end + msgbox LilycoveCity_PokemonCenter_1F_Text_YourBagIsFilledUp, MSGBOX_DEFAULT + special SetQuizLadyState_GivePrize + release + end LilycoveCity_PokemonCenter_1F_EventScript_AskMakeQuiz:: - msgbox LilycoveCity_PokemonCenter_1F_Text_MakeYourOwnQuiz, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_MakeQuiz - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_DeclineMakeQuiz - end + msgbox LilycoveCity_PokemonCenter_1F_Text_MakeYourOwnQuiz, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, LilycoveCity_PokemonCenter_1F_EventScript_MakeQuiz + goto_if_eq VAR_RESULT, NO, LilycoveCity_PokemonCenter_1F_EventScript_DeclineMakeQuiz + end LilycoveCity_PokemonCenter_1F_EventScript_DeclineMakeQuiz:: - special QuizLadyPickNewQuestion - msgbox LilycoveCity_PokemonCenter_1F_Text_MaybeNextTime, MSGBOX_DEFAULT - release - end + special QuizLadyPickNewQuestion + msgbox LilycoveCity_PokemonCenter_1F_Text_MaybeNextTime, MSGBOX_DEFAULT + release + end LilycoveCity_PokemonCenter_1F_EventScript_MakeQuiz:: - msgbox LilycoveCity_PokemonCenter_1F_Text_PickYourPrize, MSGBOX_DEFAULT + msgbox LilycoveCity_PokemonCenter_1F_Text_PickYourPrize, MSGBOX_DEFAULT LilycoveCity_PokemonCenter_1F_EventScript_PickPrize:: - fadescreen FADE_TO_BLACK - setvar VAR_RESULT, 0 - special Script_QuizLadyOpenBagMenu - waitstate - compare VAR_RESULT, 0 - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_AskQuitChoosingPrize - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_WriteQuiz - end + fadescreen FADE_TO_BLACK + setvar VAR_RESULT, 0 + special Script_QuizLadyOpenBagMenu + waitstate + goto_if_eq VAR_RESULT, 0, LilycoveCity_PokemonCenter_1F_EventScript_AskQuitChoosingPrize + goto_if_eq VAR_RESULT, 1, LilycoveCity_PokemonCenter_1F_EventScript_WriteQuiz + end LilycoveCity_PokemonCenter_1F_EventScript_AskQuitChoosingPrize:: - msgbox LilycoveCity_PokemonCenter_1F_Text_QuitChoosingPrize, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_DeclineMakeQuiz - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_PickPrize - end + msgbox LilycoveCity_PokemonCenter_1F_Text_QuitChoosingPrize, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, LilycoveCity_PokemonCenter_1F_EventScript_DeclineMakeQuiz + goto_if_eq VAR_RESULT, NO, LilycoveCity_PokemonCenter_1F_EventScript_PickPrize + end LilycoveCity_PokemonCenter_1F_EventScript_WriteQuiz:: - msgbox LilycoveCity_PokemonCenter_1F_Text_WriteYourQuiz, MSGBOX_DEFAULT - special ClearQuizLadyQuestionAndAnswer - special ClearQuizLadyPlayerAnswer - setvar VAR_0x8004, EASY_CHAT_TYPE_QUIZ_QUESTION + msgbox LilycoveCity_PokemonCenter_1F_Text_WriteYourQuiz, MSGBOX_DEFAULT + special ClearQuizLadyQuestionAndAnswer + special ClearQuizLadyPlayerAnswer + setvar VAR_0x8004, EASY_CHAT_TYPE_QUIZ_QUESTION LilycoveCity_PokemonCenter_1F_EventScript_WriteQuizQuestion:: - fadescreen FADE_TO_BLACK - special QuizLadySetCustomQuestion - waitstate - compare VAR_RESULT, 0 - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_AskQuitWritingQuizQuestion - goto LilycoveCity_PokemonCenter_1F_EventScript_FinishMakingQuiz - end + fadescreen FADE_TO_BLACK + special QuizLadySetCustomQuestion + waitstate + goto_if_eq VAR_RESULT, 0, LilycoveCity_PokemonCenter_1F_EventScript_AskQuitWritingQuizQuestion + goto LilycoveCity_PokemonCenter_1F_EventScript_FinishMakingQuiz + end LilycoveCity_PokemonCenter_1F_EventScript_AskQuitWritingQuizQuestion:: - msgbox LilycoveCity_PokemonCenter_1F_Text_QuitWritingQuizQuestion, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_DeclineMakeQuiz - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_WriteQuizQuestion - end + msgbox LilycoveCity_PokemonCenter_1F_Text_QuitWritingQuizQuestion, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, LilycoveCity_PokemonCenter_1F_EventScript_DeclineMakeQuiz + goto_if_eq VAR_RESULT, NO, LilycoveCity_PokemonCenter_1F_EventScript_WriteQuizQuestion + end LilycoveCity_PokemonCenter_1F_EventScript_FinishMakingQuiz:: - special QuizLadyTakePrizeForCustomQuiz - special QuizLadyRecordCustomQuizData - special QuizLadySetWaitingForChallenger - msgbox LilycoveCity_PokemonCenter_1F_Text_IllLookForAChallenger, MSGBOX_DEFAULT - release - end + special QuizLadyTakePrizeForCustomQuiz + special QuizLadyRecordCustomQuizData + special QuizLadySetWaitingForChallenger + msgbox LilycoveCity_PokemonCenter_1F_Text_IllLookForAChallenger, MSGBOX_DEFAULT + release + end LilycoveCity_PokemonCenter_1F_EventScript_ContestLady:: - lock - faceplayer - msgbox LilycoveCity_PokemonCenter_1F_Text_ImTheContestLady, MSGBOX_DEFAULT - specialvar VAR_RESULT, HasPlayerGivenContestLadyPokeblock - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_NotGivenPokeblock - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_GivenPokeblock - end + lock + faceplayer + msgbox LilycoveCity_PokemonCenter_1F_Text_ImTheContestLady, MSGBOX_DEFAULT + specialvar VAR_RESULT, HasPlayerGivenContestLadyPokeblock + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonCenter_1F_EventScript_NotGivenPokeblock + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonCenter_1F_EventScript_GivenPokeblock + end @ Redundant with above script, VAR_RESULT will always be FALSE here LilycoveCity_PokemonCenter_1F_EventScript_NotGivenPokeblock:: - specialvar VAR_RESULT, ShouldContestLadyShowGoOnAir - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_AskForPokeblock - compare VAR_RESULT, TRUE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_GivenPokeblock - end + specialvar VAR_RESULT, ShouldContestLadyShowGoOnAir + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonCenter_1F_EventScript_AskForPokeblock + goto_if_eq VAR_RESULT, TRUE, LilycoveCity_PokemonCenter_1F_EventScript_GivenPokeblock + end LilycoveCity_PokemonCenter_1F_EventScript_GivenPokeblock:: - msgbox LilycoveCity_PokemonCenter_1F_Text_ThankForPokeblock, MSGBOX_DEFAULT - release - end + msgbox LilycoveCity_PokemonCenter_1F_Text_ThankForPokeblock, MSGBOX_DEFAULT + release + end LilycoveCity_PokemonCenter_1F_EventScript_AskForPokeblock:: - special Script_BufferContestLadyCategoryAndMonName - msgbox LilycoveCity_PokemonCenter_1F_Text_MyFriendDisplaysQuality, MSGBOX_DEFAULT - checkitem ITEM_POKEBLOCK_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_NoPokeblockCase - msgbox LilycoveCity_PokemonCenter_1F_Text_AskingForOnePokeblock, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_DeclineGivePokeblock - compare VAR_RESULT, YES - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_ChoosePokeblock - end + special Script_BufferContestLadyCategoryAndMonName + msgbox LilycoveCity_PokemonCenter_1F_Text_MyFriendDisplaysQuality, MSGBOX_DEFAULT + checkitem ITEM_POKEBLOCK_CASE + goto_if_eq VAR_RESULT, FALSE, LilycoveCity_PokemonCenter_1F_EventScript_NoPokeblockCase + msgbox LilycoveCity_PokemonCenter_1F_Text_AskingForOnePokeblock, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, LilycoveCity_PokemonCenter_1F_EventScript_DeclineGivePokeblock + goto_if_eq VAR_RESULT, YES, LilycoveCity_PokemonCenter_1F_EventScript_ChoosePokeblock + end LilycoveCity_PokemonCenter_1F_EventScript_DeclineGivePokeblock:: - msgbox LilycoveCity_PokemonCenter_1F_Text_WhatACheapskate, MSGBOX_DEFAULT - release - end + msgbox LilycoveCity_PokemonCenter_1F_Text_WhatACheapskate, MSGBOX_DEFAULT + release + end LilycoveCity_PokemonCenter_1F_EventScript_ChoosePokeblock:: - fadescreen FADE_TO_BLACK - special OpenPokeblockCaseForContestLady - waitstate - compare VAR_RESULT, 0xFFFF - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_AskQuitGivingPokeblock - compare VAR_RESULT, 0xFFFF - goto_if_ne LilycoveCity_PokemonCenter_1F_EventScript_GivePokeblock - end + fadescreen FADE_TO_BLACK + special OpenPokeblockCaseForContestLady + waitstate + goto_if_eq VAR_RESULT, 0xFFFF, LilycoveCity_PokemonCenter_1F_EventScript_AskQuitGivingPokeblock + goto_if_ne VAR_RESULT, 0xFFFF, LilycoveCity_PokemonCenter_1F_EventScript_GivePokeblock + end LilycoveCity_PokemonCenter_1F_EventScript_AskQuitGivingPokeblock:: - msgbox LilycoveCity_PokemonCenter_1F_Text_ICantHaveOnePokeblock, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_DeclineGivePokeblock - compare VAR_RESULT, NO - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_ChoosePokeblock - end + msgbox LilycoveCity_PokemonCenter_1F_Text_ICantHaveOnePokeblock, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, LilycoveCity_PokemonCenter_1F_EventScript_DeclineGivePokeblock + goto_if_eq VAR_RESULT, NO, LilycoveCity_PokemonCenter_1F_EventScript_ChoosePokeblock + end LilycoveCity_PokemonCenter_1F_EventScript_GivePokeblock:: - msgbox LilycoveCity_PokemonCenter_1F_Text_IllUseYourPokeblock, MSGBOX_DEFAULT - special SetContestLadyGivenPokeblock - special GetContestLadyMonSpecies - goto LilycoveCity_PokemonCenter_1F_EventScript_FeedPokeblock - end + msgbox LilycoveCity_PokemonCenter_1F_Text_IllUseYourPokeblock, MSGBOX_DEFAULT + special SetContestLadyGivenPokeblock + special GetContestLadyMonSpecies + goto LilycoveCity_PokemonCenter_1F_EventScript_FeedPokeblock + end @ VAR_0x8004 here is the return value from GivePokeblockToContestLady LilycoveCity_PokemonCenter_1F_EventScript_FeedPokeblock:: - applymovement LOCALID_LILYCOVE_LADY, LilycoveCity_PokemonCenter_1F_Movement_LadyFaceMon - waitmovement 0 - delay 60 - applymovement LOCALID_LADYS_MON, LilycoveCity_PokemonCenter_1F_Movement_MonFaceLady - waitmovement 0 - delay 60 - waitse - playmoncry VAR_0x8005, CRY_MODE_NORMAL - delay 120 - waitmoncry - compare VAR_0x8004, 1 - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_MonEnjoyPokeblock - goto LilycoveCity_PokemonCenter_1F_EventScript_FinishFeedPokeblock - end + applymovement LOCALID_LILYCOVE_LADY, LilycoveCity_PokemonCenter_1F_Movement_LadyFaceMon + waitmovement 0 + delay 60 + applymovement LOCALID_LADYS_MON, LilycoveCity_PokemonCenter_1F_Movement_MonFaceLady + waitmovement 0 + delay 60 + waitse + playmoncry VAR_0x8005, CRY_MODE_NORMAL + delay 120 + waitmoncry + goto_if_eq VAR_0x8004, 1, LilycoveCity_PokemonCenter_1F_EventScript_MonEnjoyPokeblock + goto LilycoveCity_PokemonCenter_1F_EventScript_FinishFeedPokeblock + end @ VAR_0x8004 here is the return value from GivePokeblockToContestLady LilycoveCity_PokemonCenter_1F_EventScript_MonEnjoyPokeblock:: - applymovement LOCALID_LADYS_MON, LilycoveCity_PokemonCenter_1F_Movement_MonJump - waitmovement 0 - delay 60 + applymovement LOCALID_LADYS_MON, LilycoveCity_PokemonCenter_1F_Movement_MonJump + waitmovement 0 + delay 60 LilycoveCity_PokemonCenter_1F_EventScript_FinishFeedPokeblock:: - applymovement LOCALID_LILYCOVE_LADY, LilycoveCity_PokemonCenter_1F_Movement_LadyFacePlayer - waitmovement 0 - delay 60 - compare VAR_0x8004, 0 - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_MonDislikedPokeblock - compare VAR_0x8004, 1 - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_MonLikedPokeblock - end + applymovement LOCALID_LILYCOVE_LADY, LilycoveCity_PokemonCenter_1F_Movement_LadyFacePlayer + waitmovement 0 + delay 60 + goto_if_eq VAR_0x8004, 0, LilycoveCity_PokemonCenter_1F_EventScript_MonDislikedPokeblock + goto_if_eq VAR_0x8004, 1, LilycoveCity_PokemonCenter_1F_EventScript_MonLikedPokeblock + end LilycoveCity_PokemonCenter_1F_EventScript_MonDislikedPokeblock:: - msgbox LilycoveCity_PokemonCenter_1F_Text_NoChangeThanks, MSGBOX_DEFAULT - goto LilycoveCity_PokemonCenter_1F_EventScript_CheckAirContestLadyShow - end + msgbox LilycoveCity_PokemonCenter_1F_Text_NoChangeThanks, MSGBOX_DEFAULT + goto LilycoveCity_PokemonCenter_1F_EventScript_CheckAirContestLadyShow + end LilycoveCity_PokemonCenter_1F_EventScript_MonLikedPokeblock:: - special Script_BufferContestLadyCategoryAndMonName - msgbox LilycoveCity_PokemonCenter_1F_Text_ReallyImprovedThanks, MSGBOX_DEFAULT - goto LilycoveCity_PokemonCenter_1F_EventScript_CheckAirContestLadyShow - end + special Script_BufferContestLadyCategoryAndMonName + msgbox LilycoveCity_PokemonCenter_1F_Text_ReallyImprovedThanks, MSGBOX_DEFAULT + goto LilycoveCity_PokemonCenter_1F_EventScript_CheckAirContestLadyShow + end LilycoveCity_PokemonCenter_1F_EventScript_CheckAirContestLadyShow:: - specialvar VAR_RESULT, ShouldContestLadyShowGoOnAir - compare VAR_RESULT, 1 - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_AirContestLadyShow - release - end + specialvar VAR_RESULT, ShouldContestLadyShowGoOnAir + goto_if_eq VAR_RESULT, 1, LilycoveCity_PokemonCenter_1F_EventScript_AirContestLadyShow + release + end LilycoveCity_PokemonCenter_1F_EventScript_AirContestLadyShow:: - msgbox LilycoveCity_PokemonCenter_1F_Text_ReadyToEnterContests, MSGBOX_DEFAULT - special PutLilycoveContestLadyShowOnTheAir - release - end + msgbox LilycoveCity_PokemonCenter_1F_Text_ReadyToEnterContests, MSGBOX_DEFAULT + special PutLilycoveContestLadyShowOnTheAir + release + end LilycoveCity_PokemonCenter_1F_EventScript_NoPokeblockCase:: - msgbox LilycoveCity_PokemonCenter_1F_Text_DontHaveAPokeblockCase, MSGBOX_DEFAULT - release - end + msgbox LilycoveCity_PokemonCenter_1F_Text_DontHaveAPokeblockCase, MSGBOX_DEFAULT + release + end LilycoveCity_PokemonCenter_1F_Movement_LadyFaceMon: - face_right - delay_8 - step_end + face_right + delay_8 + step_end LilycoveCity_PokemonCenter_1F_Movement_MonFaceLady: - face_left - delay_8 - step_end + face_left + delay_8 + step_end @ Unused LilycoveCity_PokemonCenter_1F_Movement_MonFaceDown: - face_down - step_end + face_down + step_end LilycoveCity_PokemonCenter_1F_Movement_LadyFacePlayer: - face_player - step_end + face_player + step_end LilycoveCity_PokemonCenter_1F_Movement_MonJump: - disable_jump_landing_ground_effect - jump_in_place_left - disable_jump_landing_ground_effect - jump_in_place_left - step_end + disable_jump_landing_ground_effect + jump_in_place_left + disable_jump_landing_ground_effect + jump_in_place_left + step_end LilycoveCity_PokemonCenter_1F_EventScript_ContestLadyMon:: - specialvar VAR_RESULT, GetContestLadyCategory - special Script_BufferContestLadyCategoryAndMonName - special GetContestLadyMonSpecies - compare VAR_RESULT, CONTEST_CATEGORY_COOL - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_Zigzagoon - compare VAR_RESULT, CONTEST_CATEGORY_BEAUTY - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_Skitty - compare VAR_RESULT, CONTEST_CATEGORY_CUTE - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_Poochyena - compare VAR_RESULT, CONTEST_CATEGORY_SMART - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_Kecleon - compare VAR_RESULT, CONTEST_CATEGORY_TOUGH - goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_Pikachu - end + specialvar VAR_RESULT, GetContestLadyCategory + special Script_BufferContestLadyCategoryAndMonName + special GetContestLadyMonSpecies + goto_if_eq VAR_RESULT, CONTEST_CATEGORY_COOL, LilycoveCity_PokemonCenter_1F_EventScript_Zigzagoon + goto_if_eq VAR_RESULT, CONTEST_CATEGORY_BEAUTY, LilycoveCity_PokemonCenter_1F_EventScript_Skitty + goto_if_eq VAR_RESULT, CONTEST_CATEGORY_CUTE, LilycoveCity_PokemonCenter_1F_EventScript_Poochyena + goto_if_eq VAR_RESULT, CONTEST_CATEGORY_SMART, LilycoveCity_PokemonCenter_1F_EventScript_Kecleon + goto_if_eq VAR_RESULT, CONTEST_CATEGORY_TOUGH, LilycoveCity_PokemonCenter_1F_EventScript_Pikachu + end LilycoveCity_PokemonCenter_1F_EventScript_Zigzagoon:: - lock - faceplayer - waitse - playmoncry VAR_0x8005, CRY_MODE_NORMAL - msgbox LilycoveCity_PokemonCenter_1F_Text_Zigzagoon, MSGBOX_DEFAULT - waitmoncry - release - end + lock + faceplayer + waitse + playmoncry VAR_0x8005, CRY_MODE_NORMAL + msgbox LilycoveCity_PokemonCenter_1F_Text_Zigzagoon, MSGBOX_DEFAULT + waitmoncry + release + end LilycoveCity_PokemonCenter_1F_EventScript_Skitty:: - lock - faceplayer - waitse - playmoncry VAR_0x8005, CRY_MODE_NORMAL - msgbox LilycoveCity_PokemonCenter_1F_Text_Skitty, MSGBOX_DEFAULT - waitmoncry - release - end + lock + faceplayer + waitse + playmoncry VAR_0x8005, CRY_MODE_NORMAL + msgbox LilycoveCity_PokemonCenter_1F_Text_Skitty, MSGBOX_DEFAULT + waitmoncry + release + end LilycoveCity_PokemonCenter_1F_EventScript_Poochyena:: - lock - faceplayer - waitse - playmoncry VAR_0x8005, CRY_MODE_NORMAL - msgbox LilycoveCity_PokemonCenter_1F_Text_Poochyena, MSGBOX_DEFAULT - waitmoncry - release - end + lock + faceplayer + waitse + playmoncry VAR_0x8005, CRY_MODE_NORMAL + msgbox LilycoveCity_PokemonCenter_1F_Text_Poochyena, MSGBOX_DEFAULT + waitmoncry + release + end LilycoveCity_PokemonCenter_1F_EventScript_Kecleon:: - lock - faceplayer - waitse - playmoncry VAR_0x8005, CRY_MODE_NORMAL - msgbox LilycoveCity_PokemonCenter_1F_Text_Kecleon, MSGBOX_DEFAULT - waitmoncry - release - end + lock + faceplayer + waitse + playmoncry VAR_0x8005, CRY_MODE_NORMAL + msgbox LilycoveCity_PokemonCenter_1F_Text_Kecleon, MSGBOX_DEFAULT + waitmoncry + release + end LilycoveCity_PokemonCenter_1F_EventScript_Pikachu:: - lock - faceplayer - waitse - playmoncry VAR_0x8005, CRY_MODE_NORMAL - msgbox LilycoveCity_PokemonCenter_1F_Text_Pikachu, MSGBOX_DEFAULT - waitmoncry - release - end + lock + faceplayer + waitse + playmoncry VAR_0x8005, CRY_MODE_NORMAL + msgbox LilycoveCity_PokemonCenter_1F_Text_Pikachu, MSGBOX_DEFAULT + waitmoncry + release + end LilycoveCity_PokemonCenter_1F_Text_ImTheFavorLady: - .string "I'm the FAVOR LADY…$" + .string "I'm the FAVOR LADY…$" LilycoveCity_PokemonCenter_1F_Text_ObsessedWithThing: - .string "I've recently developed an obsession\n" - .string "for {STR_VAR_1} things…$" + .string "I've recently developed an obsession\n" + .string "for {STR_VAR_1} things…$" LilycoveCity_PokemonCenter_1F_Text_ThankYouForLastTime: - .string "Oh…\n" - .string "Thank you for last time…$" + .string "Oh…\n" + .string "Thank you for last time…$" LilycoveCity_PokemonCenter_1F_Text_PlayerGaveMeBadThing: - .string "Before, I think it was {STR_VAR_3}…\p" - .string "{STR_VAR_3} gave me one {STR_VAR_2},\n" - .string "saying it was {STR_VAR_1}.\p" - .string "But it wasn't {STR_VAR_1}.\n" - .string "Not in the least bit.$" + .string "Before, I think it was {STR_VAR_3}…\p" + .string "{STR_VAR_3} gave me one {STR_VAR_2},\n" + .string "saying it was {STR_VAR_1}.\p" + .string "But it wasn't {STR_VAR_1}.\n" + .string "Not in the least bit.$" LilycoveCity_PokemonCenter_1F_Text_PlayerGaveMeGreatThing: - .string "Before, {STR_VAR_3} gave me a very\n" - .string "{STR_VAR_1} {STR_VAR_2}.\p" - .string "I cherish it now.$" + .string "Before, {STR_VAR_3} gave me a very\n" + .string "{STR_VAR_1} {STR_VAR_2}.\p" + .string "I cherish it now.$" LilycoveCity_PokemonCenter_1F_Text_WillYouShareThing: - .string "Listen, if you have anything that\n" - .string "is {STR_VAR_1}, will you share it\l" - .string "with me?$" + .string "Listen, if you have anything that\n" + .string "is {STR_VAR_1}, will you share it\l" + .string "with me?$" LilycoveCity_PokemonCenter_1F_Text_WhatWillYouGiveMe: - .string "…Really?\n" - .string "What will you give me?$" + .string "…Really?\n" + .string "What will you give me?$" LilycoveCity_PokemonCenter_1F_Text_IsThatSoGoodbye: - .string "Is that so?\n" - .string "Then, it's good-bye…$" + .string "Is that so?\n" + .string "Then, it's good-bye…$" LilycoveCity_PokemonCenter_1F_Text_NotWillingToShare: - .string "Oh…\n" - .string "You're not willing to share?$" + .string "Oh…\n" + .string "You're not willing to share?$" LilycoveCity_PokemonCenter_1F_Text_IllTryToCherishIt: - .string "Oh?\n" - .string "That {STR_VAR_2} is {STR_VAR_1}?\p" - .string "…Oh, is that right?\p" - .string "Well, I owe you a thanks anyway.\n" - .string "I'll try to cherish it…$" + .string "Oh?\n" + .string "That {STR_VAR_2} is {STR_VAR_1}?\p" + .string "…Oh, is that right?\p" + .string "Well, I owe you a thanks anyway.\n" + .string "I'll try to cherish it…$" LilycoveCity_PokemonCenter_1F_Text_IWillCherishThis: - .string "Oh…\p" - .string "That's a quite {STR_VAR_1}\n" - .string "{STR_VAR_2}…\p" - .string "Isn't it nice?\n" - .string "It's so dreamy…\p" - .string "Thank you…\n" - .string "I will cherish this…$" + .string "Oh…\p" + .string "That's a quite {STR_VAR_1}\n" + .string "{STR_VAR_2}…\p" + .string "Isn't it nice?\n" + .string "It's so dreamy…\p" + .string "Thank you…\n" + .string "I will cherish this…$" LilycoveCity_PokemonCenter_1F_Text_IWillTreasureThis: - .string "…Oh, oh, oh…\p" - .string "This is amazing!\n" - .string "This really is {STR_VAR_1}!\p" - .string "I never knew that one {STR_VAR_2}\n" - .string "could be this {STR_VAR_1}!\p" - .string "Thank you!\p" - .string "I will treasure this for the rest\n" - .string "of my life!$" + .string "…Oh, oh, oh…\p" + .string "This is amazing!\n" + .string "This really is {STR_VAR_1}!\p" + .string "I never knew that one {STR_VAR_2}\n" + .string "could be this {STR_VAR_1}!\p" + .string "Thank you!\p" + .string "I will treasure this for the rest\n" + .string "of my life!$" LilycoveCity_PokemonCenter_1F_Text_IllGiveYouThisInReturn: - .string "I'll give you this wonderful item in\n" - .string "return for your fabulous gift.\p" - .string "I hope you will cherish it…$" + .string "I'll give you this wonderful item in\n" + .string "return for your fabulous gift.\p" + .string "I hope you will cherish it…$" LilycoveCity_PokemonCenter_1F_Text_YouDontHaveSpaceForIt: - .string "Oh, you can't have it if you don't have\n" - .string "the space for it.\p" - .string "Please come see me when you get\n" - .string "your BAG organized…$" + .string "Oh, you can't have it if you don't have\n" + .string "the space for it.\p" + .string "Please come see me when you get\n" + .string "your BAG organized…$" LilycoveCity_PokemonCenter_1F_Text_ImTheQuizLady: - .string "I'm the QUIZ LADY!\n" - .string "I love quizzes!$" + .string "I'm the QUIZ LADY!\n" + .string "I love quizzes!$" LilycoveCity_PokemonCenter_1F_Text_WaitingToTakeYourQuiz: - .string "Oh?\p" - .string "I'm waiting for a challenger to answer\n" - .string "the quiz you made.\p" - .string "We can chat another time, okay?$" + .string "Oh?\p" + .string "I'm waiting for a challenger to answer\n" + .string "the quiz you made.\p" + .string "We can chat another time, okay?$" LilycoveCity_PokemonCenter_1F_Text_WaitingForChallenger: - .string "I'm waiting for someone to challenge\n" - .string "a quiz this {STR_VAR_1} thought up!$" + .string "I'm waiting for someone to challenge\n" + .string "a quiz this {STR_VAR_1} thought up!$" LilycoveCity_PokemonCenter_1F_Text_TakeQuizChallenge: - .string "If you answer correctly, you can win\n" - .string "fabulous prizes!\p" - .string "Would you like to take the quiz\n" - .string "challenge?$" + .string "If you answer correctly, you can win\n" + .string "fabulous prizes!\p" + .string "Would you like to take the quiz\n" + .string "challenge?$" LilycoveCity_PokemonCenter_1F_Text_WaitForAnswer: - .string "… … … … … …\n" - .string "… … … … … …$" + .string "… … … … … …\n" + .string "… … … … … …$" LilycoveCity_PokemonCenter_1F_Text_HowBoringBye: - .string "Oh, how boring!\n" - .string "Bye-bye!$" + .string "Oh, how boring!\n" + .string "Bye-bye!$" LilycoveCity_PokemonCenter_1F_Text_YoureGoingToQuit: - .string "Awww!\n" - .string "You're going to quit?$" + .string "Awww!\n" + .string "You're going to quit?$" LilycoveCity_PokemonCenter_1F_Text_TakeTheQuizAnotherTime: - .string "Please take the quiz challenge\n" - .string "another time!$" + .string "Please take the quiz challenge\n" + .string "another time!$" LilycoveCity_PokemonCenter_1F_Text_YouGotItRight: - .string "You're amazing! You've got it right!\n" - .string "You're one sharp customer!$" + .string "You're amazing! You've got it right!\n" + .string "You're one sharp customer!$" LilycoveCity_PokemonCenter_1F_Text_YouGotItRightYouveWonPersonsPrize: - .string "Congratulations!\n" - .string "You've got the quiz right!\p" - .string "You've won a prize provided by\n" - .string "{STR_VAR_1}!$" + .string "Congratulations!\n" + .string "You've got the quiz right!\p" + .string "You've won a prize provided by\n" + .string "{STR_VAR_1}!$" @ Unused LilycoveCity_PokemonCenter_1F_Text_XReceivedOneY: - .string "{STR_VAR_1} received\n" - .string "one {STR_VAR_2}!$" + .string "{STR_VAR_1} received\n" + .string "one {STR_VAR_2}!$" LilycoveCity_PokemonCenter_1F_Text_YourBagIsFilledUp: - .string "Oh? Your BAG is filled up!\n" - .string "Come see me when you have room.$" + .string "Oh? Your BAG is filled up!\n" + .string "Come see me when you have room.$" LilycoveCity_PokemonCenter_1F_Text_WrongTheCorrectAnswerIs: - .string "Hmm… Wrong!\n" - .string "The correct answer is “{STR_VAR_3}”!$" + .string "Hmm… Wrong!\n" + .string "The correct answer is “{STR_VAR_3}”!$" LilycoveCity_PokemonCenter_1F_Text_IGetToKeepPrize: - .string "Too bad!\p" - .string "I get to keep the quiz prize\n" - .string "{STR_VAR_1} now!$" + .string "Too bad!\p" + .string "I get to keep the quiz prize\n" + .string "{STR_VAR_1} now!$" LilycoveCity_PokemonCenter_1F_Text_MakeYourOwnQuiz: - .string "Listen, listen!\n" - .string "Would you like to make your own quiz?$" + .string "Listen, listen!\n" + .string "Would you like to make your own quiz?$" LilycoveCity_PokemonCenter_1F_Text_MaybeNextTime: - .string "Oh, I see…\n" - .string "Well, maybe next time!$" + .string "Oh, I see…\n" + .string "Well, maybe next time!$" LilycoveCity_PokemonCenter_1F_Text_PickYourPrize: - .string "Okay, the first thing you have to do\n" - .string "is pick the prize for the person that\l" - .string "answers your quiz correctly.\p" - .string "But beware, if the person taking\n" - .string "the quiz can't get it right, I get to\l" - .string "keep the prize!$" + .string "Okay, the first thing you have to do\n" + .string "is pick the prize for the person that\l" + .string "answers your quiz correctly.\p" + .string "But beware, if the person taking\n" + .string "the quiz can't get it right, I get to\l" + .string "keep the prize!$" LilycoveCity_PokemonCenter_1F_Text_QuitChoosingPrize: - .string "If you don't choose a prize,\n" - .string "your quiz can't be made.\p" - .string "Are you going to quit making\n" - .string "your quiz?$" + .string "If you don't choose a prize,\n" + .string "your quiz can't be made.\p" + .string "Are you going to quit making\n" + .string "your quiz?$" LilycoveCity_PokemonCenter_1F_Text_WriteYourQuiz: - .string "Oh, how nice!\n" - .string "That's a wonderful prize!\p" - .string "Next, you need to write your quiz\n" - .string "question and its answer.$" + .string "Oh, how nice!\n" + .string "That's a wonderful prize!\p" + .string "Next, you need to write your quiz\n" + .string "question and its answer.$" LilycoveCity_PokemonCenter_1F_Text_QuitWritingQuizQuestion: - .string "Are you going to quit writing\n" - .string "your quiz question?$" + .string "Are you going to quit writing\n" + .string "your quiz question?$" @ Unused LilycoveCity_PokemonCenter_1F_Text_QuitWritingQuizAnswer: - .string "Are you going to quit choosing\n" - .string "your quiz answer?$" + .string "Are you going to quit choosing\n" + .string "your quiz answer?$" LilycoveCity_PokemonCenter_1F_Text_IllLookForAChallenger: - .string "Thank you!\n" - .string "You've put together a nice quiz.\p" - .string "I'll go look for someone who'll take\n" - .string "your quiz challenge right away.$" + .string "Thank you!\n" + .string "You've put together a nice quiz.\p" + .string "I'll go look for someone who'll take\n" + .string "your quiz challenge right away.$" LilycoveCity_PokemonCenter_1F_Text_ImTheContestLady: - .string "I'm the CONTEST LADY!\n" - .string "I sure do love CONTESTS!$" + .string "I'm the CONTEST LADY!\n" + .string "I sure do love CONTESTS!$" LilycoveCity_PokemonCenter_1F_Text_ThankForPokeblock: - .string "Thanks for your {POKEBLOCK} before!$" + .string "Thanks for your {POKEBLOCK} before!$" LilycoveCity_PokemonCenter_1F_Text_MyFriendDisplaysQuality: - .string "This is my friend {STR_VAR_1}!\n" - .string "It's the epitome of {STR_VAR_2}!\p" - .string "But I think that it will display\n" - .string "even more {STR_VAR_2}!$" + .string "This is my friend {STR_VAR_1}!\n" + .string "It's the epitome of {STR_VAR_2}!\p" + .string "But I think that it will display\n" + .string "even more {STR_VAR_2}!$" LilycoveCity_PokemonCenter_1F_Text_DontHaveAPokeblockCase: - .string "So, I need your help!\p" - .string "Please, may I have one {POKEBLOCK}?\n" - .string "All I'm asking for is one!\p" - .string "…Oh, but…\n" - .string "Don't you have a {POKEBLOCK} CASE?\l" - .string "That's no good. Next time, then!$" + .string "So, I need your help!\p" + .string "Please, may I have one {POKEBLOCK}?\n" + .string "All I'm asking for is one!\p" + .string "…Oh, but…\n" + .string "Don't you have a {POKEBLOCK} CASE?\l" + .string "That's no good. Next time, then!$" LilycoveCity_PokemonCenter_1F_Text_AskingForOnePokeblock: - .string "So, I need your help!\p" - .string "Please, may I have one {POKEBLOCK}?\n" - .string "All I'm asking for is one!$" + .string "So, I need your help!\p" + .string "Please, may I have one {POKEBLOCK}?\n" + .string "All I'm asking for is one!$" LilycoveCity_PokemonCenter_1F_Text_ICantHaveOnePokeblock: - .string "Awww!\n" - .string "I can't have one {POKEBLOCK}?!$" + .string "Awww!\n" + .string "I can't have one {POKEBLOCK}?!$" LilycoveCity_PokemonCenter_1F_Text_WhatACheapskate: - .string "Sheesh!\n" - .string "What a cheapskate!$" + .string "Sheesh!\n" + .string "What a cheapskate!$" LilycoveCity_PokemonCenter_1F_Text_IllUseYourPokeblock: - .string "Yay!\n" - .string "Thank you!\p" - .string "I'll feed my POKéMON your {POKEBLOCK}\n" - .string "right away.$" + .string "Yay!\n" + .string "Thank you!\p" + .string "I'll feed my POKéMON your {POKEBLOCK}\n" + .string "right away.$" LilycoveCity_PokemonCenter_1F_Text_NoChangeThanks: - .string "…It doesn't seem to have changed\n" - .string "in any way at all…\p" - .string "Hmm…\p" - .string "Oh, well!\n" - .string "Thank you very much!$" + .string "…It doesn't seem to have changed\n" + .string "in any way at all…\p" + .string "Hmm…\p" + .string "Oh, well!\n" + .string "Thank you very much!$" LilycoveCity_PokemonCenter_1F_Text_ReallyImprovedThanks: - .string "Oh, yay!\n" - .string "It's really delighted!\p" - .string "I think it really improved {STR_VAR_1}'s\n" - .string "{STR_VAR_2} quality, too.\p" - .string "Thank you so much!$" + .string "Oh, yay!\n" + .string "It's really delighted!\p" + .string "I think it really improved {STR_VAR_1}'s\n" + .string "{STR_VAR_2} quality, too.\p" + .string "Thank you so much!$" LilycoveCity_PokemonCenter_1F_Text_ReadyToEnterContests: - .string "Hmm…\p" - .string "I think we may be ready to enter\n" - .string "some CONTESTS.\p" - .string "If you see us in one somewhere,\n" - .string "I hope you'll cheer for us.$" + .string "Hmm…\p" + .string "I think we may be ready to enter\n" + .string "some CONTESTS.\p" + .string "If you see us in one somewhere,\n" + .string "I hope you'll cheer for us.$" LilycoveCity_PokemonCenter_1F_Text_Zigzagoon: - .string "{STR_VAR_1}: Guguuh!$" + .string "{STR_VAR_1}: Guguuh!$" LilycoveCity_PokemonCenter_1F_Text_Kecleon: - .string "{STR_VAR_1}: Igigigiiih!$" + .string "{STR_VAR_1}: Igigigiiih!$" LilycoveCity_PokemonCenter_1F_Text_Poochyena: - .string "{STR_VAR_1}: Baaarun…$" + .string "{STR_VAR_1}: Baaarun…$" LilycoveCity_PokemonCenter_1F_Text_Pikachu: - .string "{STR_VAR_1}: Pikka!$" + .string "{STR_VAR_1}: Pikka!$" LilycoveCity_PokemonCenter_1F_Text_Skitty: - .string "{STR_VAR_1}: Umyaaaan!$" + .string "{STR_VAR_1}: Umyaaaan!$" diff --git a/data/scripts/mauville_man.inc b/data/scripts/mauville_man.inc index b34f84e8e2..e1fa3d1799 100644 --- a/data/scripts/mauville_man.inc +++ b/data/scripts/mauville_man.inc @@ -13,10 +13,8 @@ MauvilleCity_PokemonCenter_1F_EventScript_Bard:: lock faceplayer msgbox MauvilleCity_PokemonCenter_1F_Text_WouldYouLikeToHearMySong, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_PlaySong - compare VAR_RESULT, NO - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_DeclineSong + goto_if_eq VAR_RESULT, YES, MauvilleCity_PokemonCenter_1F_EventScript_PlaySong + goto_if_eq VAR_RESULT, NO, MauvilleCity_PokemonCenter_1F_EventScript_DeclineSong end MauvilleCity_PokemonCenter_1F_EventScript_PlaySong:: @@ -24,8 +22,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_PlaySong:: special PlayBardSong delay 60 special HasBardSongBeenChanged - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_AskToWriteLyrics + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_PokemonCenter_1F_EventScript_AskToWriteLyrics msgbox MauvilleCity_PokemonCenter_1F_Text_WishICouldPlaySongForOthers, MSGBOX_DEFAULT release end @@ -37,10 +34,8 @@ MauvilleCity_PokemonCenter_1F_EventScript_DeclineSong:: MauvilleCity_PokemonCenter_1F_EventScript_AskToWriteLyrics:: msgbox MauvilleCity_PokemonCenter_1F_Text_WouldYouLikeToWriteSomeLyrics, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_WriteLyrics - compare VAR_RESULT, NO - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_DeclineWritingLyrics + goto_if_eq VAR_RESULT, YES, MauvilleCity_PokemonCenter_1F_EventScript_WriteLyrics + goto_if_eq VAR_RESULT, NO, MauvilleCity_PokemonCenter_1F_EventScript_DeclineWritingLyrics end MauvilleCity_PokemonCenter_1F_EventScript_WriteLyrics:: @@ -48,15 +43,13 @@ MauvilleCity_PokemonCenter_1F_EventScript_WriteLyrics:: call Common_ShowEasyChatScreen lock faceplayer - compare VAR_RESULT, 0 - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_DeclineWritingLyrics + goto_if_eq VAR_RESULT, 0, MauvilleCity_PokemonCenter_1F_EventScript_DeclineWritingLyrics msgbox MauvilleCity_PokemonCenter_1F_Text_LetMeSingItForYou, MSGBOX_DEFAULT setvar VAR_0x8004, 1 special PlayBardSong delay 60 msgbox MauvilleCity_PokemonCenter_1F_Text_ThatHowYouWantedSongToGo, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_WriteLyrics + goto_if_eq VAR_RESULT, NO, MauvilleCity_PokemonCenter_1F_EventScript_WriteLyrics special SaveBardSongLyrics msgbox MauvilleCity_PokemonCenter_1F_Text_IllSingThisSongForAWhile, MSGBOX_DEFAULT release @@ -74,16 +67,14 @@ MauvilleCity_PokemonCenter_1F_EventScript_Hipster:: setflag FLAG_SYS_HIPSTER_MEET msgbox MauvilleCity_PokemonCenter_1F_Text_TeachWhatsHipAndHappening, MSGBOX_DEFAULT special GetHipsterSpokenFlag - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_TryTeachWord + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_PokemonCenter_1F_EventScript_TryTeachWord msgbox MauvilleCity_PokemonCenter_1F_Text_IAlreadyTaughtYou, MSGBOX_DEFAULT release end MauvilleCity_PokemonCenter_1F_EventScript_TryTeachWord:: special HipsterTryTeachWord - compare VAR_RESULT, TRUE - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_TeachWord + goto_if_eq VAR_RESULT, TRUE, MauvilleCity_PokemonCenter_1F_EventScript_TeachWord msgbox MauvilleCity_PokemonCenter_1F_Text_IveGotNothingNewToTeach, MSGBOX_DEFAULT release end @@ -158,11 +149,9 @@ MauvilleCity_PokemonCenter_1F_EventScript_Trader:: lock faceplayer msgbox MauvilleCity_PokemonCenter_1F_Text_WantToTradeDecor, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_DeclineTrade + goto_if_eq VAR_RESULT, NO, MauvilleCity_PokemonCenter_1F_EventScript_DeclineTrade special GetTraderTradedFlag - compare VAR_RESULT, TRUE - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_AlreadyTraded + goto_if_eq VAR_RESULT, TRUE, MauvilleCity_PokemonCenter_1F_EventScript_AlreadyTraded message MauvilleCity_PokemonCenter_1F_Text_PickADecorItem waitmessage goto MauvilleCity_PokemonCenter_1F_EventScript_PickDecorToReceive @@ -181,16 +170,12 @@ MauvilleCity_PokemonCenter_1F_EventScript_AlreadyTraded:: MauvilleCity_PokemonCenter_1F_EventScript_PickDecorToReceive:: special TraderMenuGetDecoration waitstate - compare VAR_0x8004, 0 - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_CancelPickDecor - compare VAR_0x8004, 0xFFFF - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_InvalidDecor + goto_if_eq VAR_0x8004, 0, MauvilleCity_PokemonCenter_1F_EventScript_CancelPickDecor + goto_if_eq VAR_0x8004, 0xFFFF, MauvilleCity_PokemonCenter_1F_EventScript_InvalidDecor msgbox MauvilleCity_PokemonCenter_1F_Text_OnceBelongedToPlayerDoYouWantIt, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_PickDifferentDecor + goto_if_eq VAR_RESULT, NO, MauvilleCity_PokemonCenter_1F_EventScript_PickDifferentDecor special DoesPlayerHaveNoDecorations - compare VAR_RESULT, TRUE - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_DontHaveAnyDecor + goto_if_eq VAR_RESULT, TRUE, MauvilleCity_PokemonCenter_1F_EventScript_DontHaveAnyDecor goto MauvilleCity_PokemonCenter_1F_EventScript_PickDecorToGive end @@ -220,16 +205,12 @@ MauvilleCity_PokemonCenter_1F_EventScript_PickDecorToGive:: msgbox MauvilleCity_PokemonCenter_1F_Text_PickTheDecorToTrade, MSGBOX_DEFAULT special TraderShowDecorationMenu waitstate - compare VAR_0x8006, 0 - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_CancelGiveDecor - compare VAR_0x8006, 0xFFFF - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_DecorInUse + goto_if_eq VAR_0x8006, 0, MauvilleCity_PokemonCenter_1F_EventScript_CancelGiveDecor + goto_if_eq VAR_0x8006, 0xFFFF, MauvilleCity_PokemonCenter_1F_EventScript_DecorInUse special IsDecorationCategoryFull - compare VAR_RESULT, TRUE - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_NoRoomForDecor + goto_if_eq VAR_RESULT, TRUE, MauvilleCity_PokemonCenter_1F_EventScript_NoRoomForDecor msgbox MauvilleCity_PokemonCenter_1F_Text_SoWellTradeTheseDecor, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_PickDecorToGive + goto_if_eq VAR_RESULT, NO, MauvilleCity_PokemonCenter_1F_EventScript_PickDecorToGive special TraderDoDecorationTrade msgbox MauvilleCity_PokemonCenter_1F_Text_SendDecorToYourPC, MSGBOX_DEFAULT release @@ -816,24 +797,20 @@ MauvilleCity_PokemonCenter_1F_EventScript_Storyteller:: setvar VAR_0x800A, 0 setvar VAR_0x800B, 0 msgbox MauvilleCity_PokemonCenter_1F_Text_WillYouHearMyTale, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_DeclineStoryteller + goto_if_eq VAR_RESULT, NO, MauvilleCity_PokemonCenter_1F_EventScript_DeclineStoryteller specialvar VAR_RESULT, StorytellerGetFreeStorySlot - compare VAR_RESULT, 0 - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_KnowNoTales + goto_if_eq VAR_RESULT, 0, MauvilleCity_PokemonCenter_1F_EventScript_KnowNoTales message MauvilleCity_PokemonCenter_1F_Text_WhichTaleToTell waitmessage special StorytellerStoryListMenu waitstate - compare VAR_RESULT, 0 - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_CancelStorySelection + goto_if_eq VAR_RESULT, 0, MauvilleCity_PokemonCenter_1F_EventScript_CancelStorySelection setvar VAR_0x8008, 1 special Script_StorytellerDisplayStory waitmessage waitbuttonpress specialvar VAR_RESULT, StorytellerUpdateStat - compare VAR_RESULT, 0 - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_AreThereOtherTales + goto_if_eq VAR_RESULT, 0, MauvilleCity_PokemonCenter_1F_EventScript_AreThereOtherTales goto MauvilleCity_PokemonCenter_1F_EventScript_TellPlayersTale MauvilleCity_PokemonCenter_1F_EventScript_CancelStorySelection:: @@ -843,19 +820,16 @@ MauvilleCity_PokemonCenter_1F_EventScript_CancelStorySelection:: MauvilleCity_PokemonCenter_1F_EventScript_AreThereOtherTales:: msgbox MauvilleCity_PokemonCenter_1F_Text_CouldThereBeOtherLegends, MSGBOX_DEFAULT specialvar VAR_RESULT, HasStorytellerAlreadyRecorded - compare VAR_RESULT, TRUE - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_StorytellerEnd + goto_if_eq VAR_RESULT, TRUE, MauvilleCity_PokemonCenter_1F_EventScript_StorytellerEnd goto MauvilleCity_PokemonCenter_1F_EventScript_DoYouHaveAnyTales MauvilleCity_PokemonCenter_1F_EventScript_KnowNoTales:: msgbox MauvilleCity_PokemonCenter_1F_Text_IKnowNoTales, MSGBOX_DEFAULT MauvilleCity_PokemonCenter_1F_EventScript_DoYouHaveAnyTales:: msgbox MauvilleCity_PokemonCenter_1F_Text_HaveYouAnyLegendaryTales, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_DeclineStoryteller + goto_if_eq VAR_RESULT, NO, MauvilleCity_PokemonCenter_1F_EventScript_DeclineStoryteller specialvar VAR_RESULT, Script_StorytellerInitializeRandomStat - compare VAR_RESULT, 1 - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_TellPlayersTale + goto_if_eq VAR_RESULT, 1, MauvilleCity_PokemonCenter_1F_EventScript_TellPlayersTale msgbox MauvilleCity_PokemonCenter_1F_Text_NotWorthyOfLegend, MSGBOX_DEFAULT release end @@ -902,26 +876,20 @@ MauvilleCity_PokemonCenter_1F_EventScript_Giddy:: lock faceplayer msgbox MauvilleCity_PokemonCenter_1F_Text_HearMyStory, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_TryTellTale - compare VAR_RESULT, NO - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_DeclineGiddy + goto_if_eq VAR_RESULT, YES, MauvilleCity_PokemonCenter_1F_EventScript_TryTellTale + goto_if_eq VAR_RESULT, NO, MauvilleCity_PokemonCenter_1F_EventScript_DeclineGiddy end MauvilleCity_PokemonCenter_1F_EventScript_TryTellTale:: special GiddyShouldTellAnotherTale - compare VAR_RESULT, TRUE - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_GiddyTellTale - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_ToldEnoughTales + goto_if_eq VAR_RESULT, TRUE, MauvilleCity_PokemonCenter_1F_EventScript_GiddyTellTale + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_PokemonCenter_1F_EventScript_ToldEnoughTales end MauvilleCity_PokemonCenter_1F_EventScript_TryTellNewTale:: special GiddyShouldTellAnotherTale - compare VAR_RESULT, TRUE - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_GiddyStartNewTale - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_ToldEnoughTales + goto_if_eq VAR_RESULT, TRUE, MauvilleCity_PokemonCenter_1F_EventScript_GiddyStartNewTale + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_PokemonCenter_1F_EventScript_ToldEnoughTales end MauvilleCity_PokemonCenter_1F_EventScript_GiddyStartNewTale:: @@ -936,10 +904,8 @@ MauvilleCity_PokemonCenter_1F_EventScript_GiddyTellTale:: special ShowFieldMessageStringVar4 waitmessage yesnobox 20, 8 - compare VAR_RESULT, YES - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_TryTellNewTale - compare VAR_RESULT, NO - goto_if_eq MauvilleCity_PokemonCenter_1F_EventScript_TryTellNewTale + goto_if_eq VAR_RESULT, YES, MauvilleCity_PokemonCenter_1F_EventScript_TryTellNewTale + goto_if_eq VAR_RESULT, NO, MauvilleCity_PokemonCenter_1F_EventScript_TryTellNewTale end MauvilleCity_PokemonCenter_1F_EventScript_DeclineGiddy:: diff --git a/data/scripts/move_tutors.inc b/data/scripts/move_tutors.inc index cc952749d4..4155969a02 100644 --- a/data/scripts/move_tutors.inc +++ b/data/scripts/move_tutors.inc @@ -3,16 +3,13 @@ SlateportCity_PokemonFanClub_EventScript_SwaggerTutor:: faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_SWAGGER, MoveTutor_EventScript_SwaggerTaught msgbox MoveTutor_Text_SwaggerTeach, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_SwaggerDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_SwaggerDeclined call MoveTutor_EventScript_CanOnlyBeLearnedOnce - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_SwaggerDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_SwaggerDeclined msgbox MoveTutor_Text_SwaggerWhichMon, MSGBOX_DEFAULT setvar VAR_0x8005, TUTOR_MOVE_SWAGGER call MoveTutor_EventScript_OpenPartyMenu - compare VAR_RESULT, 0 - goto_if_eq MoveTutor_EventScript_SwaggerDeclined + goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_SwaggerDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_SWAGGER goto MoveTutor_EventScript_SwaggerTaught end @@ -32,16 +29,13 @@ MauvilleCity_EventScript_RolloutTutor:: faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_ROLLOUT, MoveTutor_EventScript_RolloutTaught msgbox MoveTutor_Text_RolloutTeach, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_RolloutDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_RolloutDeclined call MoveTutor_EventScript_CanOnlyBeLearnedOnce - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_RolloutDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_RolloutDeclined msgbox MoveTutor_Text_RolloutWhichMon, MSGBOX_DEFAULT setvar VAR_0x8005, TUTOR_MOVE_ROLLOUT call MoveTutor_EventScript_OpenPartyMenu - compare VAR_RESULT, 0 - goto_if_eq MoveTutor_EventScript_RolloutDeclined + goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_RolloutDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_ROLLOUT goto MoveTutor_EventScript_RolloutTaught end @@ -61,16 +55,13 @@ VerdanturfTown_PokemonCenter_1F_EventScript_FuryCutterTutor:: faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_FURY_CUTTER, MoveTutor_EventScript_FuryCutterTaught msgbox MoveTutor_Text_FuryCutterTeach, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_FuryCutterDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_FuryCutterDeclined call MoveTutor_EventScript_CanOnlyBeLearnedOnce - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_FuryCutterDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_FuryCutterDeclined msgbox MoveTutor_Text_FuryCutterWhichMon, MSGBOX_DEFAULT setvar VAR_0x8005, TUTOR_MOVE_FURY_CUTTER call MoveTutor_EventScript_OpenPartyMenu - compare VAR_RESULT, 0 - goto_if_eq MoveTutor_EventScript_FuryCutterDeclined + goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_FuryCutterDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_FURY_CUTTER goto MoveTutor_EventScript_FuryCutterTaught end @@ -90,16 +81,13 @@ LavaridgeTown_House_EventScript_MimicTutor:: faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_MIMIC, MoveTutor_EventScript_MimicTaught msgbox MoveTutor_MimicTeach, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_MimicDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_MimicDeclined call MoveTutor_EventScript_CanOnlyBeLearnedOnce - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_MimicDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_MimicDeclined msgbox MoveTutor_Text_MimicWhichMon, MSGBOX_DEFAULT setvar VAR_0x8005, TUTOR_MOVE_MIMIC call MoveTutor_EventScript_OpenPartyMenu - compare VAR_RESULT, 0 - goto_if_eq MoveTutor_EventScript_MimicDeclined + goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_MimicDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_MIMIC goto MoveTutor_EventScript_MimicTaught end @@ -119,16 +107,13 @@ FallarborTown_Mart_EventScript_MetronomeTutor:: faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_METRONOME, MoveTutor_EventScript_MetronomeTaught msgbox MoveTutor_Text_MetronomeTeach, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_MetronomeDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_MetronomeDeclined call MoveTutor_EventScript_CanOnlyBeLearnedOnce - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_MetronomeDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_MetronomeDeclined msgbox MoveTutor_Text_MetronomeWhichMon, MSGBOX_DEFAULT setvar VAR_0x8005, TUTOR_MOVE_METRONOME call MoveTutor_EventScript_OpenPartyMenu - compare VAR_RESULT, 0 - goto_if_eq MoveTutor_EventScript_MetronomeDeclined + goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_MetronomeDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_METRONOME goto MoveTutor_EventScript_MetronomeTaught end @@ -148,16 +133,13 @@ FortreeCity_House2_EventScript_SleepTalkTutor:: faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_SLEEP_TALK, MoveTutor_EventScript_SleepTalkTaught msgbox MoveTutor_Text_SleepTalkTeach, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_SleepTalkDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_SleepTalkDeclined call MoveTutor_EventScript_CanOnlyBeLearnedOnce - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_SleepTalkDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_SleepTalkDeclined msgbox MoveTutor_Text_SleepTalkWhichMon, MSGBOX_DEFAULT setvar VAR_0x8005, TUTOR_MOVE_SLEEP_TALK call MoveTutor_EventScript_OpenPartyMenu - compare VAR_RESULT, 0 - goto_if_eq MoveTutor_EventScript_SleepTalkDeclined + goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_SleepTalkDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_SLEEP_TALK goto MoveTutor_EventScript_SleepTalkTaught end @@ -177,16 +159,13 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_SubstituteTutor:: faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_SUBSTITUTE, MoveTutor_EventScript_SubstituteTaught msgbox MoveTutor_Text_SubstituteTeach, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_SubstituteDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_SubstituteDeclined call MoveTutor_EventScript_CanOnlyBeLearnedOnce - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_SubstituteDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_SubstituteDeclined msgbox MoveTutor_Text_SubstituteWhichMon, MSGBOX_DEFAULT setvar VAR_0x8005, TUTOR_MOVE_SUBSTITUTE call MoveTutor_EventScript_OpenPartyMenu - compare VAR_RESULT, 0 - goto_if_eq MoveTutor_EventScript_SubstituteDeclined + goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_SubstituteDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_SUBSTITUTE goto MoveTutor_EventScript_SubstituteTaught end @@ -206,16 +185,13 @@ MossdeepCity_EventScript_DynamicPunchTutor:: faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_DYNAMICPUNCH, MoveTutor_EventScript_DynamicPunchTaught msgbox MoveTutor_Text_DynamicPunchTeach, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_DynamicPunchDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_DynamicPunchDeclined call MoveTutor_EventScript_CanOnlyBeLearnedOnce - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_DynamicPunchDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_DynamicPunchDeclined msgbox MoveTutor_Text_DynamicPunchWhichMon, MSGBOX_DEFAULT setvar VAR_0x8005, TUTOR_MOVE_DYNAMIC_PUNCH call MoveTutor_EventScript_OpenPartyMenu - compare VAR_RESULT, 0 - goto_if_eq MoveTutor_EventScript_DynamicPunchDeclined + goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_DynamicPunchDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_DYNAMICPUNCH goto MoveTutor_EventScript_DynamicPunchTaught end @@ -235,16 +211,13 @@ SootopolisCity_PokemonCenter_1F_EventScript_DoubleEdgeTutor:: faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_DOUBLE_EDGE, MoveTutor_EventScript_DoubleEdgeTaught msgbox MoveTutor_Text_DoubleEdgeTeach, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_DoubleEdgeDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_DoubleEdgeDeclined call MoveTutor_EventScript_CanOnlyBeLearnedOnce - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_DoubleEdgeDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_DoubleEdgeDeclined msgbox MoveTutor_Text_DoubleEdgeWhichMon, MSGBOX_DEFAULT setvar VAR_0x8005, TUTOR_MOVE_DOUBLE_EDGE call MoveTutor_EventScript_OpenPartyMenu - compare VAR_RESULT, 0 - goto_if_eq MoveTutor_EventScript_DoubleEdgeDeclined + goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_DoubleEdgeDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_DOUBLE_EDGE goto MoveTutor_EventScript_DoubleEdgeTaught end @@ -264,16 +237,13 @@ PacifidlogTown_PokemonCenter_1F_EventScript_ExplosionTutor:: faceplayer goto_if_set FLAG_MOVE_TUTOR_TAUGHT_EXPLOSION, MoveTutor_EventScript_ExplosionTaught msgbox MoveTutor_Text_ExplosionTeach, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_ExplosionDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_ExplosionDeclined call MoveTutor_EventScript_CanOnlyBeLearnedOnce - compare VAR_RESULT, NO - goto_if_eq MoveTutor_EventScript_ExplosionDeclined + goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_ExplosionDeclined msgbox MoveTutor_Text_ExplosionWhichMon, MSGBOX_DEFAULT setvar VAR_0x8005, TUTOR_MOVE_EXPLOSION call MoveTutor_EventScript_OpenPartyMenu - compare VAR_RESULT, 0 - goto_if_eq MoveTutor_EventScript_ExplosionDeclined + goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_ExplosionDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_EXPLOSION goto MoveTutor_EventScript_ExplosionTaught end diff --git a/data/scripts/obtain_item.inc b/data/scripts/obtain_item.inc index 382f5ce320..e982858e7b 100644 --- a/data/scripts/obtain_item.inc +++ b/data/scripts/obtain_item.inc @@ -1,67 +1,63 @@ +.set ITEMID, VAR_0x8000 +.set AMOUNT, VAR_0x8001 + Std_ObtainItem:: - additem VAR_0x8000, VAR_0x8001 + additem ITEMID, AMOUNT copyvar VAR_0x8007, VAR_RESULT call EventScript_ObtainItemMessage return EventScript_ObtainItemMessage:: - bufferitemnameplural 1, VAR_0x8000, VAR_0x8001 - checkitemtype VAR_0x8000 + bufferitemnameplural STR_VAR_2, ITEMID, AMOUNT + checkitemtype ITEMID call EventScript_BufferPocketNameAndTryFanfare - compare VAR_0x8007, 1 - call_if_eq EventScript_ObtainedItem - compare VAR_0x8007, 0 - call_if_eq EventScript_NoRoomForItem + call_if_eq VAR_0x8007, TRUE, EventScript_ObtainedItem + call_if_eq VAR_0x8007, FALSE, EventScript_NoRoomForItem return EventScript_BufferPocketNameAndTryFanfare:: switch VAR_RESULT - case POCKET_ITEMS, EventScript_BufferItemsPocket - case POCKET_KEY_ITEMS, EventScript_BufferKeyItemsPocket + case POCKET_ITEMS, EventScript_BufferItemsPocket + case POCKET_KEY_ITEMS, EventScript_BufferKeyItemsPocket case POCKET_POKE_BALLS, EventScript_BufferPokeballsPocket - case POCKET_TM_HM, EventScript_BufferTMHMsPocket - case POCKET_BERRIES, EventScript_BufferBerriesPocket + case POCKET_TM_HM, EventScript_BufferTMHMsPocket + case POCKET_BERRIES, EventScript_BufferBerriesPocket end EventScript_BufferItemsPocket:: - bufferstdstring 2, STDSTRING_ITEMS - compare VAR_0x8007, 1 - call_if_eq EventScript_PlayFanfareObtainedItem + bufferstdstring STR_VAR_3, STDSTRING_ITEMS + call_if_eq VAR_0x8007, TRUE, EventScript_PlayFanfareObtainedItem return EventScript_BufferKeyItemsPocket:: - bufferstdstring 2, STDSTRING_KEYITEMS - compare VAR_0x8007, 1 - call_if_eq EventScript_PlayFanfareObtainedItem + bufferstdstring STR_VAR_3, STDSTRING_KEYITEMS + call_if_eq VAR_0x8007, TRUE, EventScript_PlayFanfareObtainedItem return EventScript_BufferPokeballsPocket:: - bufferstdstring 2, STDSTRING_POKEBALLS - compare VAR_0x8007, 1 - call_if_eq EventScript_PlayFanfareObtainedItem + bufferstdstring STR_VAR_3, STDSTRING_POKEBALLS + call_if_eq VAR_0x8007, TRUE, EventScript_PlayFanfareObtainedItem return EventScript_BufferTMHMsPocket:: - bufferstdstring 2, STDSTRING_TMHMS - compare VAR_0x8007, 1 - call_if_eq EventScript_PlayFanfareObtainedTMHM + bufferstdstring STR_VAR_3, STDSTRING_TMHMS + call_if_eq VAR_0x8007, TRUE, EventScript_PlayFanfareObtainedTMHM return EventScript_BufferBerriesPocket:: - bufferstdstring 2, STDSTRING_BERRIES - compare VAR_0x8007, 1 - call_if_eq EventScript_PlayFanfareObtainedItem + bufferstdstring STR_VAR_3, STDSTRING_BERRIES + call_if_eq VAR_0x8007, TRUE, EventScript_PlayFanfareObtainedItem return EventScript_ObtainedItem:: message gText_ObtainedTheItem waitfanfare msgbox gText_PutItemInPocket, MSGBOX_DEFAULT - setvar VAR_RESULT, 1 + setvar VAR_RESULT, TRUE return EventScript_NoRoomForItem:: - setvar VAR_RESULT, 0 + setvar VAR_RESULT, FALSE return EventScript_PlayFanfareObtainedItem:: @@ -73,17 +69,15 @@ EventScript_PlayFanfareObtainedTMHM:: return Std_ObtainDecoration:: - adddecoration VAR_0x8000 + adddecoration ITEMID copyvar VAR_0x8007, VAR_RESULT call EventScript_ObtainDecorationMessage return EventScript_ObtainDecorationMessage:: - bufferdecorationname 1, VAR_0x8000 - compare VAR_0x8007, 1 - call_if_eq EventScript_ObtainedDecor - compare VAR_0x8007, 0 - call_if_eq EventScript_NoRoomForDecor + bufferdecorationname STR_VAR_2, ITEMID + call_if_eq VAR_0x8007, TRUE, EventScript_ObtainedDecor + call_if_eq VAR_0x8007, FALSE, EventScript_NoRoomForDecor return EventScript_ObtainedDecor:: @@ -91,28 +85,26 @@ EventScript_ObtainedDecor:: message gText_ObtainedTheDecor waitfanfare msgbox gText_TheDecorWasTransferredToThePC, MSGBOX_DEFAULT - setvar VAR_RESULT, 1 + setvar VAR_RESULT, TRUE return EventScript_NoRoomForDecor:: - setvar VAR_RESULT, 0 + setvar VAR_RESULT, FALSE return Std_FindItem:: lock faceplayer waitse - copyvar VAR_0x8004, VAR_0x8000 - copyvar VAR_0x8005, VAR_0x8001 - checkitemspace VAR_0x8000, VAR_0x8001 + copyvar VAR_0x8004, ITEMID + copyvar VAR_0x8005, AMOUNT + checkitemspace ITEMID, AMOUNT copyvar VAR_0x8007, VAR_RESULT - bufferitemnameplural 1, VAR_0x8000, VAR_0x8001 - checkitemtype VAR_0x8000 + bufferitemnameplural STR_VAR_2, ITEMID, AMOUNT + checkitemtype ITEMID call EventScript_BufferPocketNameAndTryFanfare - compare VAR_0x8007, 1 - call_if_eq EventScript_PickUpItem - compare VAR_0x8007, 0 - call_if_eq EventScript_NoRoomToPickUpItem + call_if_eq VAR_0x8007, TRUE, EventScript_PickUpItem + call_if_eq VAR_0x8007, FALSE, EventScript_NoRoomToPickUpItem release return @@ -121,16 +113,13 @@ EventScript_PickUpItem:: additem VAR_0x8004, VAR_0x8005 specialvar VAR_RESULT, BufferTMHMMoveName copyvar VAR_0x8008, VAR_RESULT - compare VAR_0x8008, 1 - call_if_eq EventScript_FoundTMHM - compare VAR_0x8008, 0 - call_if_eq EventScript_FoundItem + call_if_eq VAR_0x8008, TRUE, EventScript_FoundTMHM + call_if_eq VAR_0x8008, FALSE, EventScript_FoundItem waitfanfare waitmessage - bufferitemnameplural 1, VAR_0x8004, VAR_0x8005 + bufferitemnameplural STR_VAR_2, VAR_0x8004, VAR_0x8005 pyramid_inchallenge - compare VAR_RESULT, 1 - goto_if_eq EventScript_PutBattlePyramidItemInBag + goto_if_eq VAR_RESULT, TRUE, EventScript_PutBattlePyramidItemInBag msgbox gText_PutItemInPocket, MSGBOX_DEFAULT return @@ -139,7 +128,7 @@ EventScript_PutBattlePyramidItemInBag:: return EventScript_FoundTMHM:: - bufferitemnameplural 0, VAR_0x8004, VAR_0x8005 + bufferitemnameplural STR_VAR_1, VAR_0x8004, VAR_0x8005 message gText_PlayerFoundOneTMHM return @@ -150,7 +139,7 @@ EventScript_FoundItem:: EventScript_NoRoomToPickUpItem:: msgbox gText_ObtainedTheItem, MSGBOX_DEFAULT msgbox gText_TooBadBagIsFull, MSGBOX_DEFAULT - setvar VAR_RESULT, 0 + setvar VAR_RESULT, FALSE return EventScript_HiddenItemScript:: @@ -158,27 +147,23 @@ EventScript_HiddenItemScript:: waitse additem VAR_0x8005 copyvar VAR_0x8007, VAR_RESULT - bufferitemnameplural 1, VAR_0x8005, 1 + bufferitemnameplural STR_VAR_2, VAR_0x8005, 1 checkitemtype VAR_0x8005 call EventScript_BufferPocketNameAndTryFanfare - compare VAR_0x8007, 1 - goto_if_eq EventScript_PickUpHiddenItem - compare VAR_0x8007, 0 - goto_if_eq EventScript_NoRoomForHiddenItem + goto_if_eq VAR_0x8007, TRUE, EventScript_PickUpHiddenItem + goto_if_eq VAR_0x8007, FALSE, EventScript_NoRoomForHiddenItem end EventScript_PickUpHiddenItem:: copyvar VAR_0x8008, VAR_0x8004 copyvar VAR_0x8004, VAR_0x8005 specialvar VAR_RESULT, BufferTMHMMoveName - compare VAR_RESULT, 1 - goto_if_eq EventScript_FoundHiddenTMHM - compare VAR_RESULT, 0 - goto_if_eq EventScript_FoundHiddenItem + goto_if_eq VAR_RESULT, TRUE, EventScript_FoundHiddenTMHM + goto_if_eq VAR_RESULT, FALSE, EventScript_FoundHiddenItem end EventScript_FoundHiddenTMHM:: - bufferitemnameplural 0, VAR_0x8004, 1 + bufferitemnameplural STR_VAR_1, VAR_0x8004, 1 message gText_PlayerFoundOneTMHM goto EventScript_PutHiddenItemInPocket end @@ -191,7 +176,7 @@ EventScript_FoundHiddenItem:: EventScript_PutHiddenItemInPocket:: waitmessage waitfanfare - bufferitemnameplural 1, VAR_0x8004, 1 + bufferitemnameplural STR_VAR_2, VAR_0x8004, 1 copyvar VAR_0x8004, VAR_0x8008 msgbox gText_PutItemInPocket, MSGBOX_DEFAULT special TryPutTreasureInvestigatorsOnAir diff --git a/data/scripts/pc.inc b/data/scripts/pc.inc index 43c0bca0d7..1993aaf63f 100644 --- a/data/scripts/pc.inc +++ b/data/scripts/pc.inc @@ -1,6 +1,6 @@ EventScript_PC:: lockall - setvar VAR_0x8004, 0 + setvar VAR_0x8004, PC_LOCATION_OTHER special DoPCTurnOnEffect playse SE_PC_ON msgbox Text_BootUpPC, MSGBOX_DEFAULT @@ -51,7 +51,7 @@ EventScript_AccessLanettesPC:: return EventScript_TurnOffPC:: - setvar VAR_0x8004, 0 + setvar VAR_0x8004, PC_LOCATION_OTHER playse SE_PC_OFF special DoPCTurnOffEffect releaseall diff --git a/data/scripts/pc_transfer.inc b/data/scripts/pc_transfer.inc index 1fe575d551..1204bece36 100644 --- a/data/scripts/pc_transfer.inc +++ b/data/scripts/pc_transfer.inc @@ -14,35 +14,33 @@ Common_EventScript_NameReceivedBoxMon:: return Common_EventScript_TransferredToPC:: - bufferboxname 0, VAR_PC_BOX_TO_SEND_MON - bufferspeciesname 1, VAR_TEMP_1 + bufferboxname STR_VAR_1, VAR_PC_BOX_TO_SEND_MON + bufferspeciesname STR_VAR_2, VAR_TEMP_1 call_if_unset FLAG_SYS_PC_LANETTE, EventScript_TransferredSomeonesPC call_if_set FLAG_SYS_PC_LANETTE, EventScript_TransferredLanettesPC return EventScript_TransferredSomeonesPC:: specialvar VAR_RESULT, ShouldShowBoxWasFullMessage - compare VAR_RESULT, 1 - goto_if_eq EventScript_SomeonesPCBoxFull + goto_if_eq VAR_RESULT, TRUE, EventScript_SomeonesPCBoxFull msgbox gText_PkmnTransferredSomeonesPC, MSGBOX_DEFAULT return EventScript_SomeonesPCBoxFull:: specialvar VAR_RESULT, GetPCBoxToSendMon - bufferboxname 2, VAR_RESULT + bufferboxname STR_VAR_3, VAR_RESULT msgbox gText_PkmnTransferredSomeonesPCBoxFull, MSGBOX_DEFAULT return EventScript_TransferredLanettesPC:: specialvar VAR_RESULT, ShouldShowBoxWasFullMessage - compare VAR_RESULT, TRUE - goto_if_eq EventScript_LanettesPCBoxFull + goto_if_eq VAR_RESULT, TRUE, EventScript_LanettesPCBoxFull msgbox gText_PkmnTransferredLanettesPC, MSGBOX_DEFAULT return EventScript_LanettesPCBoxFull:: specialvar VAR_RESULT, GetPCBoxToSendMon - bufferboxname 2, VAR_RESULT + bufferboxname STR_VAR_3, VAR_RESULT msgbox gText_PkmnTransferredLanettesPCBoxFull, MSGBOX_DEFAULT return diff --git a/data/scripts/pkmn_center_nurse.inc b/data/scripts/pkmn_center_nurse.inc index 21f2abe0a2..64ccdfa77e 100644 --- a/data/scripts/pkmn_center_nurse.inc +++ b/data/scripts/pkmn_center_nurse.inc @@ -1,135 +1,122 @@ Common_EventScript_PkmnCenterNurse:: - lock - faceplayer - setvar VAR_0x8004, 0 - specialvar VAR_RESULT, CountPlayerTrainerStars - compare VAR_RESULT, 4 - goto_if_eq EventScript_PkmnCenterNurse_GoldCard - msgbox gText_WouldYouLikeToRestYourPkmn, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq EventScript_PkmnCenterNurse_HealPkmn - compare VAR_RESULT, NO - goto_if_eq EventScript_PkmnCenterNurse_Goodbye - end + lock + faceplayer + setvar VAR_0x8004, 0 + specialvar VAR_RESULT, CountPlayerTrainerStars + goto_if_eq VAR_RESULT, 4, EventScript_PkmnCenterNurse_GoldCard + msgbox gText_WouldYouLikeToRestYourPkmn, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, EventScript_PkmnCenterNurse_HealPkmn + goto_if_eq VAR_RESULT, NO, EventScript_PkmnCenterNurse_Goodbye + end EventScript_PkmnCenterNurse_Goodbye:: - message gText_WeHopeToSeeYouAgain - return + message gText_WeHopeToSeeYouAgain + return @ VAR_0x8004 is 1 when player has Gold Card; jumps are identical EventScript_PkmnCenterNurse_HealPkmn:: - incrementgamestat GAME_STAT_USED_POKECENTER - compare VAR_0x8004, 0 - call_if_eq EventScript_PkmnCenterNurse_IllTakeYourPkmn - compare VAR_0x8004, 1 - call_if_eq EventScript_PkmnCenterNurse_IllTakeYourPkmn2 - waitmessage - call EventScript_PkmnCenterNurse_TakeAndHealPkmn - goto_if_unset FLAG_POKERUS_EXPLAINED, EventScript_PkmnCenterNurse_CheckPokerus - goto EventScript_PkmnCenterNurse_CheckTrainerHillAndUnionRoom - end + incrementgamestat GAME_STAT_USED_POKECENTER + call_if_eq VAR_0x8004, 0, EventScript_PkmnCenterNurse_IllTakeYourPkmn + call_if_eq VAR_0x8004, 1, EventScript_PkmnCenterNurse_IllTakeYourPkmn2 + waitmessage + call EventScript_PkmnCenterNurse_TakeAndHealPkmn + goto_if_unset FLAG_POKERUS_EXPLAINED, EventScript_PkmnCenterNurse_CheckPokerus + goto EventScript_PkmnCenterNurse_CheckTrainerHillAndUnionRoom + end EventScript_PkmnCenterNurse_IllTakeYourPkmn:: - message gText_IllTakeYourPkmn - return + message gText_IllTakeYourPkmn + return EventScript_PkmnCenterNurse_IllTakeYourPkmn2:: - message gText_IllTakeYourPkmn2 - return + message gText_IllTakeYourPkmn2 + return EventScript_PkmnCenterNurse_TakeAndHealPkmn:: - applymovement VAR_0x800B, Common_Movement_WalkInPlaceFasterLeft - waitmovement 0 - dofieldeffect FLDEFF_POKECENTER_HEAL - waitfieldeffect FLDEFF_POKECENTER_HEAL - applymovement VAR_0x800B, Common_Movement_WalkInPlaceFasterDown - waitmovement 0 - special HealPlayerParty - return + applymovement VAR_0x800B, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + dofieldeffect FLDEFF_POKECENTER_HEAL + waitfieldeffect FLDEFF_POKECENTER_HEAL + applymovement VAR_0x800B, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + special HealPlayerParty + return EventScript_PkmnCenterNurse_CheckTrainerHillAndUnionRoom:: - specialvar VAR_RESULT, PlayerNotAtTrainerHillEntrance - compare VAR_RESULT, 0 - goto_if_eq EventScript_PkmnCenterNurse_ReturnPkmn - specialvar VAR_RESULT, BufferUnionRoomPlayerName - copyvar VAR_0x8008, VAR_RESULT - compare VAR_0x8008, 0 - goto_if_eq EventScript_PkmnCenterNurse_ReturnPkmn - compare VAR_0x8008, 1 - goto_if_eq EventScript_PkmnCenterNurse_PlayerWaitingInUnionRoom - end + specialvar VAR_RESULT, PlayerNotAtTrainerHillEntrance + goto_if_eq VAR_RESULT, 0, EventScript_PkmnCenterNurse_ReturnPkmn + specialvar VAR_RESULT, BufferUnionRoomPlayerName + copyvar VAR_0x8008, VAR_RESULT + goto_if_eq VAR_0x8008, 0, EventScript_PkmnCenterNurse_ReturnPkmn + goto_if_eq VAR_0x8008, 1, EventScript_PkmnCenterNurse_PlayerWaitingInUnionRoom + end @ VAR_0x8004 is 1 when player has Gold Card EventScript_PkmnCenterNurse_ReturnPkmn:: - compare VAR_0x8004, 1 - goto_if_eq EventScript_PkmnCenterNurse_ReturnPkmn2 - message gText_RestoredPkmnToFullHealth - waitmessage - applymovement VAR_0x800B, Movement_PkmnCenterNurse_Bow - waitmovement 0 - message gText_WeHopeToSeeYouAgain - return + goto_if_eq VAR_0x8004, 1, EventScript_PkmnCenterNurse_ReturnPkmn2 + message gText_RestoredPkmnToFullHealth + waitmessage + applymovement VAR_0x800B, Movement_PkmnCenterNurse_Bow + waitmovement 0 + message gText_WeHopeToSeeYouAgain + return EventScript_PkmnCenterNurse_ReturnPkmn2:: - message gText_ThankYouForWaiting - waitmessage - applymovement VAR_0x800B, Movement_PkmnCenterNurse_Bow - waitmovement 0 - message gText_WeHopeToSeeYouAgain2 - return + message gText_ThankYouForWaiting + waitmessage + applymovement VAR_0x800B, Movement_PkmnCenterNurse_Bow + waitmovement 0 + message gText_WeHopeToSeeYouAgain2 + return EventScript_PkmnCenterNurse_PlayerWaitingInUnionRoom:: - goto_if_set FLAG_NURSE_UNION_ROOM_REMINDER, EventScript_PkmnCenterNurse_ReturnPkmn - msgbox gText_RestoredPkmnToFullHealth, MSGBOX_DEFAULT - setflag FLAG_NURSE_UNION_ROOM_REMINDER - message CableClub_Text_PlayerIsWaiting - waitmessage - applymovement VAR_0x800B, Movement_PkmnCenterNurse_Bow - waitmovement 0 - message gText_WeHopeToSeeYouAgain - return + goto_if_set FLAG_NURSE_UNION_ROOM_REMINDER, EventScript_PkmnCenterNurse_ReturnPkmn + msgbox gText_RestoredPkmnToFullHealth, MSGBOX_DEFAULT + setflag FLAG_NURSE_UNION_ROOM_REMINDER + message CableClub_Text_PlayerIsWaiting + waitmessage + applymovement VAR_0x800B, Movement_PkmnCenterNurse_Bow + waitmovement 0 + message gText_WeHopeToSeeYouAgain + return EventScript_PkmnCenterNurse_CheckPokerus:: - specialvar VAR_RESULT, IsPokerusInParty - compare VAR_RESULT, TRUE - goto_if_eq EventScript_PkmnCenterNurse_ExplainPokerus - compare VAR_RESULT, FALSE - goto_if_eq EventScript_PkmnCenterNurse_CheckTrainerHillAndUnionRoom - end + specialvar VAR_RESULT, IsPokerusInParty + goto_if_eq VAR_RESULT, TRUE, EventScript_PkmnCenterNurse_ExplainPokerus + goto_if_eq VAR_RESULT, FALSE, EventScript_PkmnCenterNurse_CheckTrainerHillAndUnionRoom + end EventScript_PkmnCenterNurse_ExplainPokerus:: - message gText_PokerusExplanation - setflag FLAG_POKERUS_EXPLAINED - return + message gText_PokerusExplanation + setflag FLAG_POKERUS_EXPLAINED + return EventScript_PkmnCenterNurse_GoldCard:: - goto_if_set FLAG_NURSE_MENTIONS_GOLD_CARD, EventScript_PkmnCenterNurse_AskForUsual - setflag FLAG_NURSE_MENTIONS_GOLD_CARD - msgbox gText_WelcomeCutShort, MSGBOX_DEFAULT - playse SE_PIN - applymovement VAR_0x800B, Common_Movement_ExclamationMark - waitmovement 0 - applymovement VAR_0x800B, Common_Movement_Delay48 - waitmovement 0 - msgbox gText_NoticesGoldCard, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq EventScript_PkmnCenterNurse_GoldCardHealPkmn - message gText_WeHopeToSeeYouAgain2 - return + goto_if_set FLAG_NURSE_MENTIONS_GOLD_CARD, EventScript_PkmnCenterNurse_AskForUsual + setflag FLAG_NURSE_MENTIONS_GOLD_CARD + msgbox gText_WelcomeCutShort, MSGBOX_DEFAULT + playse SE_PIN + applymovement VAR_0x800B, Common_Movement_ExclamationMark + waitmovement 0 + applymovement VAR_0x800B, Common_Movement_Delay48 + waitmovement 0 + msgbox gText_NoticesGoldCard, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, EventScript_PkmnCenterNurse_GoldCardHealPkmn + message gText_WeHopeToSeeYouAgain2 + return EventScript_PkmnCenterNurse_AskForUsual:: - msgbox gText_YouWantTheUsual, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq EventScript_PkmnCenterNurse_GoldCardHealPkmn - message gText_WeHopeToSeeYouAgain2 - return + msgbox gText_YouWantTheUsual, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, EventScript_PkmnCenterNurse_GoldCardHealPkmn + message gText_WeHopeToSeeYouAgain2 + return EventScript_PkmnCenterNurse_GoldCardHealPkmn:: - setvar VAR_0x8004, 1 - goto EventScript_PkmnCenterNurse_HealPkmn - end + setvar VAR_0x8004, 1 + goto EventScript_PkmnCenterNurse_HealPkmn + end Movement_PkmnCenterNurse_Bow: - nurse_joy_bow - delay_4 - step_end + nurse_joy_bow + delay_4 + step_end diff --git a/data/scripts/players_house.inc b/data/scripts/players_house.inc index e2e985a7a1..caa4e69551 100644 --- a/data/scripts/players_house.inc +++ b/data/scripts/players_house.inc @@ -11,10 +11,8 @@ PlayersHouse_1F_EventScript_EnterHouseMovingIn:: msgbox PlayersHouse_1F_Text_IsntItNiceInHere, MSGBOX_DEFAULT applymovement VAR_0x8004, Common_Movement_FacePlayer waitmovement 0 - compare VAR_0x8005, MALE - call_if_eq PlayersHouse_1F_EventScript_MomFacePlayerMovingInMale - compare VAR_0x8005, FEMALE - call_if_eq PlayersHouse_1F_EventScript_MomFacePlayerMovingInFemale + call_if_eq VAR_0x8005, MALE, PlayersHouse_1F_EventScript_MomFacePlayerMovingInMale + call_if_eq VAR_0x8005, FEMALE, PlayersHouse_1F_EventScript_MomFacePlayerMovingInFemale msgbox PlayersHouse_1F_Text_MoversPokemonGoSetClock, MSGBOX_DEFAULT closemessage setvar VAR_LITTLEROOT_INTRO_STATE, 4 @@ -69,10 +67,8 @@ PlayersHouse_2F_EventScript_WallClock:: setflag FLAG_HIDE_LITTLEROOT_TOWN_PLAYERS_HOUSE_VIGOROTH_1 setflag FLAG_HIDE_LITTLEROOT_TOWN_PLAYERS_HOUSE_VIGOROTH_2 checkplayergender - compare VAR_RESULT, MALE - call_if_eq PlayersHouse_2F_EventScript_MomComesUpstairsMale - compare VAR_RESULT, FEMALE - call_if_eq PlayersHouse_2F_EventScript_MomComesUpstairsFemale + call_if_eq VAR_RESULT, MALE, PlayersHouse_2F_EventScript_MomComesUpstairsMale + call_if_eq VAR_RESULT, FEMALE, PlayersHouse_2F_EventScript_MomComesUpstairsFemale playse SE_EXIT removeobject VAR_0x8008 releaseall @@ -310,16 +306,12 @@ PlayersHouse_1F_Movement_MomReturnToSeatFemale: PlayersHouse_1F_EventScript_Mom:: lock faceplayer - compare VAR_LITTLEROOT_HOUSES_STATE_MAY, 4 - goto_if_eq PlayersHouse_1F_EventScript_DontPushYourselfTooHard - compare VAR_LITTLEROOT_HOUSES_STATE_BRENDAN, 4 - goto_if_eq PlayersHouse_1F_EventScript_DontPushYourselfTooHard + goto_if_eq VAR_LITTLEROOT_HOUSES_STATE_MAY, 4, PlayersHouse_1F_EventScript_DontPushYourselfTooHard + goto_if_eq VAR_LITTLEROOT_HOUSES_STATE_BRENDAN, 4, PlayersHouse_1F_EventScript_DontPushYourselfTooHard goto_if_set FLAG_HAS_MATCH_CALL, PlayersHouse_1F_EventScript_TryRegisterMom goto_if_set FLAG_RESCUED_BIRCH, PlayersHouse_1F_EventScript_MomHealsParty - compare VAR_TEMP_1, 1 - goto_if_eq PlayersHouse_1F_EventScript_SeeYouHoney - compare VAR_LITTLEROOT_INTRO_STATE, 7 - goto_if_eq PlayersHouse_1F_EventScript_DidYouMeetProfBirch + goto_if_eq VAR_TEMP_1, 1, PlayersHouse_1F_EventScript_SeeYouHoney + goto_if_eq VAR_LITTLEROOT_INTRO_STATE, 7, PlayersHouse_1F_EventScript_DidYouMeetProfBirch msgbox PlayersHouse_1F_Text_IsntItNiceInHere, MSGBOX_DEFAULT release end @@ -351,8 +343,7 @@ PlayersHouse_1F_EventScript_TryGiveAmuletCoin:: goto_if_set FLAG_RECEIVED_AMULET_COIN, PlayersHouse_1F_EventScript_MomHealsParty msgbox PlayersHouse_1F_Text_GotDadsBadgeHeresSomethingFromMom, MSGBOX_DEFAULT giveitem ITEM_AMULET_COIN - compare VAR_RESULT, FALSE - goto_if_eq Common_EventScript_ShowBagIsFull + goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull msgbox PlayersHouse_1F_Text_DontPushYourselfTooHard, MSGBOX_DEFAULT setflag FLAG_RECEIVED_AMULET_COIN release @@ -432,14 +423,10 @@ PlayersHouse_1F_Movement_MovePlayerAwayFromDoor: PlayersHouse_1F_EventScript_GetSSTicketAndSeeLatiTV:: lockall checkplayergender - compare VAR_RESULT, MALE - call_if_eq PlayersHouse_1F_EventScript_SetUpObjectEventVarsMale - compare VAR_RESULT, FEMALE - call_if_eq PlayersHouse_1F_EventScript_SetUpObjectEventVarsFemale - compare VAR_0x8008, MALE - call_if_eq PlayersHouse_1F_EventScript_PlayerEnterRoomMale - compare VAR_0x8008, FEMALE - call_if_eq PlayersHouse_1F_EventScript_PlayerEnterRoomFemale + call_if_eq VAR_RESULT, MALE, PlayersHouse_1F_EventScript_SetUpObjectEventVarsMale + call_if_eq VAR_RESULT, FEMALE, PlayersHouse_1F_EventScript_SetUpObjectEventVarsFemale + call_if_eq VAR_0x8008, MALE, PlayersHouse_1F_EventScript_PlayerEnterRoomMale + call_if_eq VAR_0x8008, FEMALE, PlayersHouse_1F_EventScript_PlayerEnterRoomFemale applymovement VAR_0x8009, Common_Movement_FacePlayer waitmovement 0 playse SE_PIN @@ -448,58 +435,44 @@ PlayersHouse_1F_EventScript_GetSSTicketAndSeeLatiTV:: applymovement VAR_0x8009, Common_Movement_Delay48 waitmovement 0 delay 20 - compare VAR_0x8008, MALE - call_if_eq PlayersHouse_1F_EventScript_DadApproachPlayerMale - compare VAR_0x8008, FEMALE - call_if_eq PlayersHouse_1F_EventScript_DadApproachPlayerFemale + call_if_eq VAR_0x8008, MALE, PlayersHouse_1F_EventScript_DadApproachPlayerMale + call_if_eq VAR_0x8008, FEMALE, PlayersHouse_1F_EventScript_DadApproachPlayerFemale msgbox PlayersHouse_1F_Text_TicketFromBrineyCameForYou, MSGBOX_DEFAULT giveitem ITEM_SS_TICKET msgbox PlayersHouse_1F_Text_PortsInSlateportLilycove, MSGBOX_DEFAULT closemessage delay 20 - compare VAR_0x8008, MALE - call_if_eq PlayersHouse_1F_EventScript_MomApproachDadMale - compare VAR_0x8008, FEMALE - call_if_eq PlayersHouse_1F_EventScript_MomApproachDadFemale + call_if_eq VAR_0x8008, MALE, PlayersHouse_1F_EventScript_MomApproachDadMale + call_if_eq VAR_0x8008, FEMALE, PlayersHouse_1F_EventScript_MomApproachDadFemale msgbox PlayersHouse_1F_Text_BetterGetBackToGym, MSGBOX_DEFAULT closemessage - compare VAR_0x8008, MALE - call_if_eq PlayersHouse_1F_EventScript_DadExitsMale - compare VAR_0x8008, FEMALE - call_if_eq PlayersHouse_1F_EventScript_DadExitsFemale + call_if_eq VAR_0x8008, MALE, PlayersHouse_1F_EventScript_DadExitsMale + call_if_eq VAR_0x8008, FEMALE, PlayersHouse_1F_EventScript_DadExitsFemale playse SE_DOOR removeobject VAR_0x8009 setflag FLAG_RECEIVED_SS_TICKET delay 30 - compare VAR_0x8008, MALE - call_if_eq PlayersHouse_1F_EventScript_MomApproachPlayerMale - compare VAR_0x8008, FEMALE - call_if_eq PlayersHouse_1F_EventScript_MomApproachPlayerFemale + call_if_eq VAR_0x8008, MALE, PlayersHouse_1F_EventScript_MomApproachPlayerMale + call_if_eq VAR_0x8008, FEMALE, PlayersHouse_1F_EventScript_MomApproachPlayerFemale delay 20 msgbox PlayersHouse_1F_Text_DadShouldStayLonger, MSGBOX_DEFAULT closemessage setflag FLAG_SYS_TV_LATIAS_LATIOS special TurnOnTVScreen delay 60 - compare VAR_0x8008, MALE - call_if_eq PlayersHouse_1F_EventScript_MomNoticesLatiBroadcastMale - compare VAR_0x8008, FEMALE - call_if_eq PlayersHouse_1F_EventScript_MomNoticesLatiBroadcastFemale + call_if_eq VAR_0x8008, MALE, PlayersHouse_1F_EventScript_MomNoticesLatiBroadcastMale + call_if_eq VAR_0x8008, FEMALE, PlayersHouse_1F_EventScript_MomNoticesLatiBroadcastFemale msgbox PlayersHouse_1F_Text_IsThatABreakingStory, MSGBOX_DEFAULT closemessage - compare VAR_0x8008, MALE - call_if_eq PlayersHouse_1F_EventScript_PlayerApproachTVForLatiMale - compare VAR_0x8008, FEMALE - call_if_eq PlayersHouse_1F_EventScript_PlayerApproachTVForLatiFemale + call_if_eq VAR_0x8008, MALE, PlayersHouse_1F_EventScript_PlayerApproachTVForLatiMale + call_if_eq VAR_0x8008, FEMALE, PlayersHouse_1F_EventScript_PlayerApproachTVForLatiFemale msgbox PlayersHouse_1F_Text_LatiEmergencyNewsFlash, MSGBOX_DEFAULT closemessage clearflag FLAG_SYS_TV_LATIAS_LATIOS setflag FLAG_LATIOS_OR_LATIAS_ROAMING special TurnOffTVScreen - compare VAR_0x8008, MALE - call_if_eq PlayersHouse_1F_EventScript_MomApproachPlayerAfterTVMale - compare VAR_0x8008, FEMALE - call_if_eq PlayersHouse_1F_EventScript_MomApproachPlayerAfterTVFemale + call_if_eq VAR_0x8008, MALE, PlayersHouse_1F_EventScript_MomApproachPlayerAfterTVMale + call_if_eq VAR_0x8008, FEMALE, PlayersHouse_1F_EventScript_MomApproachPlayerAfterTVFemale msgbox PlayersHouse_1F_Text_WhatColorDidTheySay, MSGBOX_DEFAULT multichoice 22, 8, MULTI_TV_LATI, TRUE copyvar VAR_0x8004, VAR_RESULT diff --git a/data/scripts/prof_birch.inc b/data/scripts/prof_birch.inc index 7eb1730fcd..38a5dfec32 100644 --- a/data/scripts/prof_birch.inc +++ b/data/scripts/prof_birch.inc @@ -1,23 +1,14 @@ ProfBirch_EventScript_UpdateLocation:: - compare VAR_PETALBURG_GYM_STATE, 0 - goto_if_eq Common_EventScript_NopReturn + goto_if_eq VAR_PETALBURG_GYM_STATE, 0, Common_EventScript_NopReturn goto_if_set FLAG_SYS_GAME_CLEAR, ProfBirch_EventScript_MoveToLab - compare VAR_BIRCH_STATE, 0 - call_if_eq ProfBirch_EventScript_MoveToLab - compare VAR_BIRCH_STATE, 1 - call_if_eq ProfBirch_EventScript_MoveToLab - compare VAR_BIRCH_STATE, 2 - call_if_eq ProfBirch_EventScript_MoveToRoute101 - compare VAR_BIRCH_STATE, 3 - call_if_eq ProfBirch_EventScript_MoveToRoute101 - compare VAR_BIRCH_STATE, 4 - call_if_eq ProfBirch_EventScript_MoveToRoute103 - compare VAR_BIRCH_STATE, 5 - call_if_eq ProfBirch_EventScript_MoveToRoute103 - compare VAR_BIRCH_STATE, 6 - call_if_eq ProfBirch_EventScript_MoveToLab - compare VAR_BIRCH_STATE, 7 - call_if_eq ProfBirch_EventScript_MoveToLab + call_if_eq VAR_BIRCH_STATE, 0, ProfBirch_EventScript_MoveToLab + call_if_eq VAR_BIRCH_STATE, 1, ProfBirch_EventScript_MoveToLab + call_if_eq VAR_BIRCH_STATE, 2, ProfBirch_EventScript_MoveToRoute101 + call_if_eq VAR_BIRCH_STATE, 3, ProfBirch_EventScript_MoveToRoute101 + call_if_eq VAR_BIRCH_STATE, 4, ProfBirch_EventScript_MoveToRoute103 + call_if_eq VAR_BIRCH_STATE, 5, ProfBirch_EventScript_MoveToRoute103 + call_if_eq VAR_BIRCH_STATE, 6, ProfBirch_EventScript_MoveToLab + call_if_eq VAR_BIRCH_STATE, 7, ProfBirch_EventScript_MoveToLab return ProfBirch_EventScript_MoveToLab:: @@ -49,8 +40,7 @@ ProfBirch_EventScript_RatePokedexOrRegister:: ProfBirch_EventScript_AskRatePokedex:: msgbox gBirchDexRatingText_AreYouCurious, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq ProfBirch_EventScript_DeclineRating + goto_if_eq VAR_RESULT, NO, ProfBirch_EventScript_DeclineRating call ProfBirch_EventScript_RatePokedex release end @@ -73,17 +63,16 @@ ProfBirch_EventScript_RatePokedex:: copyvar VAR_0x8008, VAR_0x8005 copyvar VAR_0x8009, VAR_0x8006 copyvar VAR_0x800A, VAR_RESULT - buffernumberstring 0, VAR_0x8008 @ Num Hoenn seen - buffernumberstring 1, VAR_0x8009 @ Num Hoenn caught + buffernumberstring STR_VAR_1, VAR_0x8008 @ Num Hoenn seen + buffernumberstring STR_VAR_2, VAR_0x8009 @ Num Hoenn caught msgbox gBirchDexRatingText_SoYouveSeenAndCaught, MSGBOX_DEFAULT call ProfBirch_EventScript_ShowRatingMessage - compare VAR_0x800A, 0 - goto_if_eq Common_EventScript_NopReturn @ National dex not enabled + goto_if_eq VAR_0x800A, 0, Common_EventScript_NopReturn @ National dex not enabled setvar VAR_0x8004, 1 specialvar VAR_RESULT, ScriptGetPokedexInfo copyvar VAR_0x8008, VAR_0x8005 copyvar VAR_0x8009, VAR_0x8006 - buffernumberstring 0, VAR_0x8008 @ Num National seen - buffernumberstring 1, VAR_0x8009 @ Num National caught + buffernumberstring STR_VAR_1, VAR_0x8008 @ Num National seen + buffernumberstring STR_VAR_2, VAR_0x8009 @ Num National caught msgbox gBirchDexRatingText_OnANationwideBasis, MSGBOX_DEFAULT return diff --git a/data/scripts/profile_man.inc b/data/scripts/profile_man.inc index 2c5b16122c..4acf049bd8 100644 --- a/data/scripts/profile_man.inc +++ b/data/scripts/profile_man.inc @@ -28,10 +28,8 @@ ProfileMan_EventScript_CreateProfile:: call Common_ShowEasyChatScreen lock faceplayer - compare VAR_RESULT, 0 - goto_if_eq ProfileMan_EventScript_CancelShowProfile - compare VAR_RESULT, 1 - goto_if_eq ProfileMan_EventScript_ShowProfile + goto_if_eq VAR_RESULT, 0, ProfileMan_EventScript_CancelShowProfile + goto_if_eq VAR_RESULT, 1, ProfileMan_EventScript_ShowProfile end ProfileMan_EventScript_CancelShowProfile:: @@ -80,10 +78,8 @@ ProfileMan_EventScript_CreateNewProfile:: call Common_ShowEasyChatScreen lock faceplayer - compare VAR_RESULT, 0 - goto_if_eq ProfileMan_EventScript_CancelShowProfile - compare VAR_RESULT, 1 - goto_if_eq ProfileMan_EventScript_ShowProfile + goto_if_eq VAR_RESULT, 0, ProfileMan_EventScript_CancelShowProfile + goto_if_eq VAR_RESULT, 1, ProfileMan_EventScript_ShowProfile end ProfileMan_EventScript_DeclineNewProfile:: diff --git a/data/scripts/questionnaire.inc b/data/scripts/questionnaire.inc index 62e149bb78..849b25a46a 100644 --- a/data/scripts/questionnaire.inc +++ b/data/scripts/questionnaire.inc @@ -1,21 +1,16 @@ EventScript_Questionnaire:: lockall msgbox Questionnaire_Text_FillOut, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq Questionnaire_EventScript_Release + goto_if_eq VAR_RESULT, NO, Questionnaire_EventScript_Release setvar VAR_0x8004, EASY_CHAT_TYPE_QUESTIONNAIRE call Common_ShowEasyChatScreen lock faceplayer specialvar VAR_0x8008, GetMartEmployeeObjectEventId - compare VAR_0x8004, 1 - goto_if_eq Questionnaire_EventScript_PlayerInputMysteryEventPhrase - compare VAR_0x8004, 2 - goto_if_eq Questionnaire_EventScript_PlayerInputMysteryGiftPhrase - compare VAR_RESULT, 0 - goto_if_eq Questionnaire_EventScript_Release - compare VAR_RESULT, 1 - goto_if_eq Questionnaire_EventScript_ThankYou + goto_if_eq VAR_0x8004, 1, Questionnaire_EventScript_PlayerInputMysteryEventPhrase + goto_if_eq VAR_0x8004, 2, Questionnaire_EventScript_PlayerInputMysteryGiftPhrase + goto_if_eq VAR_RESULT, 0, Questionnaire_EventScript_Release + goto_if_eq VAR_RESULT, 1, Questionnaire_EventScript_ThankYou end Questionnaire_EventScript_PlayerInputMysteryEventPhrase:: diff --git a/data/scripts/record_mix.inc b/data/scripts/record_mix.inc index d1ad84d3a7..109fde2a80 100644 --- a/data/scripts/record_mix.inc +++ b/data/scripts/record_mix.inc @@ -3,10 +3,8 @@ EventScript_MixRecordsPrompt:: lock faceplayer msgbox Text_WouldYouLikeToMixRecords, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq EventScript_MixRecords - compare VAR_RESULT, NO - goto_if_eq EventScript_EndMixRecords + goto_if_eq VAR_RESULT, YES, EventScript_MixRecords + goto_if_eq VAR_RESULT, NO, EventScript_EndMixRecords goto EventScript_EndMixRecords EventScript_MixRecords:: diff --git a/data/scripts/rival_graphics.inc b/data/scripts/rival_graphics.inc index a0fb15f0e4..26a5c8fbcf 100644 --- a/data/scripts/rival_graphics.inc +++ b/data/scripts/rival_graphics.inc @@ -1,9 +1,7 @@ Common_EventScript_SetupRivalGfxId:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq EventScript_SetupRivalGfxIdFemale - compare VAR_RESULT, FEMALE - goto_if_eq EventScript_SetupRivalGfxIdMale + goto_if_eq VAR_RESULT, MALE, EventScript_SetupRivalGfxIdFemale + goto_if_eq VAR_RESULT, FEMALE, EventScript_SetupRivalGfxIdMale end EventScript_SetupRivalGfxIdFemale:: @@ -16,10 +14,8 @@ EventScript_SetupRivalGfxIdMale:: Common_EventScript_SetupRivalOnBikeGfxId:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq EventScript_SetupRivalOnBikeGfxIdFemale - compare VAR_RESULT, FEMALE - goto_if_eq EventScript_SetupRivalOnBikeGfxIdMale + goto_if_eq VAR_RESULT, MALE, EventScript_SetupRivalOnBikeGfxIdFemale + goto_if_eq VAR_RESULT, FEMALE, EventScript_SetupRivalOnBikeGfxIdMale end EventScript_SetupRivalOnBikeGfxIdFemale:: @@ -33,10 +29,8 @@ EventScript_SetupRivalOnBikeGfxIdMale:: @ Unused Common_EventScript_SetupRivalGfxIdSameGender:: checkplayergender - compare VAR_RESULT, MALE - goto_if_eq EventScript_SetupRivalGfxIdMale2 - compare VAR_RESULT, FEMALE - goto_if_eq EventScript_SetupRivalGfxIdFemale2 + goto_if_eq VAR_RESULT, MALE, EventScript_SetupRivalGfxIdMale2 + goto_if_eq VAR_RESULT, FEMALE, EventScript_SetupRivalGfxIdFemale2 end EventScript_SetupRivalGfxIdMale2:: diff --git a/data/scripts/roulette.inc b/data/scripts/roulette.inc index 1167a765bd..7163a449aa 100644 --- a/data/scripts/roulette.inc +++ b/data/scripts/roulette.inc @@ -1,23 +1,19 @@ Roulette_EventScript_Table1:: - checkitem ITEM_COIN_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoCoinCase + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 0 - getpricereduction POKENEWS_GAME_CORNER - compare VAR_RESULT, FALSE - goto_if_eq Roulette_EventScript_Play + getpokenewsactive POKENEWS_GAME_CORNER + goto_if_eq VAR_RESULT, FALSE, Roulette_EventScript_Play addvar VAR_0x8004, ROULETTE_SPECIAL_RATE goto Roulette_EventScript_Play end Roulette_EventScript_Table2:: - checkitem ITEM_COIN_CASE, 1 - compare VAR_RESULT, FALSE - goto_if_eq MauvilleCity_GameCorner_EventScript_NoCoinCase + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 1 - getpricereduction POKENEWS_GAME_CORNER - compare VAR_RESULT, FALSE - goto_if_eq Roulette_EventScript_Play + getpokenewsactive POKENEWS_GAME_CORNER + goto_if_eq VAR_RESULT, FALSE, Roulette_EventScript_Play addvar VAR_0x8004, ROULETTE_SPECIAL_RATE goto Roulette_EventScript_Play end diff --git a/data/scripts/safari_zone.inc b/data/scripts/safari_zone.inc index 6dd0767f0c..eb6a90abdf 100644 --- a/data/scripts/safari_zone.inc +++ b/data/scripts/safari_zone.inc @@ -1,21 +1,20 @@ SafariZone_EventScript_OutOfBallsMidBattle:: setvar VAR_SAFARI_ZONE_STATE, 1 special ExitSafariMode - setwarp MAP_ROUTE121_SAFARI_ZONE_ENTRANCE, 255, 2, 5 + setwarp MAP_ROUTE121_SAFARI_ZONE_ENTRANCE, 2, 5 end SafariZone_EventScript_Exit:: setvar VAR_SAFARI_ZONE_STATE, 1 special ExitSafariMode - warp MAP_ROUTE121_SAFARI_ZONE_ENTRANCE, 255, 2, 5 + warp MAP_ROUTE121_SAFARI_ZONE_ENTRANCE, 2, 5 waitstate end SafariZone_EventScript_RetirePrompt:: lockall msgbox SafariZone_Text_WouldYouLikeToExit, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq SafariZone_EventScript_Retire + goto_if_eq VAR_RESULT, YES, SafariZone_EventScript_Retire releaseall end @@ -43,11 +42,9 @@ SafariZone_EventScript_OutOfBalls:: EventScript_PokeBlockFeeder:: lockall special GetPokeblockFeederInFront - compare VAR_RESULT, 0xFFFF - goto_if_ne SafariZone_EventScript_PokeblockPresent + goto_if_ne VAR_RESULT, 0xFFFF, SafariZone_EventScript_PokeblockPresent msgbox SafariZone_Text_PlacePokeblockOnFeeder, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq SafariZone_EventScript_ChoosePokeblock + goto_if_eq VAR_RESULT, YES, SafariZone_EventScript_ChoosePokeblock releaseall end @@ -55,8 +52,7 @@ SafariZone_EventScript_ChoosePokeblock:: fadescreen FADE_TO_BLACK special OpenPokeblockCaseOnFeeder waitstate - compare VAR_RESULT, 0xFFFF - goto_if_ne SafariZone_EventScript_PokeblockPlaced + goto_if_ne VAR_RESULT, 0xFFFF, SafariZone_EventScript_PokeblockPlaced end SafariZone_EventScript_PokeblockPlaced:: diff --git a/data/scripts/secret_base.inc b/data/scripts/secret_base.inc index ae802cdfd2..918a9d6301 100644 --- a/data/scripts/secret_base.inc +++ b/data/scripts/secret_base.inc @@ -27,33 +27,24 @@ SecretBase_Text_DiscoveredSmallEntrance: SecretBase_EventScript_CheckEntrance:: special GetSecretBaseTypeInFrontOfPlayer special CheckPlayerHasSecretBase - compare VAR_RESULT, TRUE - goto_if_eq SecretBase_EventScript_AlreadyHasSecretBase + goto_if_eq VAR_RESULT, TRUE, SecretBase_EventScript_AlreadyHasSecretBase checkpartymove MOVE_SECRET_POWER setfieldeffectargument 0, VAR_RESULT - buffermovename 1, MOVE_SECRET_POWER - compare VAR_0x8007, SECRET_BASE_RED_CAVE - goto_if_eq SecretBase_EventScript_Cave - compare VAR_0x8007, SECRET_BASE_BROWN_CAVE - goto_if_eq SecretBase_EventScript_Cave - compare VAR_0x8007, SECRET_BASE_BLUE_CAVE - goto_if_eq SecretBase_EventScript_Cave - compare VAR_0x8007, SECRET_BASE_YELLOW_CAVE - goto_if_eq SecretBase_EventScript_Cave - compare VAR_0x8007, SECRET_BASE_TREE - goto_if_eq SecretBase_EventScript_Tree - compare VAR_0x8007, SECRET_BASE_SHRUB - goto_if_eq SecretBase_EventScript_Shrub + buffermovename STR_VAR_2, MOVE_SECRET_POWER + goto_if_eq VAR_0x8007, SECRET_BASE_RED_CAVE, SecretBase_EventScript_Cave + goto_if_eq VAR_0x8007, SECRET_BASE_BROWN_CAVE, SecretBase_EventScript_Cave + goto_if_eq VAR_0x8007, SECRET_BASE_BLUE_CAVE, SecretBase_EventScript_Cave + goto_if_eq VAR_0x8007, SECRET_BASE_YELLOW_CAVE, SecretBase_EventScript_Cave + goto_if_eq VAR_0x8007, SECRET_BASE_TREE, SecretBase_EventScript_Tree + goto_if_eq VAR_0x8007, SECRET_BASE_SHRUB, SecretBase_EventScript_Shrub end SecretBase_EventScript_Cave:: lockall - compare VAR_RESULT, PARTY_SIZE - goto_if_eq SecretBase_EventScript_CaveNoSecretPower - bufferpartymonnick 0, VAR_RESULT + goto_if_eq VAR_RESULT, PARTY_SIZE, SecretBase_EventScript_CaveNoSecretPower + bufferpartymonnick STR_VAR_1, VAR_RESULT msgbox SecretBase_Text_IndentUseSecretPower, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_CancelOnEntrance + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_CancelOnEntrance msgbox Text_MonUsedFieldMove, MSGBOX_DEFAULT closemessage dofieldeffect FLDEFF_USE_SECRET_POWER_CAVE @@ -80,12 +71,10 @@ SecretBase_EventScript_CaveEnter:: SecretBase_EventScript_Tree:: lockall - compare VAR_RESULT, PARTY_SIZE - goto_if_eq SecretBase_EventScript_TreeNoSecretPower - bufferpartymonnick 0, VAR_RESULT + goto_if_eq VAR_RESULT, PARTY_SIZE, SecretBase_EventScript_TreeNoSecretPower + bufferpartymonnick STR_VAR_1, VAR_RESULT msgbox SecretBase_Text_TreeUseSecretPower, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_CancelOnEntrance + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_CancelOnEntrance msgbox Text_MonUsedFieldMove, MSGBOX_DEFAULT closemessage dofieldeffect FLDEFF_USE_SECRET_POWER_TREE @@ -112,12 +101,10 @@ SecretBase_EventScript_TreeEnter:: SecretBase_EventScript_Shrub:: lockall - compare VAR_RESULT, PARTY_SIZE - goto_if_eq SecretBase_EventScript_ShrubNoSecretPower - bufferpartymonnick 0, VAR_RESULT + goto_if_eq VAR_RESULT, PARTY_SIZE, SecretBase_EventScript_ShrubNoSecretPower + bufferpartymonnick STR_VAR_1, VAR_RESULT msgbox SecretBase_Text_ClumpUseSecretPower, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_CancelOnEntrance + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_CancelOnEntrance msgbox Text_MonUsedFieldMove, MSGBOX_DEFAULT closemessage dofieldeffect FLDEFF_USE_SECRET_POWER_SHRUB @@ -146,7 +133,7 @@ SecretBase_EventScript_InitSecretBase:: closemessage playse SE_EXIT setvar VAR_INIT_SECRET_BASE, 0 - setflag FLAG_DECORATION_0 + setflag FLAG_HIDE_SECRET_BASE_TRAINER special SetPlayerSecretBase special EnterSecretBase setvar VAR_0x8004, 0 @@ -161,8 +148,7 @@ SecretBase_EventScript_FirstEntrance:: waitmovement 0 setvar VAR_INIT_SECRET_BASE, 1 msgbox SecretBase_Text_WantToMakeYourSecretBaseHere, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq SecretBase_EventScript_SetAsBase + goto_if_eq VAR_RESULT, YES, SecretBase_EventScript_SetAsBase closemessage playse SE_EXIT special ClearAndLeaveSecretBase @@ -185,16 +171,15 @@ SecretBase_EventScript_Enter:: setvar VAR_INIT_SECRET_BASE, 1 playse SE_EXIT special IsCurSecretBaseOwnedByAnotherPlayer - compare VAR_RESULT, FALSE - goto_if_eq SecretBase_EventScript_EnterPlayersBase - clearflag FLAG_DECORATION_0 + goto_if_eq VAR_RESULT, FALSE, SecretBase_EventScript_EnterPlayersBase + clearflag FLAG_HIDE_SECRET_BASE_TRAINER special EnterSecretBase setvar VAR_SECRET_BASE_INITIALIZED, 0 waitstate end SecretBase_EventScript_EnterPlayersBase:: - setflag FLAG_DECORATION_0 + setflag FLAG_HIDE_SECRET_BASE_TRAINER special EnterSecretBase setvar VAR_SECRET_BASE_INITIALIZED, 0 waitstate @@ -202,59 +187,43 @@ SecretBase_EventScript_EnterPlayersBase:: SecretBase_EventScript_AlreadyHasSecretBase:: checkpartymove MOVE_SECRET_POWER - compare VAR_RESULT, PARTY_SIZE - goto_if_eq SecretBase_EventScript_NoSecretPower + goto_if_eq VAR_RESULT, PARTY_SIZE, SecretBase_EventScript_NoSecretPower setfieldeffectargument 0, VAR_RESULT setorcopyvar VAR_0x8004, VAR_RESULT lockall special GetSecretBaseNearbyMapName msgbox SecretBase_Text_WouldYouLikeToMoveBases, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_CancelOnEntrance + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_CancelOnEntrance msgbox SecretBase_Text_AllDecorationsWillBeReturned, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_CancelOnEntrance + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_CancelOnEntrance fadescreenswapbuffers FADE_TO_BLACK special MoveOutOfSecretBaseFromOutside closemessage fadescreenswapbuffers FADE_FROM_BLACK msgbox SecretBase_Text_MovingCompletedUseSecretPower, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_CancelOnEntrance - bufferpartymonnick 0, VAR_0x8004 - buffermovename 1, MOVE_SECRET_POWER + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_CancelOnEntrance + bufferpartymonnick STR_VAR_1, VAR_0x8004 + buffermovename STR_VAR_2, MOVE_SECRET_POWER msgbox Text_MonUsedFieldMove, MSGBOX_DEFAULT closemessage closemessage - compare VAR_0x8007, SECRET_BASE_RED_CAVE - goto_if_eq SecretBase_EventScript_CaveUseSecretPower - compare VAR_0x8007, SECRET_BASE_BROWN_CAVE - goto_if_eq SecretBase_EventScript_CaveUseSecretPower - compare VAR_0x8007, SECRET_BASE_BLUE_CAVE - goto_if_eq SecretBase_EventScript_CaveUseSecretPower - compare VAR_0x8007, SECRET_BASE_YELLOW_CAVE - goto_if_eq SecretBase_EventScript_CaveUseSecretPower - compare VAR_0x8007, SECRET_BASE_TREE - goto_if_eq SecretBase_EventScript_TreeUseSecretPower - compare VAR_0x8007, SECRET_BASE_SHRUB - goto_if_eq SecretBase_EventScript_ShrubUseSecretPower + goto_if_eq VAR_0x8007, SECRET_BASE_RED_CAVE, SecretBase_EventScript_CaveUseSecretPower + goto_if_eq VAR_0x8007, SECRET_BASE_BROWN_CAVE, SecretBase_EventScript_CaveUseSecretPower + goto_if_eq VAR_0x8007, SECRET_BASE_BLUE_CAVE, SecretBase_EventScript_CaveUseSecretPower + goto_if_eq VAR_0x8007, SECRET_BASE_YELLOW_CAVE, SecretBase_EventScript_CaveUseSecretPower + goto_if_eq VAR_0x8007, SECRET_BASE_TREE, SecretBase_EventScript_TreeUseSecretPower + goto_if_eq VAR_0x8007, SECRET_BASE_SHRUB, SecretBase_EventScript_ShrubUseSecretPower releaseall end SecretBase_EventScript_NoSecretPower:: lockall - compare VAR_0x8007, SECRET_BASE_RED_CAVE - goto_if_eq SecretBase_EventScript_CaveNoSecretPower - compare VAR_0x8007, SECRET_BASE_BROWN_CAVE - goto_if_eq SecretBase_EventScript_CaveNoSecretPower - compare VAR_0x8007, SECRET_BASE_BLUE_CAVE - goto_if_eq SecretBase_EventScript_CaveNoSecretPower - compare VAR_0x8007, SECRET_BASE_YELLOW_CAVE - goto_if_eq SecretBase_EventScript_CaveNoSecretPower - compare VAR_0x8007, SECRET_BASE_TREE - goto_if_eq SecretBase_EventScript_TreeNoSecretPower - compare VAR_0x8007, SECRET_BASE_SHRUB - goto_if_eq SecretBase_EventScript_ShrubNoSecretPower + goto_if_eq VAR_0x8007, SECRET_BASE_RED_CAVE, SecretBase_EventScript_CaveNoSecretPower + goto_if_eq VAR_0x8007, SECRET_BASE_BROWN_CAVE, SecretBase_EventScript_CaveNoSecretPower + goto_if_eq VAR_0x8007, SECRET_BASE_BLUE_CAVE, SecretBase_EventScript_CaveNoSecretPower + goto_if_eq VAR_0x8007, SECRET_BASE_YELLOW_CAVE, SecretBase_EventScript_CaveNoSecretPower + goto_if_eq VAR_0x8007, SECRET_BASE_TREE, SecretBase_EventScript_TreeNoSecretPower + goto_if_eq VAR_0x8007, SECRET_BASE_SHRUB, SecretBase_EventScript_ShrubNoSecretPower end SecretBase_EventScript_CancelOnEntrance:: @@ -302,11 +271,9 @@ SecretBase_EventScript_PutAwayDecoration:: SecretBase_EventScript_PutAwayDecorationLoop:: special PutAwayDecorationIteration - compare VAR_RESULT, 1 - goto_if_eq SecretBase_EventScript_PutAwayDecorationEnd + goto_if_eq VAR_RESULT, 1, SecretBase_EventScript_PutAwayDecorationEnd addvar VAR_0x8004, 1 - compare VAR_0x8005, 0 - goto_if_eq SecretBase_EventScript_PutAwayDecorationLoop + goto_if_eq VAR_0x8005, 0, SecretBase_EventScript_PutAwayDecorationLoop removeobject VAR_0x8006 setflag VAR_0x8005 @ UB: VAR_0x8005 is set to a flag by PutAwayDecorationIteration, but ScrCmd_setflag doesn't use VarGet goto SecretBase_EventScript_PutAwayDecorationLoop @@ -317,26 +284,16 @@ SecretBase_EventScript_PutAwayDecorationEnd:: SecretBase_EventScript_RecordMixTrainer:: special GetSecretBaseOwnerAndState - compare VAR_0x8004, 0 - goto_if_eq SecretBase_EventScript_Trainer0 - compare VAR_0x8004, 1 - goto_if_eq SecretBase_EventScript_Trainer1 - compare VAR_0x8004, 2 - goto_if_eq SecretBase_EventScript_Trainer2 - compare VAR_0x8004, 3 - goto_if_eq SecretBase_EventScript_Trainer3 - compare VAR_0x8004, 4 - goto_if_eq SecretBase_EventScript_Trainer4 - compare VAR_0x8004, 5 - goto_if_eq SecretBase_EventScript_Trainer5 - compare VAR_0x8004, 6 - goto_if_eq SecretBase_EventScript_Trainer6 - compare VAR_0x8004, 7 - goto_if_eq SecretBase_EventScript_Trainer7 - compare VAR_0x8004, 8 - goto_if_eq SecretBase_EventScript_Trainer8 - compare VAR_0x8004, 9 - goto_if_eq SecretBase_EventScript_Trainer9 + goto_if_eq VAR_0x8004, 0, SecretBase_EventScript_Trainer0 + goto_if_eq VAR_0x8004, 1, SecretBase_EventScript_Trainer1 + goto_if_eq VAR_0x8004, 2, SecretBase_EventScript_Trainer2 + goto_if_eq VAR_0x8004, 3, SecretBase_EventScript_Trainer3 + goto_if_eq VAR_0x8004, 4, SecretBase_EventScript_Trainer4 + goto_if_eq VAR_0x8004, 5, SecretBase_EventScript_Trainer5 + goto_if_eq VAR_0x8004, 6, SecretBase_EventScript_Trainer6 + goto_if_eq VAR_0x8004, 7, SecretBase_EventScript_Trainer7 + goto_if_eq VAR_0x8004, 8, SecretBase_EventScript_Trainer8 + goto_if_eq VAR_0x8004, 9, SecretBase_EventScript_Trainer9 end @ VAR_RESULT is initially set by GetSecretBaseOwnerAndState @@ -344,16 +301,13 @@ SecretBase_EventScript_Trainer0:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer0PreChampion - compare VAR_RESULT, 1 - goto_if_eq SecretBase_EventScript_Trainer0PostBattle + goto_if_eq VAR_RESULT, 1, SecretBase_EventScript_Trainer0PostBattle msgbox SecretBase_Text_Trainer0Intro, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_Trainer0DeclineBattle + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_Trainer0DeclineBattle setvar VAR_RESULT, 1 special SetBattledOwnerFromResult call Common_EventScript_SaveGame - compare VAR_RESULT, 0 - goto_if_eq SecretBase_EventScript_Trainer0DeclineBattle + goto_if_eq VAR_RESULT, 0, SecretBase_EventScript_Trainer0DeclineBattle msgbox SecretBase_Text_Trainer0AcceptBattle, MSGBOX_DEFAULT goto SecretBase_EventScript_BattleTrainer end @@ -381,16 +335,13 @@ SecretBase_EventScript_Trainer1:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer1PreChampion - compare VAR_RESULT, 1 - goto_if_eq SecretBase_EventScript_Trainer1PostBattle + goto_if_eq VAR_RESULT, 1, SecretBase_EventScript_Trainer1PostBattle msgbox SecretBase_Text_Trainer1Intro, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_Trainer1DeclineBattle + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_Trainer1DeclineBattle setvar VAR_RESULT, 1 special SetBattledOwnerFromResult call Common_EventScript_SaveGame - compare VAR_RESULT, 0 - goto_if_eq SecretBase_EventScript_Trainer1DeclineBattle + goto_if_eq VAR_RESULT, 0, SecretBase_EventScript_Trainer1DeclineBattle msgbox SecretBase_Text_Trainer1AcceptBattle, MSGBOX_DEFAULT goto SecretBase_EventScript_BattleTrainer end @@ -418,16 +369,13 @@ SecretBase_EventScript_Trainer2:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer2PreChampion - compare VAR_RESULT, 1 - goto_if_eq SecretBase_EventScript_Trainer2PostBattle + goto_if_eq VAR_RESULT, 1, SecretBase_EventScript_Trainer2PostBattle msgbox SecretBase_Text_Trainer2Intro, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_Trainer2DeclineBattle + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_Trainer2DeclineBattle setvar VAR_RESULT, 1 special SetBattledOwnerFromResult call Common_EventScript_SaveGame - compare VAR_RESULT, 0 - goto_if_eq SecretBase_EventScript_Trainer2DeclineBattle + goto_if_eq VAR_RESULT, 0, SecretBase_EventScript_Trainer2DeclineBattle msgbox SecretBase_Text_Trainer2AcceptBattle, MSGBOX_DEFAULT goto SecretBase_EventScript_BattleTrainer end @@ -455,16 +403,13 @@ SecretBase_EventScript_Trainer3:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer3PreChampion - compare VAR_RESULT, 1 - goto_if_eq SecretBase_EventScript_Trainer3PostBattle + goto_if_eq VAR_RESULT, 1, SecretBase_EventScript_Trainer3PostBattle msgbox SecretBase_Text_Trainer3Intro, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_Trainer3DeclineBattle + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_Trainer3DeclineBattle setvar VAR_RESULT, 1 special SetBattledOwnerFromResult call Common_EventScript_SaveGame - compare VAR_RESULT, 0 - goto_if_eq SecretBase_EventScript_Trainer3DeclineBattle + goto_if_eq VAR_RESULT, 0, SecretBase_EventScript_Trainer3DeclineBattle msgbox SecretBase_Text_Trainer3AcceptBattle, MSGBOX_DEFAULT goto SecretBase_EventScript_BattleTrainer end @@ -492,16 +437,13 @@ SecretBase_EventScript_Trainer4:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer4PreChampion - compare VAR_RESULT, 1 - goto_if_eq SecretBase_EventScript_Trainer4PostBattle + goto_if_eq VAR_RESULT, 1, SecretBase_EventScript_Trainer4PostBattle msgbox SecretBase_Text_Trainer4Intro, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_Trainer4DeclineBattle + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_Trainer4DeclineBattle setvar VAR_RESULT, 1 special SetBattledOwnerFromResult call Common_EventScript_SaveGame - compare VAR_RESULT, 0 - goto_if_eq SecretBase_EventScript_Trainer4DeclineBattle + goto_if_eq VAR_RESULT, 0, SecretBase_EventScript_Trainer4DeclineBattle msgbox SecretBase_Text_Trainer4AcceptBattle, MSGBOX_DEFAULT goto SecretBase_EventScript_BattleTrainer end @@ -529,16 +471,13 @@ SecretBase_EventScript_Trainer5:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer5PreChampion - compare VAR_RESULT, 1 - goto_if_eq SecretBase_EventScript_Trainer5PostBattle + goto_if_eq VAR_RESULT, 1, SecretBase_EventScript_Trainer5PostBattle msgbox SecretBase_Text_Trainer5Intro, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_Trainer5DeclineBattle + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_Trainer5DeclineBattle setvar VAR_RESULT, 1 special SetBattledOwnerFromResult call Common_EventScript_SaveGame - compare VAR_RESULT, 0 - goto_if_eq SecretBase_EventScript_Trainer5DeclineBattle + goto_if_eq VAR_RESULT, 0, SecretBase_EventScript_Trainer5DeclineBattle msgbox SecretBase_Text_Trainer5AcceptBattle, MSGBOX_DEFAULT goto SecretBase_EventScript_BattleTrainer end @@ -566,16 +505,13 @@ SecretBase_EventScript_Trainer6:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer6PreChampion - compare VAR_RESULT, 1 - goto_if_eq SecretBase_EventScript_Trainer6PostBattle + goto_if_eq VAR_RESULT, 1, SecretBase_EventScript_Trainer6PostBattle msgbox SecretBase_Text_Trainer6Intro, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_Trainer6DeclineBattle + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_Trainer6DeclineBattle setvar VAR_RESULT, 1 special SetBattledOwnerFromResult call Common_EventScript_SaveGame - compare VAR_RESULT, 0 - goto_if_eq SecretBase_EventScript_Trainer6DeclineBattle + goto_if_eq VAR_RESULT, 0, SecretBase_EventScript_Trainer6DeclineBattle msgbox SecretBase_Text_Trainer6AcceptBattle, MSGBOX_DEFAULT goto SecretBase_EventScript_BattleTrainer end @@ -603,16 +539,13 @@ SecretBase_EventScript_Trainer7:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer7PreChampion - compare VAR_RESULT, 1 - goto_if_eq SecretBase_EventScript_Trainer7PostBattle + goto_if_eq VAR_RESULT, 1, SecretBase_EventScript_Trainer7PostBattle msgbox SecretBase_Text_Trainer7Intro, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_Trainer7DeclineBattle + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_Trainer7DeclineBattle setvar VAR_RESULT, 1 special SetBattledOwnerFromResult call Common_EventScript_SaveGame - compare VAR_RESULT, 0 - goto_if_eq SecretBase_EventScript_Trainer7DeclineBattle + goto_if_eq VAR_RESULT, 0, SecretBase_EventScript_Trainer7DeclineBattle msgbox SecretBase_Text_Trainer7AcceptBattle, MSGBOX_DEFAULT goto SecretBase_EventScript_BattleTrainer end @@ -640,16 +573,13 @@ SecretBase_EventScript_Trainer8:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer8PreChampion - compare VAR_RESULT, 1 - goto_if_eq SecretBase_EventScript_Trainer8PostBattle + goto_if_eq VAR_RESULT, 1, SecretBase_EventScript_Trainer8PostBattle msgbox SecretBase_Text_Trainer8Intro, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_Trainer8DeclineBattle + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_Trainer8DeclineBattle setvar VAR_RESULT, 1 special SetBattledOwnerFromResult call Common_EventScript_SaveGame - compare VAR_RESULT, 0 - goto_if_eq SecretBase_EventScript_Trainer8DeclineBattle + goto_if_eq VAR_RESULT, 0, SecretBase_EventScript_Trainer8DeclineBattle msgbox SecretBase_Text_Trainer8AcceptBattle, MSGBOX_DEFAULT goto SecretBase_EventScript_BattleTrainer end @@ -677,16 +607,13 @@ SecretBase_EventScript_Trainer9:: lock faceplayer goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer9PreChampion - compare VAR_RESULT, 1 - goto_if_eq SecretBase_EventScript_Trainer9PostBattle + goto_if_eq VAR_RESULT, 1, SecretBase_EventScript_Trainer9PostBattle msgbox SecretBase_Text_Trainer9Intro, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_Trainer9DeclineBattle + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_Trainer9DeclineBattle setvar VAR_RESULT, 1 special SetBattledOwnerFromResult call Common_EventScript_SaveGame - compare VAR_RESULT, 0 - goto_if_eq SecretBase_EventScript_Trainer9DeclineBattle + goto_if_eq VAR_RESULT, 0, SecretBase_EventScript_Trainer9DeclineBattle msgbox SecretBase_Text_Trainer9AcceptBattle, MSGBOX_DEFAULT goto SecretBase_EventScript_BattleTrainer end @@ -715,12 +642,9 @@ SecretBase_EventScript_BattleTrainer:: setvar VAR_0x8005, 0 special DoSpecialTrainerBattle waitstate - compare VAR_RESULT, B_OUTCOME_DREW - call_if_eq SecretBase_EventScript_DrewSecretBaseBattle - compare VAR_RESULT, B_OUTCOME_WON - call_if_eq SecretBase_EventScript_WonSecretBaseBattle - compare VAR_RESULT, B_OUTCOME_LOST - call_if_eq SecretBase_EventScript_LostSecretBaseBattle + call_if_eq VAR_RESULT, B_OUTCOME_DREW, SecretBase_EventScript_DrewSecretBaseBattle + call_if_eq VAR_RESULT, B_OUTCOME_WON, SecretBase_EventScript_WonSecretBaseBattle + call_if_eq VAR_RESULT, B_OUTCOME_LOST, SecretBase_EventScript_LostSecretBaseBattle special HealPlayerParty release end diff --git a/data/scripts/secret_power_tm.inc b/data/scripts/secret_power_tm.inc index 41c21e1004..11a5d5b668 100644 --- a/data/scripts/secret_power_tm.inc +++ b/data/scripts/secret_power_tm.inc @@ -37,26 +37,21 @@ Route111_EventScript_SecretPowerMan:: lock faceplayer msgbox Route111_Text_MakingRoomUseTMToMakeYourOwn, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq Route111_EventScript_GiveSecretPower + goto_if_eq VAR_RESULT, YES, Route111_EventScript_GiveSecretPower msgbox Route111_Text_DontWantThis, MSGBOX_DEFAULT release end Route111_EventScript_GiveSecretPower:: giveitem ITEM_TM43 - compare VAR_RESULT, FALSE - goto_if_eq Route111_EventScript_NoRoomForSecretPower + goto_if_eq VAR_RESULT, FALSE, Route111_EventScript_NoRoomForSecretPower msgbox Route111_Text_ExplainSecretPower, MSGBOX_DEFAULT closemessage setflag FLAG_RECEIVED_SECRET_POWER clearflag FLAG_HIDE_SLATEPORT_CITY_TM_SALESMAN - compare VAR_FACING, DIR_WEST - call_if_eq Route111_EventScript_SecretPowerManExit - compare VAR_FACING, DIR_EAST - call_if_eq Route111_EventScript_SecretPowerManExit - compare VAR_FACING, DIR_NORTH - call_if_eq Route111_EventScript_SecretPowerManExitNorth + call_if_eq VAR_FACING, DIR_WEST, Route111_EventScript_SecretPowerManExit + call_if_eq VAR_FACING, DIR_EAST, Route111_EventScript_SecretPowerManExit + call_if_eq VAR_FACING, DIR_NORTH, Route111_EventScript_SecretPowerManExitNorth removeobject VAR_LAST_TALKED release end diff --git a/data/scripts/shared_secret_base.inc b/data/scripts/shared_secret_base.inc index ef389d3fce..576e939211 100644 --- a/data/scripts/shared_secret_base.inc +++ b/data/scripts/shared_secret_base.inc @@ -1,224 +1,215 @@ SecretBase_MapScripts:: - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, SecretBase_OnWarp - map_script MAP_SCRIPT_ON_TRANSITION, SecretBase_OnTransition - map_script MAP_SCRIPT_ON_FRAME_TABLE, SecretBase_OnFrame - map_script MAP_SCRIPT_ON_RESUME, SecretBase_OnResume - .byte 0 + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, SecretBase_OnWarp + map_script MAP_SCRIPT_ON_TRANSITION, SecretBase_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, SecretBase_OnFrame + map_script MAP_SCRIPT_ON_RESUME, SecretBase_OnResume + .byte 0 SecretBase_OnWarp: - map_script_2 VAR_SECRET_BASE_INITIALIZED, 0, SecretBase_EventScript_InitDecorations - .2byte 0 + map_script_2 VAR_SECRET_BASE_INITIALIZED, 0, SecretBase_EventScript_InitDecorations + .2byte 0 SecretBase_OnTransition: - call SecretBase_EventScript_SetDecorationFlags - special SetSecretBaseOwnerGfxId - special InitSecretBaseVars - end + call SecretBase_EventScript_SetDecorationFlags + special SetSecretBaseOwnerGfxId + special InitSecretBaseVars + end SecretBase_OnFrame: - map_script_2 VAR_INIT_SECRET_BASE, 0, SecretBase_EventScript_FirstEntrance - .2byte 0 + map_script_2 VAR_INIT_SECRET_BASE, 0, SecretBase_EventScript_FirstEntrance + .2byte 0 SecretBase_OnResume: - setstepcallback STEP_CB_SECRET_BASE - end + setstepcallback STEP_CB_SECRET_BASE + end SecretBase_EventScript_PC:: - lockall - playse SE_PC_LOGIN - message SecretBase_Text_BootUpPC - dofieldeffect FLDEFF_PCTURN_ON - waitstate - waitmessage - waitbuttonpress - playse SE_SELECT - goto SecretBase_EventScript_PCShowMainMenu - end + lockall + playse SE_PC_LOGIN + message SecretBase_Text_BootUpPC + dofieldeffect FLDEFF_PCTURN_ON + waitstate + waitmessage + waitbuttonpress + playse SE_SELECT + goto SecretBase_EventScript_PCShowMainMenu + end SecretBase_EventScript_PCShowMainMenu:: - message SecretBase_Text_WhatWouldYouLikeToDo - waitmessage - goto_if_set FLAG_SECRET_BASE_REGISTRY_ENABLED, SecretBase_EventScript_PCMainMenuWithRegister - goto SecretBase_EventScript_PCMainMenuWithoutRegister - end + message SecretBase_Text_WhatWouldYouLikeToDo + waitmessage + goto_if_set FLAG_SECRET_BASE_REGISTRY_ENABLED, SecretBase_EventScript_PCMainMenuWithRegister + goto SecretBase_EventScript_PCMainMenuWithoutRegister + end SecretBase_EventScript_PCCancel:: - lockall - goto SecretBase_EventScript_PCShowMainMenu - end + lockall + goto SecretBase_EventScript_PCShowMainMenu + end SecretBase_EventScript_PCMainMenuWithRegister:: - multichoice 0, 0, MULTI_BASE_PC_WITH_REGISTRY, FALSE - switch VAR_RESULT - case 0, SecretBase_EventScript_PCDecorationMenu - case 1, SecretBase_EventScript_PCPackUp - case 2, SecretBase_EventScript_PCRegistryMenu - case 3, SecretBase_EventScript_PCTurnOff - case MULTI_B_PRESSED, SecretBase_EventScript_PCTurnOff - end + multichoice 0, 0, MULTI_BASE_PC_WITH_REGISTRY, FALSE + switch VAR_RESULT + case 0, SecretBase_EventScript_PCDecorationMenu + case 1, SecretBase_EventScript_PCPackUp + case 2, SecretBase_EventScript_PCRegistryMenu + case 3, SecretBase_EventScript_PCTurnOff + case MULTI_B_PRESSED, SecretBase_EventScript_PCTurnOff + end SecretBase_EventScript_PCMainMenuWithoutRegister:: - multichoice 0, 0, MULTI_BASE_PC_NO_REGISTRY, FALSE - switch VAR_RESULT - case 0, SecretBase_EventScript_PCDecorationMenu - case 1, SecretBase_EventScript_PCPackUp - case 2, SecretBase_EventScript_PCTurnOff - case MULTI_B_PRESSED, SecretBase_EventScript_PCTurnOff - end + multichoice 0, 0, MULTI_BASE_PC_NO_REGISTRY, FALSE + switch VAR_RESULT + case 0, SecretBase_EventScript_PCDecorationMenu + case 1, SecretBase_EventScript_PCPackUp + case 2, SecretBase_EventScript_PCTurnOff + case MULTI_B_PRESSED, SecretBase_EventScript_PCTurnOff + end SecretBase_EventScript_PCPackUp:: - msgbox SecretBase_Text_AllDecorationsWillBeReturned, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_PCShowMainMenu - closemessage - special MoveOutOfSecretBase - releaseall - end + msgbox SecretBase_Text_AllDecorationsWillBeReturned, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_PCShowMainMenu + closemessage + special MoveOutOfSecretBase + releaseall + end SecretBase_EventScript_PCDecorationMenu:: - special ShowSecretBaseDecorationMenu - end + special ShowSecretBaseDecorationMenu + end SecretBase_EventScript_PCRegistryMenu:: - special ShowSecretBaseRegistryMenu - end + special ShowSecretBaseRegistryMenu + end SecretBase_EventScript_RecordMixingPC:: - lockall - message SecretBase_Text_BootUpPC - playse SE_PC_LOGIN - dofieldeffect FLDEFF_PCTURN_ON - waitstate - waitmessage - waitbuttonpress - playse SE_SELECT - goto SecretBase_EventScript_PCRegisterMenu - end + lockall + message SecretBase_Text_BootUpPC + playse SE_PC_LOGIN + dofieldeffect FLDEFF_PCTURN_ON + waitstate + waitmessage + waitbuttonpress + playse SE_SELECT + goto SecretBase_EventScript_PCRegisterMenu + end SecretBase_EventScript_PCRegisterMenu:: - message SecretBase_Text_WhatWouldYouLikeToDo - waitmessage - multichoice 0, 0, MULTI_REGISTER_MENU, FALSE - switch VAR_RESULT - case 0, SecretBase_EventScript_PCRegister - case 1, SecretBase_EventScript_PCRegistryMenu - case 2, SecretBase_EventScript_PCRegistryInfo - case 3, SecretBase_EventScript_PCTurnOff - case MULTI_B_PRESSED, SecretBase_EventScript_PCTurnOff - end + message SecretBase_Text_WhatWouldYouLikeToDo + waitmessage + multichoice 0, 0, MULTI_REGISTER_MENU, FALSE + switch VAR_RESULT + case 0, SecretBase_EventScript_PCRegister + case 1, SecretBase_EventScript_PCRegistryMenu + case 2, SecretBase_EventScript_PCRegistryInfo + case 3, SecretBase_EventScript_PCTurnOff + case MULTI_B_PRESSED, SecretBase_EventScript_PCTurnOff + end SecretBase_EventScript_ShowRegisterMenu:: - lockall - goto SecretBase_EventScript_PCRegisterMenu - end + lockall + goto SecretBase_EventScript_PCRegisterMenu + end SecretBase_EventScript_PCRegister:: - special GetCurSecretBaseRegistrationValidity - compare VAR_RESULT, 1 - goto_if_eq SecretBase_EventScript_AlreadyRegistered - compare VAR_RESULT, 2 - goto_if_eq SecretBase_EventScript_CantRegisterTooManyBases - special CopyCurSecretBaseOwnerName_StrVar1 - msgbox SecretBase_Text_WantToRegisterSecretBase, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_PCRegisterMenu - msgbox SecretBase_Text_RegistrationCompleted, MSGBOX_SIGN - special ToggleCurSecretBaseRegistry - special DoSecretBasePCTurnOffEffect - releaseall - end + special GetCurSecretBaseRegistrationValidity + goto_if_eq VAR_RESULT, 1, SecretBase_EventScript_AlreadyRegistered + goto_if_eq VAR_RESULT, 2, SecretBase_EventScript_CantRegisterTooManyBases + special CopyCurSecretBaseOwnerName_StrVar1 + msgbox SecretBase_Text_WantToRegisterSecretBase, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_PCRegisterMenu + msgbox SecretBase_Text_RegistrationCompleted, MSGBOX_SIGN + special ToggleCurSecretBaseRegistry + special DoSecretBasePCTurnOffEffect + releaseall + end SecretBase_EventScript_AlreadyRegistered:: - msgbox SecretBase_Text_AlreadyRegisteredDelete, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq SecretBase_EventScript_PCRegisterMenu - msgbox SecretBase_Text_DataUnregistered, MSGBOX_SIGN - special ToggleCurSecretBaseRegistry - special DoSecretBasePCTurnOffEffect - releaseall - end + msgbox SecretBase_Text_AlreadyRegisteredDelete, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, SecretBase_EventScript_PCRegisterMenu + msgbox SecretBase_Text_DataUnregistered, MSGBOX_SIGN + special ToggleCurSecretBaseRegistry + special DoSecretBasePCTurnOffEffect + releaseall + end SecretBase_EventScript_CantRegisterTooManyBases:: - msgbox SecretBase_Text_TooManyBasesDeleteSome, MSGBOX_SIGN - special DoSecretBasePCTurnOffEffect - closemessage - releaseall - end + msgbox SecretBase_Text_TooManyBasesDeleteSome, MSGBOX_SIGN + special DoSecretBasePCTurnOffEffect + closemessage + releaseall + end SecretBase_EventScript_PCRegistryInfo:: - msgbox SecretBase_Text_RegistryInfo, MSGBOX_DEFAULT - goto SecretBase_EventScript_PCRegisterMenu - end + msgbox SecretBase_Text_RegistryInfo, MSGBOX_DEFAULT + goto SecretBase_EventScript_PCRegisterMenu + end SecretBase_EventScript_PCTurnOff:: - special DoSecretBasePCTurnOffEffect - closemessage - releaseall - end + special DoSecretBasePCTurnOffEffect + closemessage + releaseall + end @ Unused SecretBase_EventScript_Poster:: - special CheckInteractedWithFriendsPosterDecor - end + special CheckInteractedWithFriendsPosterDecor + end @ Unused SecretBase_EventScript_FurnitureBottom:: - special CheckInteractedWithFriendsFurnitureBottom - end + special CheckInteractedWithFriendsFurnitureBottom + end @ Unused SecretBase_EventScript_FurnitureMiddle:: - special CheckInteractedWithFriendsFurnitureMiddle - end + special CheckInteractedWithFriendsFurnitureMiddle + end @ Unused SecretBase_EventScript_FurnitureTop:: - special CheckInteractedWithFriendsFurnitureTop - end + special CheckInteractedWithFriendsFurnitureTop + end SecretBase_EventScript_SandOrnament:: - special CheckInteractedWithFriendsSandOrnament - dofieldeffect FLDEFF_SAND_PILLAR - waitstate - end + special CheckInteractedWithFriendsSandOrnament + dofieldeffect FLDEFF_SAND_PILLAR + waitstate + end SecretBase_EventScript_ShieldOrToyTV:: - special InteractWithShieldOrTVDecoration - compare VAR_RESULT, 0 - goto_if_eq SecretBase_EventScript_BattleTowerShield - compare VAR_RESULT, 1 - goto_if_eq SecretBase_EventScript_ToyTV - compare VAR_RESULT, 2 - goto_if_eq SecretBase_EventScript_SeedotTV - compare VAR_RESULT, 3 - goto_if_eq SecretBase_EventScript_SkittyTV - end + special InteractWithShieldOrTVDecoration + goto_if_eq VAR_RESULT, 0, SecretBase_EventScript_BattleTowerShield + goto_if_eq VAR_RESULT, 1, SecretBase_EventScript_ToyTV + goto_if_eq VAR_RESULT, 2, SecretBase_EventScript_SeedotTV + goto_if_eq VAR_RESULT, 3, SecretBase_EventScript_SkittyTV + end SecretBase_EventScript_BattleTowerShield:: - msgbox SecretBase_Text_BattleTowerShield, MSGBOX_SIGN - end + msgbox SecretBase_Text_BattleTowerShield, MSGBOX_SIGN + end SecretBase_EventScript_ToyTV:: - msgbox SecretBase_Text_ToyTV, MSGBOX_SIGN - end + msgbox SecretBase_Text_ToyTV, MSGBOX_SIGN + end SecretBase_EventScript_SeedotTV:: - msgbox SecretBase_Text_SeedotTV, MSGBOX_SIGN - end + msgbox SecretBase_Text_SeedotTV, MSGBOX_SIGN + end SecretBase_EventScript_SkittyTV:: - msgbox SecretBase_Text_SkittyTV, MSGBOX_SIGN - end + msgbox SecretBase_Text_SkittyTV, MSGBOX_SIGN + end SecretBase_Text_SmallIndentInWall:: - .string "There's a small indent in the wall.$" + .string "There's a small indent in the wall.$" SecretBase_Text_IndentUseSecretPower:: - .string "There's a small indent in the wall.\p" - .string "Use the SECRET POWER?$" + .string "There's a small indent in the wall.\p" + .string "Use the SECRET POWER?$" SecretBase_Text_DiscoveredSmallCavern:: - .string "Discovered a small cavern!$" + .string "Discovered a small cavern!$" SecretBase_Text_WantToMakeYourSecretBaseHere: - .string "Want to make your SECRET BASE here?$" + .string "Want to make your SECRET BASE here?$" diff --git a/data/scripts/std_msgbox.inc b/data/scripts/std_msgbox.inc index 941cc0e961..c46da56cbf 100644 --- a/data/scripts/std_msgbox.inc +++ b/data/scripts/std_msgbox.inc @@ -1,7 +1,7 @@ Std_MsgboxNPC: lock faceplayer - message 0x0 + message NULL waitmessage waitbuttonpress release @@ -9,33 +9,34 @@ Std_MsgboxNPC: Std_MsgboxSign: lockall - message 0x0 + message NULL waitmessage waitbuttonpress releaseall return Std_MsgboxDefault: - message 0x0 + message NULL waitmessage waitbuttonpress return Std_MsgboxYesNo: - message 0x0 + message NULL waitmessage yesnobox 20, 8 return Std_MsgboxGetPoints: - message 0x0 + message NULL playfanfare MUS_OBTAIN_B_POINTS waitfanfare waitmessage return -Std_10: - pokenavcall 0x0 +@ Never used, pokenavcall is always used directly instead +Std_MsgboxPokenav: + pokenavcall NULL waitmessage return diff --git a/data/scripts/surf.inc b/data/scripts/surf.inc index 91580422e1..edb116f991 100644 --- a/data/scripts/surf.inc +++ b/data/scripts/surf.inc @@ -1,13 +1,11 @@ EventScript_UseSurf:: checkpartymove MOVE_SURF - compare VAR_RESULT, PARTY_SIZE - goto_if_eq EventScript_EndUseSurf - bufferpartymonnick 0, VAR_RESULT + goto_if_eq VAR_RESULT, PARTY_SIZE, EventScript_EndUseSurf + bufferpartymonnick STR_VAR_1, VAR_RESULT setfieldeffectargument 0, VAR_RESULT lockall msgbox gText_WantToUseSurf, MSGBOX_YESNO - compare VAR_RESULT, NO - goto_if_eq EventScript_ReleaseUseSurf + goto_if_eq VAR_RESULT, NO, EventScript_ReleaseUseSurf msgbox gText_PlayerUsedSurf, MSGBOX_DEFAULT dofieldeffect FLDEFF_USE_SURF EventScript_ReleaseUseSurf:: diff --git a/data/scripts/trainer_battle.inc b/data/scripts/trainer_battle.inc index a59b58a6f7..bbbcaf3ba3 100644 --- a/data/scripts/trainer_battle.inc +++ b/data/scripts/trainer_battle.inc @@ -13,8 +13,7 @@ EventScript_TryDoNormalTrainerBattle:: applymovement VAR_LAST_TALKED, Movement_RevealTrainer waitmovement 0 specialvar VAR_RESULT, GetTrainerFlag - compare VAR_RESULT, FALSE - goto_if_ne EventScript_NoNormalTrainerBattle + goto_if_ne VAR_RESULT, FALSE, EventScript_NoNormalTrainerBattle special PlayTrainerEncounterMusic special SetTrainerFacingDirection goto EventScript_ShowTrainerIntroMsg @@ -27,11 +26,9 @@ EventScript_TryDoDoubleTrainerBattle:: faceplayer call EventScript_RevealTrainer specialvar VAR_RESULT, GetTrainerFlag - compare VAR_RESULT, FALSE - goto_if_ne EventScript_NoDoubleTrainerBattle + goto_if_ne VAR_RESULT, FALSE, EventScript_NoDoubleTrainerBattle special HasEnoughMonsForDoubleBattle - compare VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS - goto_if_ne EventScript_NotEnoughMonsForDoubleBattle + goto_if_ne VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS, EventScript_NotEnoughMonsForDoubleBattle special PlayTrainerEncounterMusic special SetTrainerFacingDirection goto EventScript_ShowTrainerIntroMsg @@ -50,14 +47,13 @@ EventScript_DoNoIntroTrainerBattle:: applymovement VAR_LAST_TALKED, Movement_RevealTrainer waitmovement 0 special PlayTrainerEncounterMusic - trainerbattlebegin + dotrainerbattle gotopostbattlescript EventScript_TryDoRematchBattle:: call EventScript_RevealTrainer specialvar VAR_RESULT, IsTrainerReadyForRematch - compare VAR_RESULT, FALSE - goto_if_eq EventScript_NoRematchTrainerBattle + goto_if_eq VAR_RESULT, FALSE, EventScript_NoRematchTrainerBattle special PlayTrainerEncounterMusic special SetTrainerFacingDirection special ShowTrainerIntroSpeech @@ -73,11 +69,9 @@ EventScript_NoRematchTrainerBattle:: EventScript_TryDoDoubleRematchBattle:: specialvar VAR_RESULT, IsTrainerReadyForRematch - compare VAR_RESULT, FALSE - goto_if_eq EventScript_NoDoubleRematchTrainerBattle + goto_if_eq VAR_RESULT, FALSE, EventScript_NoDoubleRematchTrainerBattle special HasEnoughMonsForDoubleBattle - compare VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS - goto_if_ne EventScript_NotEnoughMonsForDoubleRematchBattle + goto_if_ne VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS, EventScript_NotEnoughMonsForDoubleRematchBattle special PlayTrainerEncounterMusic special SetTrainerFacingDirection special ShowTrainerIntroSpeech @@ -112,31 +106,25 @@ EventScript_ShowTrainerIntroMsg:: waitmessage waitbuttonpress special TryPrepareSecondApproachingTrainer - compare VAR_RESULT, TRUE - goto_if_eq EventScript_TrainerApproach + goto_if_eq VAR_RESULT, TRUE, EventScript_TrainerApproach goto EventScript_DoTrainerBattle EventScript_DoTrainerBattle:: - trainerbattlebegin + dotrainerbattle @ Below battle mode check only needed in FRLG specialvar VAR_RESULT, GetTrainerBattleMode - compare VAR_RESULT, TRAINER_BATTLE_SINGLE - goto_if_eq EventScript_EndTrainerBattle - compare VAR_RESULT, TRAINER_BATTLE_CONTINUE_SCRIPT - goto_if_eq EventScript_EndTrainerBattle - compare VAR_RESULT, TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC - goto_if_eq EventScript_EndTrainerBattle - compare VAR_RESULT, TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE - goto_if_eq EventScript_EndTrainerBattle - compare VAR_RESULT, TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC - goto_if_eq EventScript_EndTrainerBattle + goto_if_eq VAR_RESULT, TRAINER_BATTLE_SINGLE, EventScript_EndTrainerBattle + goto_if_eq VAR_RESULT, TRAINER_BATTLE_CONTINUE_SCRIPT, EventScript_EndTrainerBattle + goto_if_eq VAR_RESULT, TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC, EventScript_EndTrainerBattle + goto_if_eq VAR_RESULT, TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE, EventScript_EndTrainerBattle + goto_if_eq VAR_RESULT, TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC, EventScript_EndTrainerBattle EventScript_EndTrainerBattle:: gotobeatenscript releaseall end Std_MsgboxAutoclose:: - message 0x0 + message NULL waitmessage waitbuttonpress release diff --git a/data/scripts/trainer_hill.inc b/data/scripts/trainer_hill.inc index f3ba5f035a..b7f8153514 100644 --- a/data/scripts/trainer_hill.inc +++ b/data/scripts/trainer_hill.inc @@ -2,12 +2,9 @@ TrainerHill_OnResume: setvar VAR_TEMP_2, 0 trainerhill_resumetimer frontier_get FRONTIER_DATA_BATTLE_OUTCOME - compare VAR_RESULT, B_OUTCOME_LOST - goto_if_eq TrainerHill_1F_EventScript_Lost - compare VAR_RESULT, B_OUTCOME_DREW - goto_if_eq TrainerHill_1F_EventScript_Lost - compare VAR_RESULT, B_OUTCOME_FORFEITED - goto_if_eq TrainerHill_1F_EventScript_Lost + goto_if_eq VAR_RESULT, B_OUTCOME_LOST, TrainerHill_1F_EventScript_Lost + goto_if_eq VAR_RESULT, B_OUTCOME_DREW, TrainerHill_1F_EventScript_Lost + goto_if_eq VAR_RESULT, B_OUTCOME_FORFEITED, TrainerHill_1F_EventScript_Lost end TrainerHill_OnWarp: @@ -35,13 +32,12 @@ EventScript_TrainerHillTimer:: TrainerHill_1F_EventScript_DummyWarpToEntranceCounter:: setvar VAR_TEMP_2, 1 trainerhill_getusingereader - compare VAR_RESULT, TRUE @ VAR_RESULT always FALSE here - goto_if_eq TrainerHill_1F_EventScript_WarpSilentToEntranceCounter + goto_if_eq VAR_RESULT, TRUE, TrainerHill_1F_EventScript_WarpSilentToEntranceCounter @ VAR_RESULT always FALSE here end @ Never reached TrainerHill_1F_EventScript_WarpSilentToEntranceCounter:: - warpsilent MAP_TRAINER_HILL_ENTRANCE, 255, 9, 6 + warpsilent MAP_TRAINER_HILL_ENTRANCE, 9, 6 waitstate end @@ -53,7 +49,7 @@ TrainerHill_1F_EventScript_Lost:: TrainerHill_EventScript_WarpToEntranceCounter:: setvar VAR_TEMP_1, 0 - warp MAP_TRAINER_HILL_ENTRANCE, 255, 9, 6 + warp MAP_TRAINER_HILL_ENTRANCE, 9, 6 waitstate end diff --git a/data/scripts/trainer_script.inc b/data/scripts/trainer_script.inc index 2a2384c667..c0998aef8e 100644 --- a/data/scripts/trainer_script.inc +++ b/data/scripts/trainer_script.inc @@ -1,6 +1,6 @@ Std_RegisteredInMatchCall:: - buffertrainerclassname 0, VAR_0x8000 - buffertrainername 1, VAR_0x8000 + buffertrainerclassname STR_VAR_1, VAR_0x8000 + buffertrainername STR_VAR_2, VAR_0x8000 closemessage delay 30 playfanfare MUS_REGISTER_MATCH_CALL @@ -12,8 +12,7 @@ Std_RegisteredInMatchCall:: EventScript_TryGetTrainerScript:: special ShouldTryGetTrainerScript - compare VAR_RESULT, 1 - goto_if_eq EventScript_GotoTrainerScript + goto_if_eq VAR_RESULT, TRUE, EventScript_GotoTrainerScript releaseall end diff --git a/data/scripts/tv.inc b/data/scripts/tv.inc index 14f3ade48d..a5a093226f 100644 --- a/data/scripts/tv.inc +++ b/data/scripts/tv.inc @@ -3,29 +3,23 @@ EventScript_TV:: incrementgamestat GAME_STAT_WATCHED_TV special ResetTVShowState specialvar VAR_RESULT, CheckForPlayersHouseNews - compare VAR_RESULT, PLAYERS_HOUSE_TV_MOVIE - goto_if_eq EventScript_PlayersHouseMovie - compare VAR_RESULT, PLAYERS_HOUSE_TV_LATI - goto_if_eq EventScript_PlayersHouseLatiNewsFlash + goto_if_eq VAR_RESULT, PLAYERS_HOUSE_TV_MOVIE, EventScript_PlayersHouseMovie + goto_if_eq VAR_RESULT, PLAYERS_HOUSE_TV_LATI, EventScript_PlayersHouseLatiNewsFlash goto_if_unset FLAG_SYS_TV_START, EventScript_MomDadMightLikeThis1 goto_if_set FLAG_SYS_TV_WATCH, EventScript_MomDadMightLikeThis1 specialvar VAR_RESULT, IsGabbyAndTyShowOnTheAir - compare VAR_RESULT, TRUE - goto_if_eq EventScript_DoInSearchOfTrainers + goto_if_eq VAR_RESULT, TRUE, EventScript_DoInSearchOfTrainers goto EventScript_TryDoPokeNews end EventScript_TryDoTVShow:: specialvar VAR_0x8004, GetRandomActiveShowIdx - compare VAR_0x8004, 255 - goto_if_eq EventScript_MomDadMightLikeThis2 + goto_if_eq VAR_0x8004, 255, EventScript_MomDadMightLikeThis2 specialvar VAR_RESULT, GetNextActiveShowIfMassOutbreak - compare VAR_RESULT, 255 - goto_if_eq EventScript_MomDadMightLikeThis2 + goto_if_eq VAR_RESULT, 255, EventScript_MomDadMightLikeThis2 copyvar VAR_0x8004, VAR_RESULT specialvar VAR_RESULT, GetSelectedTVShow - compare VAR_RESULT, 0 - goto_if_ne EventScript_DoTVShow + goto_if_ne VAR_RESULT, 0, EventScript_DoTVShow end EventScript_MomDadMightLikeThis1:: @@ -52,12 +46,13 @@ EventScript_PlayersHouseLatiNewsFlash:: releaseall end +@ The following is a loop for the TV show messages +@ VAR_RESULT is set to TRUE when the show has printed its final message EventScript_DoTVShow:: special DoTVShow waitmessage waitbuttonpress - compare VAR_RESULT, 1 - goto_if_ne EventScript_DoTVShow + goto_if_ne VAR_RESULT, TRUE, EventScript_DoTVShow goto EventScript_TurnOffTV end @@ -75,8 +70,7 @@ EventScript_MomDadMightLikeThis2:: EventScript_TryDoPokeNews:: special DoPokeNews - compare VAR_RESULT, FALSE - goto_if_eq EventScript_TryDoTVShow + goto_if_eq VAR_RESULT, FALSE, EventScript_TryDoTVShow waitmessage waitbuttonpress goto EventScript_TurnOffTV @@ -86,7 +80,6 @@ EventScript_DoInSearchOfTrainers:: special DoTVShowInSearchOfTrainers waitmessage waitbuttonpress - compare VAR_RESULT, 0 - goto_if_eq EventScript_DoInSearchOfTrainers + goto_if_eq VAR_RESULT, 0, EventScript_DoInSearchOfTrainers goto EventScript_TurnOffTV end diff --git a/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/0.png b/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/0.png index b5621be76e..1de3fe7c3d 100644 Binary files a/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/0.png and b/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/0.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/1.png b/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/1.png index 56a46ce92a..b9f80f08df 100644 Binary files a/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/1.png and b/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/1.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/2.png b/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/2.png index e51f5b5312..a03c965a87 100644 Binary files a/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/2.png and b/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/2.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/3.png b/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/3.png index 3ec6ff703c..5bdf19a359 100644 Binary files a/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/3.png and b/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/3.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/0.png b/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/0.png index b5621be76e..1de3fe7c3d 100644 Binary files a/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/0.png and b/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/0.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/1.png b/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/1.png index 56a46ce92a..b9f80f08df 100644 Binary files a/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/1.png and b/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/1.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/2.png b/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/2.png index e51f5b5312..a03c965a87 100644 Binary files a/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/2.png and b/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/2.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/3.png b/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/3.png index 3ec6ff703c..5bdf19a359 100644 Binary files a/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/3.png and b/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/3.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/flowers/0.png b/data/tilesets/secondary/ever_grande/anim/flowers/0.png index 6493e2e821..ae91986451 100644 Binary files a/data/tilesets/secondary/ever_grande/anim/flowers/0.png and b/data/tilesets/secondary/ever_grande/anim/flowers/0.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/flowers/1.png b/data/tilesets/secondary/ever_grande/anim/flowers/1.png index 6493e2e821..ae91986451 100644 Binary files a/data/tilesets/secondary/ever_grande/anim/flowers/1.png and b/data/tilesets/secondary/ever_grande/anim/flowers/1.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/flowers/2.png b/data/tilesets/secondary/ever_grande/anim/flowers/2.png index 0b1f568cbf..05b9796370 100644 Binary files a/data/tilesets/secondary/ever_grande/anim/flowers/2.png and b/data/tilesets/secondary/ever_grande/anim/flowers/2.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/flowers/3.png b/data/tilesets/secondary/ever_grande/anim/flowers/3.png index edc7220b8f..a4cea04e63 100644 Binary files a/data/tilesets/secondary/ever_grande/anim/flowers/3.png and b/data/tilesets/secondary/ever_grande/anim/flowers/3.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/flowers/4.png b/data/tilesets/secondary/ever_grande/anim/flowers/4.png index 6493e2e821..ae91986451 100644 Binary files a/data/tilesets/secondary/ever_grande/anim/flowers/4.png and b/data/tilesets/secondary/ever_grande/anim/flowers/4.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/flowers/5.png b/data/tilesets/secondary/ever_grande/anim/flowers/5.png index 6493e2e821..ae91986451 100644 Binary files a/data/tilesets/secondary/ever_grande/anim/flowers/5.png and b/data/tilesets/secondary/ever_grande/anim/flowers/5.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/flowers/6.png b/data/tilesets/secondary/ever_grande/anim/flowers/6.png index 4d43dfd0a9..c45b6188cf 100644 Binary files a/data/tilesets/secondary/ever_grande/anim/flowers/6.png and b/data/tilesets/secondary/ever_grande/anim/flowers/6.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/flowers/7.png b/data/tilesets/secondary/ever_grande/anim/flowers/7.png index 4d43dfd0a9..c45b6188cf 100644 Binary files a/data/tilesets/secondary/ever_grande/anim/flowers/7.png and b/data/tilesets/secondary/ever_grande/anim/flowers/7.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_1/0.png b/data/tilesets/secondary/mauville/anim/flower_1/0.png index 263dba0700..d17b8ca906 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_1/0.png and b/data/tilesets/secondary/mauville/anim/flower_1/0.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_1/1.png b/data/tilesets/secondary/mauville/anim/flower_1/1.png index 66179f13dd..2a30d57804 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_1/1.png and b/data/tilesets/secondary/mauville/anim/flower_1/1.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_1/2.png b/data/tilesets/secondary/mauville/anim/flower_1/2.png index 63250e7b03..69cacfda67 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_1/2.png and b/data/tilesets/secondary/mauville/anim/flower_1/2.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_1/3.png b/data/tilesets/secondary/mauville/anim/flower_1/3.png index b1015d370b..60cf30bb43 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_1/3.png and b/data/tilesets/secondary/mauville/anim/flower_1/3.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_1/4.png b/data/tilesets/secondary/mauville/anim/flower_1/4.png index 1e8cb84afe..01162ac5c4 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_1/4.png and b/data/tilesets/secondary/mauville/anim/flower_1/4.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_2/0.png b/data/tilesets/secondary/mauville/anim/flower_2/0.png index 263dba0700..be6b131cf3 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_2/0.png and b/data/tilesets/secondary/mauville/anim/flower_2/0.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_2/1.png b/data/tilesets/secondary/mauville/anim/flower_2/1.png index 66179f13dd..715205f649 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_2/1.png and b/data/tilesets/secondary/mauville/anim/flower_2/1.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_2/2.png b/data/tilesets/secondary/mauville/anim/flower_2/2.png index 63250e7b03..6a5ccf7309 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_2/2.png and b/data/tilesets/secondary/mauville/anim/flower_2/2.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_2/3.png b/data/tilesets/secondary/mauville/anim/flower_2/3.png index b1015d370b..26a621fe13 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_2/3.png and b/data/tilesets/secondary/mauville/anim/flower_2/3.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_2/4.png b/data/tilesets/secondary/mauville/anim/flower_2/4.png index 1e8cb84afe..03603068ec 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_2/4.png and b/data/tilesets/secondary/mauville/anim/flower_2/4.png differ diff --git a/gflib/bg.c b/gflib/bg.c index c3a4be1d46..6e97be2073 100644 --- a/gflib/bg.c +++ b/gflib/bg.c @@ -776,75 +776,75 @@ void SetBgAffine(u8 bg, s32 srcCenterX, s32 srcCenterY, s16 dispCenterX, s16 dis SetBgAffineInternal(bg, srcCenterX, srcCenterY, dispCenterX, dispCenterY, scaleX, scaleY, rotationAngle); } -u8 Unused_AdjustBgMosaic(u8 a1, u8 a2) +u8 Unused_AdjustBgMosaic(u8 val, u8 mode) { - u16 result = GetGpuReg(REG_OFFSET_MOSAIC); - s16 test1 = result & 0xF; - s16 test2 = (result >> 4) & 0xF; + u16 mosaic = GetGpuReg(REG_OFFSET_MOSAIC); + s16 bgH = mosaic & 0xF; + s16 bgV = (mosaic >> 4) & 0xF; - result &= 0xFF00; + mosaic &= 0xFF00; // clear background mosaic sizes - switch (a2) + switch (mode) { - case 0: + case BG_MOSAIC_SET_HV: default: - test1 = a1 & 0xF; - test2 = a1 >> 0x4; + bgH = val & 0xF; + bgV = val >> 0x4; break; - case 1: - test1 = a1 & 0xF; + case BG_MOSAIC_SET_H: + bgH = val & 0xF; break; - case 2: - if ((test1 + a1) > 0xF) + case BG_MOSAIC_ADD_H: + if ((bgH + val) > 0xF) { - test1 = 0xF; + bgH = 0xF; } else { - test1 += a1; + bgH += val; } break; - case 3: - if ((test1 - a1) < 0) + case BG_MOSAIC_SUB_H: + if ((bgH - val) < 0) { - test1 = 0x0; + bgH = 0x0; } else { - test1 -= a1; + bgH -= val; } break; - case 4: - test2 = a1 & 0xF; + case BG_MOSAIC_SET_V: + bgV = val & 0xF; break; - case 5: - if ((test2 + a1) > 0xF) + case BG_MOSAIC_ADD_V: + if ((bgV + val) > 0xF) { - test2 = 0xF; + bgV = 0xF; } else { - test2 += a1; + bgV += val; } break; - case 6: - if ((test2 - a1) < 0) + case BG_MOSAIC_SUB_V: + if ((bgV - val) < 0) { - test2 = 0x0; + bgV = 0x0; } else { - test2 -= a1; + bgV -= val; } break; } - result |= ((test2 << 0x4) & 0xF0); - result |= (test1 & 0xF); + mosaic |= ((bgV << 0x4) & 0xF0); + mosaic |= (bgH & 0xF); - SetGpuReg(REG_OFFSET_MOSAIC, result); + SetGpuReg(REG_OFFSET_MOSAIC, mosaic); - return result; + return mosaic; } void SetBgTilemapBuffer(u8 bg, void *tilemap) @@ -1053,7 +1053,7 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt for (x16 = x; x16 < (x + width); x16++) { CopyTileMapEntry(&firstTileNum, &((u16*)sGpuBgConfigs2[bg].tilemap)[(u16)GetTileMapIndexFromCoords(x16, y16, attribute, mode, mode2)], paletteSlot, 0, 0); - firstTileNum = (firstTileNum & (METATILE_COLLISION_MASK | METATILE_ELEVATION_MASK)) + ((firstTileNum + tileNumDelta) & METATILE_ID_MASK); + firstTileNum = (firstTileNum & (MAPGRID_COLLISION_MASK | MAPGRID_ELEVATION_MASK)) + ((firstTileNum + tileNumDelta) & MAPGRID_METATILE_ID_MASK); } } break; @@ -1064,7 +1064,7 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt for (x16 = x; x16 < (x + width); x16++) { ((u8*)sGpuBgConfigs2[bg].tilemap)[(y16 * mode3) + x16] = firstTileNum; - firstTileNum = (firstTileNum & (METATILE_COLLISION_MASK | METATILE_ELEVATION_MASK)) + ((firstTileNum + tileNumDelta) & METATILE_ID_MASK); + firstTileNum = (firstTileNum & (MAPGRID_COLLISION_MASK | MAPGRID_ELEVATION_MASK)) + ((firstTileNum + tileNumDelta) & MAPGRID_METATILE_ID_MASK); } } break; diff --git a/gflib/bg.h b/gflib/bg.h index 3a0bf3bf90..d8b5a54043 100644 --- a/gflib/bg.h +++ b/gflib/bg.h @@ -28,6 +28,17 @@ enum { BG_COORD_SUB, }; +// Modes for Unused_AdjustBgMosaic +enum { + BG_MOSAIC_SET_HV, + BG_MOSAIC_SET_H, + BG_MOSAIC_ADD_H, + BG_MOSAIC_SUB_H, + BG_MOSAIC_SET_V, + BG_MOSAIC_ADD_V, + BG_MOSAIC_SUB_V, +}; + struct BgTemplate { u16 bg:2; // 0x1, 0x2 -> 0x3 diff --git a/gflib/malloc.c b/gflib/malloc.c index 38fc8939e4..d0b9497635 100644 --- a/gflib/malloc.c +++ b/gflib/malloc.c @@ -2,7 +2,6 @@ static void *sHeapStart; static u32 sHeapSize; -static u32 sFiller; // needed to align dma3_manager.o(.bss) #define MALLOC_SYSTEM_ID 0xA3A3 diff --git a/gflib/sprite.h b/gflib/sprite.h index 595ecd7dbd..e53737981b 100644 --- a/gflib/sprite.h +++ b/gflib/sprite.h @@ -281,7 +281,6 @@ void FreeSpriteTiles(struct Sprite *sprite); void FreeSpritePalette(struct Sprite *sprite); void FreeSpriteOamMatrix(struct Sprite *sprite); void DestroySpriteAndFreeResources(struct Sprite *sprite); -void sub_800142C(u32 a1, u32 a2, u16 *a3, u16 a4, u32 a5); void AnimateSprite(struct Sprite *sprite); void SetSpriteMatrixAnchor(struct Sprite* sprite, s16 x, s16 y); void StartSpriteAnim(struct Sprite *sprite, u8 animNum); diff --git a/gflib/string_util.c b/gflib/string_util.c index 9463b4a7b4..bc6f976c71 100644 --- a/gflib/string_util.c +++ b/gflib/string_util.c @@ -25,10 +25,10 @@ static const s32 sPowersOfTen[] = 1000000000, }; -u8 *StringCopy10(u8 *dest, const u8 *src) +u8 *StringCopy_Nickname(u8 *dest, const u8 *src) { u8 i; - u32 limit = 10; + u32 limit = POKEMON_NAME_LENGTH; for (i = 0; i < limit; i++) { @@ -42,10 +42,10 @@ u8 *StringCopy10(u8 *dest, const u8 *src) return &dest[i]; } -u8 *StringGetEnd10(u8 *str) +u8 *StringGet_Nickname(u8 *str) { u8 i; - u32 limit = 10; + u32 limit = POKEMON_NAME_LENGTH; for (i = 0; i < limit; i++) if (str[i] == EOS) @@ -55,10 +55,10 @@ u8 *StringGetEnd10(u8 *str) return &str[i]; } -u8 *StringCopy7(u8 *dest, const u8 *src) +u8 *StringCopy_PlayerName(u8 *dest, const u8 *src) { s32 i; - s32 limit = 7; + s32 limit = PLAYER_NAME_LENGTH; for (i = 0; i < limit; i++) { diff --git a/gflib/string_util.h b/gflib/string_util.h index 7f3b64add8..0a8a99fb98 100644 --- a/gflib/string_util.h +++ b/gflib/string_util.h @@ -13,9 +13,9 @@ enum StringConvertMode STR_CONV_MODE_LEADING_ZEROS }; -u8 *StringCopy10(u8 *dest, const u8 *src); -u8 *StringGetEnd10(u8 *str); -u8 *StringCopy7(u8 *dest, const u8 *src); +u8 *StringCopy_Nickname(u8 *dest, const u8 *src); +u8 *StringGet_Nickname(u8 *str); +u8 *StringCopy_PlayerName(u8 *dest, const u8 *src); u8 *StringCopy(u8 *dest, const u8 *src); u8 *StringAppend(u8 *dest, const u8 *src); u8 *StringCopyN(u8 *dest, const u8 *src, u8 n); diff --git a/graphics/misc/bag.pal b/graphics/bag/bag.pal similarity index 100% rename from graphics/misc/bag.pal rename to graphics/bag/bag.pal diff --git a/graphics/misc/bag_female.png b/graphics/bag/bag_female.png similarity index 100% rename from graphics/misc/bag_female.png rename to graphics/bag/bag_female.png diff --git a/graphics/misc/bag_male.png b/graphics/bag/bag_male.png similarity index 100% rename from graphics/misc/bag_male.png rename to graphics/bag/bag_male.png diff --git a/graphics/interface/bag_pyramid.pal b/graphics/bag/bag_pyramid.pal similarity index 100% rename from graphics/interface/bag_pyramid.pal rename to graphics/bag/bag_pyramid.pal diff --git a/graphics/interface/bag_pyramid.png b/graphics/bag/bag_pyramid.png similarity index 100% rename from graphics/interface/bag_pyramid.png rename to graphics/bag/bag_pyramid.png diff --git a/graphics/interface/berry_tag.bin b/graphics/bag/berry_tag.bin similarity index 100% rename from graphics/interface/berry_tag.bin rename to graphics/bag/berry_tag.bin diff --git a/graphics/interface/berry_tag_screen.pal b/graphics/bag/berry_tag_screen.pal similarity index 100% rename from graphics/interface/berry_tag_screen.pal rename to graphics/bag/berry_tag_screen.pal diff --git a/graphics/interface/berry_tag_title.bin b/graphics/bag/berry_tag_title.bin similarity index 100% rename from graphics/interface/berry_tag_title.bin rename to graphics/bag/berry_tag_title.bin diff --git a/graphics/interface/check_berry.pal b/graphics/bag/check_berry.pal similarity index 100% rename from graphics/interface/check_berry.pal rename to graphics/bag/check_berry.pal diff --git a/graphics/interface/check_berry.png b/graphics/bag/check_berry.png similarity index 100% rename from graphics/interface/check_berry.png rename to graphics/bag/check_berry.png diff --git a/graphics/interface/check_berry_circle.png b/graphics/bag/check_berry_circle.png similarity index 100% rename from graphics/interface/check_berry_circle.png rename to graphics/bag/check_berry_circle.png diff --git a/graphics/interface/hm.png b/graphics/bag/hm.png similarity index 100% rename from graphics/interface/hm.png rename to graphics/bag/hm.png diff --git a/graphics/interface/bag_screen_tilemap.bin b/graphics/bag/menu.bin similarity index 100% rename from graphics/interface/bag_screen_tilemap.bin rename to graphics/bag/menu.bin diff --git a/graphics/interface/bag_screen.png b/graphics/bag/menu.png similarity index 100% rename from graphics/interface/bag_screen.png rename to graphics/bag/menu.png diff --git a/graphics/interface/bag_screen_female.pal b/graphics/bag/menu_female.pal similarity index 100% rename from graphics/interface/bag_screen_female.pal rename to graphics/bag/menu_female.pal diff --git a/graphics/interface/bag_screen_male.pal b/graphics/bag/menu_male.pal similarity index 100% rename from graphics/interface/bag_screen_male.pal rename to graphics/bag/menu_male.pal diff --git a/graphics/interface/bag_pyramid_tilemap.bin b/graphics/bag/menu_pyramid.bin similarity index 100% rename from graphics/interface/bag_pyramid_tilemap.bin rename to graphics/bag/menu_pyramid.bin diff --git a/graphics/interface/bag_pyramid_interface.pal b/graphics/bag/menu_pyramid.pal similarity index 100% rename from graphics/interface/bag_pyramid_interface.pal rename to graphics/bag/menu_pyramid.pal diff --git a/graphics/interface/bag_spinner.png b/graphics/bag/rotating_ball.png similarity index 100% rename from graphics/interface/bag_spinner.png rename to graphics/bag/rotating_ball.png diff --git a/graphics/interface/select_button.png b/graphics/bag/select_button.png similarity index 100% rename from graphics/interface/select_button.png rename to graphics/bag/select_button.png diff --git a/graphics/interface/ball/dive.png b/graphics/balls/dive.png similarity index 100% rename from graphics/interface/ball/dive.png rename to graphics/balls/dive.png diff --git a/graphics/interface/ball/great.png b/graphics/balls/great.png similarity index 100% rename from graphics/interface/ball/great.png rename to graphics/balls/great.png diff --git a/graphics/interface/ball/luxury.png b/graphics/balls/luxury.png similarity index 100% rename from graphics/interface/ball/luxury.png rename to graphics/balls/luxury.png diff --git a/graphics/interface/ball/master.png b/graphics/balls/master.png similarity index 100% rename from graphics/interface/ball/master.png rename to graphics/balls/master.png diff --git a/graphics/interface/ball/nest.png b/graphics/balls/nest.png similarity index 100% rename from graphics/interface/ball/nest.png rename to graphics/balls/nest.png diff --git a/graphics/interface/ball/net.png b/graphics/balls/net.png similarity index 100% rename from graphics/interface/ball/net.png rename to graphics/balls/net.png diff --git a/graphics/interface/ball_open.png b/graphics/balls/open.png similarity index 100% rename from graphics/interface/ball_open.png rename to graphics/balls/open.png diff --git a/graphics/interface/ball/poke.png b/graphics/balls/poke.png similarity index 100% rename from graphics/interface/ball/poke.png rename to graphics/balls/poke.png diff --git a/graphics/interface/ball/premier.png b/graphics/balls/premier.png similarity index 100% rename from graphics/interface/ball/premier.png rename to graphics/balls/premier.png diff --git a/graphics/interface/ball/repeat.png b/graphics/balls/repeat.png similarity index 100% rename from graphics/interface/ball/repeat.png rename to graphics/balls/repeat.png diff --git a/graphics/interface/ball/safari.png b/graphics/balls/safari.png similarity index 100% rename from graphics/interface/ball/safari.png rename to graphics/balls/safari.png diff --git a/graphics/interface/ball/timer.png b/graphics/balls/timer.png similarity index 100% rename from graphics/interface/ball/timer.png rename to graphics/balls/timer.png diff --git a/graphics/interface/ball/ultra.png b/graphics/balls/ultra.png similarity index 100% rename from graphics/interface/ball/ultra.png rename to graphics/balls/ultra.png diff --git a/graphics/battle_frontier/tourney_line_mask_map.bin b/graphics/battle_frontier/tourney_tree.bin similarity index 100% rename from graphics/battle_frontier/tourney_line_mask_map.bin rename to graphics/battle_frontier/tourney_tree.bin diff --git a/graphics/battle_frontier/tourney_bg.png b/graphics/battle_frontier/tourney_tree.png similarity index 100% rename from graphics/battle_frontier/tourney_bg.png rename to graphics/battle_frontier/tourney_tree.png diff --git a/graphics/interface/hpbar_anim.png b/graphics/battle_interface/hpbar_anim_unused.png similarity index 100% rename from graphics/interface/hpbar_anim.png rename to graphics/battle_interface/hpbar_anim_unused.png diff --git a/graphics/interface/party_menu_hpbar.png b/graphics/battle_interface/hpbar_unused.png similarity index 100% rename from graphics/interface/party_menu_hpbar.png rename to graphics/battle_interface/hpbar_unused.png diff --git a/graphics/interface/numbers1.png b/graphics/battle_interface/numbers1.png similarity index 100% rename from graphics/interface/numbers1.png rename to graphics/battle_interface/numbers1.png diff --git a/graphics/interface/numbers2.png b/graphics/battle_interface/numbers2.png similarity index 100% rename from graphics/interface/numbers2.png rename to graphics/battle_interface/numbers2.png diff --git a/graphics/battle_frontier/text_pp.pal b/graphics/battle_interface/text_pp.pal similarity index 100% rename from graphics/battle_frontier/text_pp.pal rename to graphics/battle_interface/text_pp.pal diff --git a/graphics/berry_crush/crusher.bin b/graphics/berry_crush/text_windows.bin similarity index 100% rename from graphics/berry_crush/crusher.bin rename to graphics/berry_crush/text_windows.bin diff --git a/graphics/unused/intro_birch_beauty.png b/graphics/birch_speech/unused_beauty.png similarity index 100% rename from graphics/unused/intro_birch_beauty.png rename to graphics/birch_speech/unused_beauty.png diff --git a/graphics/misc/cave_transition_black.pal b/graphics/cave_transition/black.pal similarity index 100% rename from graphics/misc/cave_transition_black.pal rename to graphics/cave_transition/black.pal diff --git a/graphics/misc/cave_transition_enter.pal b/graphics/cave_transition/enter.pal similarity index 100% rename from graphics/misc/cave_transition_enter.pal rename to graphics/cave_transition/enter.pal diff --git a/graphics/misc/cave_transition_exit.pal b/graphics/cave_transition/exit.pal similarity index 100% rename from graphics/misc/cave_transition_exit.pal rename to graphics/cave_transition/exit.pal diff --git a/graphics/misc/cave_transition_map.bin b/graphics/cave_transition/tilemap.bin similarity index 100% rename from graphics/misc/cave_transition_map.bin rename to graphics/cave_transition/tilemap.bin diff --git a/graphics/misc/cave_transition.png b/graphics/cave_transition/tiles.png similarity index 100% rename from graphics/misc/cave_transition.png rename to graphics/cave_transition/tiles.png diff --git a/graphics/misc/cave_transition_white.pal b/graphics/cave_transition/white.pal similarity index 100% rename from graphics/misc/cave_transition_white.pal rename to graphics/cave_transition/white.pal diff --git a/graphics/contest/unused_tilemap_2.bin b/graphics/contest/japanese/audience.bin similarity index 100% rename from graphics/contest/unused_tilemap_2.bin rename to graphics/contest/japanese/audience.bin diff --git a/graphics/contest/japanese/tilemap_1.bin b/graphics/contest/japanese/bg.bin similarity index 100% rename from graphics/contest/japanese/tilemap_1.bin rename to graphics/contest/japanese/bg.bin diff --git a/graphics/contest/unused_tilemap_1.bin b/graphics/contest/japanese/interface.bin similarity index 100% rename from graphics/contest/unused_tilemap_1.bin rename to graphics/contest/japanese/interface.bin diff --git a/graphics/contest/japanese/tilemap_2.bin b/graphics/contest/japanese/windows.bin similarity index 100% rename from graphics/contest/japanese/tilemap_2.bin rename to graphics/contest/japanese/windows.bin diff --git a/graphics/misc/decoration_putting_away_cursor.png b/graphics/decorations/put_away_cursor.png similarity index 100% rename from graphics/misc/decoration_putting_away_cursor.png rename to graphics/decorations/put_away_cursor.png diff --git a/graphics/misc/diploma_hoenn.pal b/graphics/diploma/hoenn.pal similarity index 100% rename from graphics/misc/diploma_hoenn.pal rename to graphics/diploma/hoenn.pal diff --git a/graphics/misc/diploma_national.pal b/graphics/diploma/national.pal similarity index 100% rename from graphics/misc/diploma_national.pal rename to graphics/diploma/national.pal diff --git a/graphics/misc/diploma_map.bin b/graphics/diploma/tilemap.bin similarity index 100% rename from graphics/misc/diploma_map.bin rename to graphics/diploma/tilemap.bin diff --git a/graphics/misc/diploma.png b/graphics/diploma/tiles.png similarity index 100% rename from graphics/misc/diploma.png rename to graphics/diploma/tiles.png diff --git a/graphics/misc/deoxys1.pal b/graphics/field_effects/palettes/deoxys_rock_1.pal similarity index 100% rename from graphics/misc/deoxys1.pal rename to graphics/field_effects/palettes/deoxys_rock_1.pal diff --git a/graphics/misc/deoxys10.pal b/graphics/field_effects/palettes/deoxys_rock_10.pal similarity index 100% rename from graphics/misc/deoxys10.pal rename to graphics/field_effects/palettes/deoxys_rock_10.pal diff --git a/graphics/misc/deoxys11.pal b/graphics/field_effects/palettes/deoxys_rock_11.pal similarity index 100% rename from graphics/misc/deoxys11.pal rename to graphics/field_effects/palettes/deoxys_rock_11.pal diff --git a/graphics/misc/deoxys2.pal b/graphics/field_effects/palettes/deoxys_rock_2.pal similarity index 100% rename from graphics/misc/deoxys2.pal rename to graphics/field_effects/palettes/deoxys_rock_2.pal diff --git a/graphics/misc/deoxys3.pal b/graphics/field_effects/palettes/deoxys_rock_3.pal similarity index 100% rename from graphics/misc/deoxys3.pal rename to graphics/field_effects/palettes/deoxys_rock_3.pal diff --git a/graphics/misc/deoxys4.pal b/graphics/field_effects/palettes/deoxys_rock_4.pal similarity index 100% rename from graphics/misc/deoxys4.pal rename to graphics/field_effects/palettes/deoxys_rock_4.pal diff --git a/graphics/misc/deoxys5.pal b/graphics/field_effects/palettes/deoxys_rock_5.pal similarity index 100% rename from graphics/misc/deoxys5.pal rename to graphics/field_effects/palettes/deoxys_rock_5.pal diff --git a/graphics/misc/deoxys6.pal b/graphics/field_effects/palettes/deoxys_rock_6.pal similarity index 100% rename from graphics/misc/deoxys6.pal rename to graphics/field_effects/palettes/deoxys_rock_6.pal diff --git a/graphics/misc/deoxys7.pal b/graphics/field_effects/palettes/deoxys_rock_7.pal similarity index 100% rename from graphics/misc/deoxys7.pal rename to graphics/field_effects/palettes/deoxys_rock_7.pal diff --git a/graphics/misc/deoxys8.pal b/graphics/field_effects/palettes/deoxys_rock_8.pal similarity index 100% rename from graphics/misc/deoxys8.pal rename to graphics/field_effects/palettes/deoxys_rock_8.pal diff --git a/graphics/misc/deoxys9.pal b/graphics/field_effects/palettes/deoxys_rock_9.pal similarity index 100% rename from graphics/misc/deoxys9.pal rename to graphics/field_effects/palettes/deoxys_rock_9.pal diff --git a/graphics/field_effects/pics/deoxys_rock_fragment_bottom_left.png b/graphics/field_effects/pics/deoxys_rock_fragment_bottom_left.png new file mode 100644 index 0000000000..bc4f27a40d Binary files /dev/null and b/graphics/field_effects/pics/deoxys_rock_fragment_bottom_left.png differ diff --git a/graphics/field_effects/pics/deoxys_rock_fragment_bottom_right.png b/graphics/field_effects/pics/deoxys_rock_fragment_bottom_right.png new file mode 100644 index 0000000000..48cd43d973 Binary files /dev/null and b/graphics/field_effects/pics/deoxys_rock_fragment_bottom_right.png differ diff --git a/graphics/field_effects/pics/deoxys_rock_fragment_top_left.png b/graphics/field_effects/pics/deoxys_rock_fragment_top_left.png new file mode 100644 index 0000000000..f0eb9c0cb9 Binary files /dev/null and b/graphics/field_effects/pics/deoxys_rock_fragment_top_left.png differ diff --git a/graphics/field_effects/pics/deoxys_rock_fragment_top_right.png b/graphics/field_effects/pics/deoxys_rock_fragment_top_right.png new file mode 100644 index 0000000000..1fac486c90 Binary files /dev/null and b/graphics/field_effects/pics/deoxys_rock_fragment_top_right.png differ diff --git a/graphics/field_effects/pics/emotion_exclamation.png b/graphics/field_effects/pics/emotion_exclamation.png new file mode 100644 index 0000000000..798b830923 Binary files /dev/null and b/graphics/field_effects/pics/emotion_exclamation.png differ diff --git a/graphics/field_effects/pics/emotion_heart.png b/graphics/field_effects/pics/emotion_heart.png new file mode 100644 index 0000000000..783a1e3bd6 Binary files /dev/null and b/graphics/field_effects/pics/emotion_heart.png differ diff --git a/graphics/field_effects/pics/emotion_question.png b/graphics/field_effects/pics/emotion_question.png new file mode 100644 index 0000000000..4907f14b7f Binary files /dev/null and b/graphics/field_effects/pics/emotion_question.png differ diff --git a/graphics/misc/field_move_streaks_map.bin b/graphics/field_effects/pics/field_move_streaks.bin similarity index 100% rename from graphics/misc/field_move_streaks_map.bin rename to graphics/field_effects/pics/field_move_streaks.bin diff --git a/graphics/misc/field_move_streaks.png b/graphics/field_effects/pics/field_move_streaks.png similarity index 100% rename from graphics/misc/field_move_streaks.png rename to graphics/field_effects/pics/field_move_streaks.png diff --git a/graphics/misc/darkness_field_move_streaks_map.bin b/graphics/field_effects/pics/field_move_streaks_indoors.bin similarity index 100% rename from graphics/misc/darkness_field_move_streaks_map.bin rename to graphics/field_effects/pics/field_move_streaks_indoors.bin diff --git a/graphics/misc/darkness_field_move_streaks.png b/graphics/field_effects/pics/field_move_streaks_indoors.png similarity index 100% rename from graphics/misc/darkness_field_move_streaks.png rename to graphics/field_effects/pics/field_move_streaks_indoors.png diff --git a/graphics/field_effects/pics/hof_monitor_big.png b/graphics/field_effects/pics/hof_monitor_big.png new file mode 100644 index 0000000000..c70046ad71 Binary files /dev/null and b/graphics/field_effects/pics/hof_monitor_big.png differ diff --git a/graphics/field_effects/pics/hof_monitor_small.png b/graphics/field_effects/pics/hof_monitor_small.png new file mode 100644 index 0000000000..368bbfce42 Binary files /dev/null and b/graphics/field_effects/pics/hof_monitor_small.png differ diff --git a/graphics/field_effects/pics/unknown_16.png b/graphics/field_effects/pics/jump_long_grass.png similarity index 100% rename from graphics/field_effects/pics/unknown_16.png rename to graphics/field_effects/pics/jump_long_grass.png diff --git a/graphics/field_effects/pics/pokeball_glow.png b/graphics/field_effects/pics/pokeball_glow.png new file mode 100644 index 0000000000..6e074afc3f Binary files /dev/null and b/graphics/field_effects/pics/pokeball_glow.png differ diff --git a/graphics/misc/pokecenter_monitor/0.png b/graphics/field_effects/pics/pokecenter_monitor/0.png similarity index 100% rename from graphics/misc/pokecenter_monitor/0.png rename to graphics/field_effects/pics/pokecenter_monitor/0.png diff --git a/graphics/misc/pokecenter_monitor/1.png b/graphics/field_effects/pics/pokecenter_monitor/1.png similarity index 100% rename from graphics/misc/pokecenter_monitor/1.png rename to graphics/field_effects/pics/pokecenter_monitor/1.png diff --git a/graphics/misc/spotlight.png b/graphics/field_effects/pics/spotlight.png similarity index 100% rename from graphics/misc/spotlight.png rename to graphics/field_effects/pics/spotlight.png diff --git a/graphics/frontier_pass/unused.bin b/graphics/frontier_pass/card_ball_filled.bin similarity index 100% rename from graphics/frontier_pass/unused.bin rename to graphics/frontier_pass/card_ball_filled.bin diff --git a/graphics/misc/main_menu_bg.pal b/graphics/interface/main_menu_bg.pal similarity index 100% rename from graphics/misc/main_menu_bg.pal rename to graphics/interface/main_menu_bg.pal diff --git a/graphics/misc/main_menu_text.pal b/graphics/interface/main_menu_text.pal similarity index 100% rename from graphics/misc/main_menu_text.pal rename to graphics/interface/main_menu_text.pal diff --git a/graphics/misc/mon_markings.png b/graphics/interface/mon_markings.png similarity index 100% rename from graphics/misc/mon_markings.png rename to graphics/interface/mon_markings.png diff --git a/graphics/misc/mon_markings_menu.png b/graphics/interface/mon_markings_menu.png similarity index 100% rename from graphics/misc/mon_markings_menu.png rename to graphics/interface/mon_markings_menu.png diff --git a/graphics/misc/option_menu_equals_sign.png b/graphics/interface/option_menu_equals_sign.png similarity index 100% rename from graphics/misc/option_menu_equals_sign.png rename to graphics/interface/option_menu_equals_sign.png diff --git a/graphics/misc/option_menu_text.pal b/graphics/interface/option_menu_text.pal similarity index 100% rename from graphics/misc/option_menu_text.pal rename to graphics/interface/option_menu_text.pal diff --git a/graphics/interface/bag_swap.png b/graphics/interface/swap_line.png similarity index 100% rename from graphics/interface/bag_swap.png rename to graphics/interface/swap_line.png diff --git a/graphics/minigame_countdown/321start.png b/graphics/link/321start.png similarity index 100% rename from graphics/minigame_countdown/321start.png rename to graphics/link/321start.png diff --git a/graphics/minigame_countdown/321start_static.png b/graphics/link/321start_static.png similarity index 100% rename from graphics/minigame_countdown/321start_static.png rename to graphics/link/321start_static.png diff --git a/graphics/interface/comm_error_bg.png b/graphics/link/comm_error_bg.png similarity index 100% rename from graphics/interface/comm_error_bg.png rename to graphics/link/comm_error_bg.png diff --git a/graphics/interface/link_test_digits.png b/graphics/link/test_digits.png similarity index 100% rename from graphics/interface/link_test_digits.png rename to graphics/link/test_digits.png diff --git a/graphics/interface/wireless_link_display.bin b/graphics/link/wireless_display.bin similarity index 100% rename from graphics/interface/wireless_link_display.bin rename to graphics/link/wireless_display.bin diff --git a/graphics/interface/wireless_link_display.png b/graphics/link/wireless_display.png similarity index 100% rename from graphics/interface/wireless_link_display.png rename to graphics/link/wireless_display.png diff --git a/graphics/interface/wireless_link_icon.png b/graphics/link/wireless_icon.png similarity index 100% rename from graphics/interface/wireless_link_icon.png rename to graphics/link/wireless_icon.png diff --git a/graphics/interface/wireless_info_screen.bin b/graphics/link/wireless_info_screen.bin similarity index 100% rename from graphics/interface/wireless_info_screen.bin rename to graphics/link/wireless_info_screen.bin diff --git a/graphics/interface/wireless_info_screen.pal b/graphics/link/wireless_info_screen.pal similarity index 100% rename from graphics/interface/wireless_info_screen.pal rename to graphics/link/wireless_info_screen.pal diff --git a/graphics/interface/wireless_info_screen.png b/graphics/link/wireless_info_screen.png similarity index 100% rename from graphics/interface/wireless_info_screen.png rename to graphics/link/wireless_info_screen.png diff --git a/graphics/interface/map_popup/brick.png b/graphics/map_popup/brick.png similarity index 100% rename from graphics/interface/map_popup/brick.png rename to graphics/map_popup/brick.png diff --git a/graphics/interface/map_popup/brick_outline.png b/graphics/map_popup/brick_outline.png similarity index 100% rename from graphics/interface/map_popup/brick_outline.png rename to graphics/map_popup/brick_outline.png diff --git a/graphics/interface/map_popup/marble.png b/graphics/map_popup/marble.png similarity index 100% rename from graphics/interface/map_popup/marble.png rename to graphics/map_popup/marble.png diff --git a/graphics/interface/map_popup/marble_outline.png b/graphics/map_popup/marble_outline.png similarity index 100% rename from graphics/interface/map_popup/marble_outline.png rename to graphics/map_popup/marble_outline.png diff --git a/graphics/interface/map_popup/stone.png b/graphics/map_popup/stone.png similarity index 100% rename from graphics/interface/map_popup/stone.png rename to graphics/map_popup/stone.png diff --git a/graphics/interface/map_popup/stone2.png b/graphics/map_popup/stone2.png similarity index 100% rename from graphics/interface/map_popup/stone2.png rename to graphics/map_popup/stone2.png diff --git a/graphics/interface/map_popup/stone2_outline.png b/graphics/map_popup/stone2_outline.png similarity index 100% rename from graphics/interface/map_popup/stone2_outline.png rename to graphics/map_popup/stone2_outline.png diff --git a/graphics/interface/map_popup/stone_outline.png b/graphics/map_popup/stone_outline.png similarity index 100% rename from graphics/interface/map_popup/stone_outline.png rename to graphics/map_popup/stone_outline.png diff --git a/graphics/interface/map_popup/underwater.pal b/graphics/map_popup/underwater.pal similarity index 100% rename from graphics/interface/map_popup/underwater.pal rename to graphics/map_popup/underwater.pal diff --git a/graphics/interface/map_popup/underwater.png b/graphics/map_popup/underwater.png similarity index 100% rename from graphics/interface/map_popup/underwater.png rename to graphics/map_popup/underwater.png diff --git a/graphics/interface/map_popup/underwater_outline.png b/graphics/map_popup/underwater_outline.png similarity index 100% rename from graphics/interface/map_popup/underwater_outline.png rename to graphics/map_popup/underwater_outline.png diff --git a/graphics/interface/map_popup/wood.png b/graphics/map_popup/wood.png similarity index 100% rename from graphics/interface/map_popup/wood.png rename to graphics/map_popup/wood.png diff --git a/graphics/interface/map_popup/wood_outline.png b/graphics/map_popup/wood_outline.png similarity index 100% rename from graphics/interface/map_popup/wood_outline.png rename to graphics/map_popup/wood_outline.png diff --git a/graphics/misc/deoxys_rock_fragment_bottom_left.png b/graphics/misc/deoxys_rock_fragment_bottom_left.png deleted file mode 100644 index 3f5b8d5c39..0000000000 Binary files a/graphics/misc/deoxys_rock_fragment_bottom_left.png and /dev/null differ diff --git a/graphics/misc/deoxys_rock_fragment_bottom_right.png b/graphics/misc/deoxys_rock_fragment_bottom_right.png deleted file mode 100644 index 7684451e49..0000000000 Binary files a/graphics/misc/deoxys_rock_fragment_bottom_right.png and /dev/null differ diff --git a/graphics/misc/deoxys_rock_fragment_top_left.png b/graphics/misc/deoxys_rock_fragment_top_left.png deleted file mode 100644 index d601cb6e54..0000000000 Binary files a/graphics/misc/deoxys_rock_fragment_top_left.png and /dev/null differ diff --git a/graphics/misc/deoxys_rock_fragment_top_right.png b/graphics/misc/deoxys_rock_fragment_top_right.png deleted file mode 100644 index 01f10cd07b..0000000000 Binary files a/graphics/misc/deoxys_rock_fragment_top_right.png and /dev/null differ diff --git a/graphics/misc/emotion_exclamation.png b/graphics/misc/emotion_exclamation.png deleted file mode 100644 index 595566d2fe..0000000000 Binary files a/graphics/misc/emotion_exclamation.png and /dev/null differ diff --git a/graphics/misc/emotion_heart.png b/graphics/misc/emotion_heart.png deleted file mode 100644 index 9995984b4c..0000000000 Binary files a/graphics/misc/emotion_heart.png and /dev/null differ diff --git a/graphics/misc/emotion_question.png b/graphics/misc/emotion_question.png deleted file mode 100644 index 7376fd058e..0000000000 Binary files a/graphics/misc/emotion_question.png and /dev/null differ diff --git a/graphics/misc/hof_monitor_big.png b/graphics/misc/hof_monitor_big.png deleted file mode 100644 index 510e6a232d..0000000000 Binary files a/graphics/misc/hof_monitor_big.png and /dev/null differ diff --git a/graphics/misc/hof_monitor_small.png b/graphics/misc/hof_monitor_small.png deleted file mode 100644 index dcff330952..0000000000 Binary files a/graphics/misc/hof_monitor_small.png and /dev/null differ diff --git a/graphics/misc/pokeball_glow.png b/graphics/misc/pokeball_glow.png deleted file mode 100644 index 1c1133b769..0000000000 Binary files a/graphics/misc/pokeball_glow.png and /dev/null differ diff --git a/graphics/interface/party_menu_bg.bin b/graphics/party_menu/bg.bin similarity index 100% rename from graphics/interface/party_menu_bg.bin rename to graphics/party_menu/bg.bin diff --git a/graphics/interface/party_menu_bg.pal b/graphics/party_menu/bg.pal similarity index 100% rename from graphics/interface/party_menu_bg.pal rename to graphics/party_menu/bg.pal diff --git a/graphics/interface/party_menu_bg.png b/graphics/party_menu/bg.png similarity index 100% rename from graphics/interface/party_menu_bg.png rename to graphics/party_menu/bg.png diff --git a/graphics/interface/party_menu_cancel_button.bin b/graphics/party_menu/cancel_button.bin similarity index 100% rename from graphics/interface/party_menu_cancel_button.bin rename to graphics/party_menu/cancel_button.bin diff --git a/graphics/interface/party_menu_confirm_button.bin b/graphics/party_menu/confirm_button.bin similarity index 100% rename from graphics/interface/party_menu_confirm_button.bin rename to graphics/party_menu/confirm_button.bin diff --git a/graphics/interface/hold_icons.png b/graphics/party_menu/hold_icons.png similarity index 100% rename from graphics/interface/hold_icons.png rename to graphics/party_menu/hold_icons.png diff --git a/graphics/interface/party_menu_pokeball.png b/graphics/party_menu/pokeball.png similarity index 100% rename from graphics/interface/party_menu_pokeball.png rename to graphics/party_menu/pokeball.png diff --git a/graphics/interface/party_menu_pokeball_small.png b/graphics/party_menu/pokeball_small.png similarity index 100% rename from graphics/interface/party_menu_pokeball_small.png rename to graphics/party_menu/pokeball_small.png diff --git a/graphics/party_menu/slot_main.bin b/graphics/party_menu/slot_main.bin new file mode 100755 index 0000000000..2f3e729f6d Binary files /dev/null and b/graphics/party_menu/slot_main.bin differ diff --git a/graphics/party_menu/slot_main_no_hp.bin b/graphics/party_menu/slot_main_no_hp.bin new file mode 100755 index 0000000000..653ad1a64b Binary files /dev/null and b/graphics/party_menu/slot_main_no_hp.bin differ diff --git a/graphics/party_menu/slot_wide.bin b/graphics/party_menu/slot_wide.bin new file mode 100755 index 0000000000..c88b73bf78 Binary files /dev/null and b/graphics/party_menu/slot_wide.bin differ diff --git a/graphics/party_menu/slot_wide_empty.bin b/graphics/party_menu/slot_wide_empty.bin new file mode 100755 index 0000000000..3592178b3f Binary files /dev/null and b/graphics/party_menu/slot_wide_empty.bin differ diff --git a/graphics/party_menu/slot_wide_no_hp.bin b/graphics/party_menu/slot_wide_no_hp.bin new file mode 100755 index 0000000000..8f662da0ae Binary files /dev/null and b/graphics/party_menu/slot_wide_no_hp.bin differ diff --git a/graphics/interface/pokeblock_device.png b/graphics/pokeblock/device.png similarity index 100% rename from graphics/interface/pokeblock_device.png rename to graphics/pokeblock/device.png diff --git a/graphics/interface/pokeblock_feeding_bg_map.bin b/graphics/pokeblock/feeding_bg.bin similarity index 100% rename from graphics/interface/pokeblock_feeding_bg_map.bin rename to graphics/pokeblock/feeding_bg.bin diff --git a/graphics/interface/pokeblock.bin b/graphics/pokeblock/menu.bin similarity index 100% rename from graphics/interface/pokeblock.bin rename to graphics/pokeblock/menu.bin diff --git a/graphics/interface/pokeblock_case_frame.pal b/graphics/pokeblock/menu.pal similarity index 100% rename from graphics/interface/pokeblock_case_frame.pal rename to graphics/pokeblock/menu.pal diff --git a/graphics/interface/pokeblock_case_frame.png b/graphics/pokeblock/menu.png similarity index 100% rename from graphics/interface/pokeblock_case_frame.png rename to graphics/pokeblock/menu.png diff --git a/graphics/interface/region_map.bin b/graphics/pokedex/region_map.bin similarity index 100% rename from graphics/interface/region_map.bin rename to graphics/pokedex/region_map.bin diff --git a/graphics/interface/region_map.pal b/graphics/pokedex/region_map.pal similarity index 100% rename from graphics/interface/region_map.pal rename to graphics/pokedex/region_map.pal diff --git a/graphics/interface/region_map.png b/graphics/pokedex/region_map.png similarity index 100% rename from graphics/interface/region_map.png rename to graphics/pokedex/region_map.png diff --git a/graphics/interface/region_map_affine.bin b/graphics/pokedex/region_map_affine.bin similarity index 100% rename from graphics/interface/region_map_affine.bin rename to graphics/pokedex/region_map_affine.bin diff --git a/graphics/interface/region_map_affine.png b/graphics/pokedex/region_map_affine.png similarity index 100% rename from graphics/interface/region_map_affine.png rename to graphics/pokedex/region_map_affine.png diff --git a/graphics/misc/egg_hatch.png b/graphics/pokemon/egg/hatch.png similarity index 100% rename from graphics/misc/egg_hatch.png rename to graphics/pokemon/egg/hatch.png diff --git a/graphics/misc/egg_shard.png b/graphics/pokemon/egg/shard.png similarity index 100% rename from graphics/misc/egg_shard.png rename to graphics/pokemon/egg/shard.png diff --git a/graphics/pokemon_storage/close_box_button.bin b/graphics/pokemon_storage/close_box_button.bin new file mode 100755 index 0000000000..8b130a4818 Binary files /dev/null and b/graphics/pokemon_storage/close_box_button.bin differ diff --git a/graphics/pokemon_storage/party_slot_empty.bin b/graphics/pokemon_storage/party_slot_empty.bin new file mode 100755 index 0000000000..991c232f73 Binary files /dev/null and b/graphics/pokemon_storage/party_slot_empty.bin differ diff --git a/graphics/pokemon_storage/party_slot_filled.bin b/graphics/pokemon_storage/party_slot_filled.bin new file mode 100755 index 0000000000..c0b93bf145 Binary files /dev/null and b/graphics/pokemon_storage/party_slot_filled.bin differ diff --git a/graphics/pokemon_storage/pkmn_data.bin b/graphics/pokemon_storage/pkmn_data.bin new file mode 100755 index 0000000000..3336797aac Binary files /dev/null and b/graphics/pokemon_storage/pkmn_data.bin differ diff --git a/graphics/pokemon_storage/unknown.pal b/graphics/pokemon_storage/text_windows.pal similarity index 100% rename from graphics/pokemon_storage/unknown.pal rename to graphics/pokemon_storage/text_windows.pal diff --git a/graphics/misc/rotating_gate_1.png b/graphics/rotating_gates/l1.png similarity index 100% rename from graphics/misc/rotating_gate_1.png rename to graphics/rotating_gates/l1.png diff --git a/graphics/misc/rotating_gate_2.png b/graphics/rotating_gates/l2.png similarity index 100% rename from graphics/misc/rotating_gate_2.png rename to graphics/rotating_gates/l2.png diff --git a/graphics/misc/rotating_gate_3.png b/graphics/rotating_gates/l3.png similarity index 100% rename from graphics/misc/rotating_gate_3.png rename to graphics/rotating_gates/l3.png diff --git a/graphics/misc/rotating_gate_4.png b/graphics/rotating_gates/l4.png similarity index 100% rename from graphics/misc/rotating_gate_4.png rename to graphics/rotating_gates/l4.png diff --git a/graphics/misc/rotating_gate_5.png b/graphics/rotating_gates/t1.png similarity index 100% rename from graphics/misc/rotating_gate_5.png rename to graphics/rotating_gates/t1.png diff --git a/graphics/misc/rotating_gate_6.png b/graphics/rotating_gates/t2.png similarity index 100% rename from graphics/misc/rotating_gate_6.png rename to graphics/rotating_gates/t2.png diff --git a/graphics/misc/rotating_gate_7.png b/graphics/rotating_gates/t3.png similarity index 100% rename from graphics/misc/rotating_gate_7.png rename to graphics/rotating_gates/t3.png diff --git a/graphics/misc/rotating_gate_8.png b/graphics/rotating_gates/t4.png similarity index 100% rename from graphics/misc/rotating_gate_8.png rename to graphics/rotating_gates/t4.png diff --git a/graphics/interface/mart_frame.bin b/graphics/shop/menu.bin similarity index 100% rename from graphics/interface/mart_frame.bin rename to graphics/shop/menu.bin diff --git a/graphics/interface/mart_frame.png b/graphics/shop/menu.png similarity index 100% rename from graphics/interface/mart_frame.png rename to graphics/shop/menu.png diff --git a/graphics/interface/money.png b/graphics/shop/money.png similarity index 100% rename from graphics/interface/money.png rename to graphics/shop/money.png diff --git a/graphics/slot_machine/85A8524.bin b/graphics/slot_machine/85A8524.bin deleted file mode 100644 index 0325642780..0000000000 Binary files a/graphics/slot_machine/85A8524.bin and /dev/null differ diff --git a/graphics/misc/birch_bag_map.bin b/graphics/starter_choose/birch_bag.bin similarity index 100% rename from graphics/misc/birch_bag_map.bin rename to graphics/starter_choose/birch_bag.bin diff --git a/graphics/misc/birch_bag.png b/graphics/starter_choose/birch_bag.png similarity index 100% rename from graphics/misc/birch_bag.png rename to graphics/starter_choose/birch_bag.png diff --git a/graphics/misc/birch_grass_map.bin b/graphics/starter_choose/birch_grass.bin similarity index 100% rename from graphics/misc/birch_grass_map.bin rename to graphics/starter_choose/birch_grass.bin diff --git a/graphics/misc/birch_grass.png b/graphics/starter_choose/birch_grass.png similarity index 100% rename from graphics/misc/birch_grass.png rename to graphics/starter_choose/birch_grass.png diff --git a/graphics/misc/pokeball_selection.png b/graphics/starter_choose/pokeball_selection.png similarity index 100% rename from graphics/misc/pokeball_selection.png rename to graphics/starter_choose/pokeball_selection.png diff --git a/graphics/misc/starter_circle.png b/graphics/starter_choose/starter_circle.png similarity index 100% rename from graphics/misc/starter_circle.png rename to graphics/starter_choose/starter_circle.png diff --git a/graphics/interface/summary_a_button.png b/graphics/summary_screen/a_button.png similarity index 100% rename from graphics/interface/summary_a_button.png rename to graphics/summary_screen/a_button.png diff --git a/graphics/interface/summary_b_button.png b/graphics/summary_screen/b_button.png similarity index 100% rename from graphics/interface/summary_b_button.png rename to graphics/summary_screen/b_button.png diff --git a/graphics/interface/powacc_tilemap.bin b/graphics/summary_screen/effect_battle.bin similarity index 100% rename from graphics/interface/powacc_tilemap.bin rename to graphics/summary_screen/effect_battle.bin diff --git a/graphics/interface/summary.bin b/graphics/summary_screen/effect_cancel.bin similarity index 100% rename from graphics/interface/summary.bin rename to graphics/summary_screen/effect_cancel.bin diff --git a/graphics/interface/appealjam_tilemap.bin b/graphics/summary_screen/effect_contest.bin similarity index 100% rename from graphics/interface/appealjam_tilemap.bin rename to graphics/summary_screen/effect_contest.bin diff --git a/graphics/interface/summary_markings.pal b/graphics/summary_screen/markings.pal similarity index 100% rename from graphics/interface/summary_markings.pal rename to graphics/summary_screen/markings.pal diff --git a/graphics/interface/summary_frames.png b/graphics/summary_screen/move_select.png similarity index 100% rename from graphics/interface/summary_frames.png rename to graphics/summary_screen/move_select.png diff --git a/graphics/interface/summary_page_battle_moves.bin b/graphics/summary_screen/page_battle_moves.bin similarity index 100% rename from graphics/interface/summary_page_battle_moves.bin rename to graphics/summary_screen/page_battle_moves.bin diff --git a/graphics/interface/summary_page_contest_moves.bin b/graphics/summary_screen/page_contest_moves.bin similarity index 100% rename from graphics/interface/summary_page_contest_moves.bin rename to graphics/summary_screen/page_contest_moves.bin diff --git a/graphics/interface/summary_page_info.bin b/graphics/summary_screen/page_info.bin similarity index 100% rename from graphics/interface/summary_page_info.bin rename to graphics/summary_screen/page_info.bin diff --git a/graphics/interface/summary_page_info_copy.bin b/graphics/summary_screen/page_info_egg.bin similarity index 100% rename from graphics/interface/summary_page_info_copy.bin rename to graphics/summary_screen/page_info_egg.bin diff --git a/graphics/interface/summary_page_skills.bin b/graphics/summary_screen/page_skills.bin similarity index 100% rename from graphics/interface/summary_page_skills.bin rename to graphics/summary_screen/page_skills.bin diff --git a/graphics/interface/status_tilemap.bin b/graphics/summary_screen/status_tilemap.bin similarity index 100% rename from graphics/interface/status_tilemap.bin rename to graphics/summary_screen/status_tilemap.bin diff --git a/graphics/interface/summary_screen.pal b/graphics/summary_screen/tiles.pal similarity index 100% rename from graphics/interface/summary_screen.pal rename to graphics/summary_screen/tiles.pal diff --git a/graphics/interface/summary_screen.png b/graphics/summary_screen/tiles.png similarity index 100% rename from graphics/interface/summary_screen.png rename to graphics/summary_screen/tiles.png diff --git a/graphics/title_screen/title_screen1.bin b/graphics/title_screen/clouds.bin similarity index 100% rename from graphics/title_screen/title_screen1.bin rename to graphics/title_screen/clouds.bin diff --git a/graphics/title_screen/title_screen2.bin b/graphics/title_screen/pokemon_logo.bin similarity index 100% rename from graphics/title_screen/title_screen2.bin rename to graphics/title_screen/pokemon_logo.bin diff --git a/graphics/title_screen/unk_853EF78.pal b/graphics/title_screen/unused.pal similarity index 100% rename from graphics/title_screen/unk_853EF78.pal rename to graphics/title_screen/unused.pal diff --git a/graphics/link/gba.png b/graphics/trade/gba.png similarity index 100% rename from graphics/link/gba.png rename to graphics/trade/gba.png diff --git a/graphics/link/gba_pal2.pal b/graphics/trade/gba_pal2.pal similarity index 100% rename from graphics/link/gba_pal2.pal rename to graphics/trade/gba_pal2.pal diff --git a/graphics/misc/trainer_hill_ereader.pal b/graphics/trainer_hill/ereader.pal similarity index 100% rename from graphics/misc/trainer_hill_ereader.pal rename to graphics/trainer_hill/ereader.pal diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index eb36d4255f..9e5c191930 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -18,6 +18,8 @@ WALLPAPERGFXDIR := graphics/pokemon_storage/wallpapers OBJEVENTGFXDIR := graphics/object_events MISCGFXDIR := graphics/misc JPCONTESTGFXDIR := graphics/contest/japanese +POKEDEXGFXDIR := graphics/pokedex +STARTERGFXDIR := graphics/starter_choose types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark contest_types := cool beauty cute smart tough @@ -370,9 +372,9 @@ $(UNUSEDGFXDIR)/obi2.4bpp: $(UNUSEDGFXDIR)/old_bulbasaur2.4bpp \ $(UNUSEDGFXDIR)/old_battle_interface_3.4bpp @cat $^ >$@ -$(INTERFACEGFXDIR)/battle_bar.4bpp: $(INTERFACEGFXDIR)/hpbar_anim.4bpp \ - $(INTERFACEGFXDIR)/numbers1.4bpp \ - $(INTERFACEGFXDIR)/numbers2.4bpp +$(BATINTGFXDIR)/battle_bar.4bpp: $(BATINTGFXDIR)/hpbar_anim_unused.4bpp \ + $(BATINTGFXDIR)/numbers1.4bpp \ + $(BATINTGFXDIR)/numbers2.4bpp @cat $^ >$@ $(UNUSEDGFXDIR)/redyellowgreen_frame.bin: $(UNUSEDGFXDIR)/red_frame.bin \ @@ -428,7 +430,7 @@ $(MASKSGFXDIR)/unused_level_up.4bpp: %.4bpp: %.png $(BATTRANSGFXDIR)/vs_frame.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 16 -$(INTERFACEGFXDIR)/party_menu_bg.4bpp: %.4bpp: %.png +graphics/party_menu/bg.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 62 $(TYPESGFXDIR)/move_types.4bpp: $(types:%=$(TYPESGFXDIR)/%.4bpp) $(contest_types:%=$(TYPESGFXDIR)/contest_%.4bpp) @@ -439,7 +441,7 @@ $(TYPESGFXDIR)/move_types.gbapal: $(TYPESGFXDIR)/move_types_1.gbapal \ $(TYPESGFXDIR)/move_types_3.gbapal @cat $^ >$@ -$(INTERFACEGFXDIR)/bag_screen.4bpp: %.4bpp: %.png +graphics/bag/menu.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 53 $(RAYQUAZAGFXDIR)/scene_2/rayquaza.8bpp: %.8bpp: %.png @@ -500,7 +502,7 @@ $(SLOTMACHINEGFXDIR)/reel_time_gfx.4bpp: $(SLOTMACHINEGFXDIR)/reel_time_pikachu. $(SLOTMACHINEGFXDIR)/reel_time_machine.4bpp @cat $^ >$@ -$(UNUSEDGFXDIR)/intro_birch_beauty.4bpp: %.4bpp: %.png +graphics/birch_speech/unused_beauty.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 822 @@ -700,11 +702,11 @@ $(PKNAVGFXDIR)/device_outline.4bpp: %.4bpp: %.png $(PKNAVGFXDIR)/match_call/ui.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 13 -$(INTERFACEGFXDIR)/region_map.8bpp: %.8bpp: %.png +$(POKEDEXGFXDIR)/region_map.8bpp: %.8bpp: %.png $(GFX) $< $@ -num_tiles 232 -$(INTERFACEGFXDIR)/region_map_affine.8bpp: %.8bpp: %.png +$(POKEDEXGFXDIR)/region_map_affine.8bpp: %.8bpp: %.png $(GFX) $< $@ -num_tiles 233 -$(MISCGFXDIR)/birch_help.4bpp: $(MISCGFXDIR)/birch_bag.4bpp $(MISCGFXDIR)/birch_grass.4bpp +$(STARTERGFXDIR)/birch_help.4bpp: $(STARTERGFXDIR)/birch_bag.4bpp $(STARTERGFXDIR)/birch_grass.4bpp @cat $^ >$@ diff --git a/include/battle.h b/include/battle.h index 9434b9aa88..9656bab8d4 100644 --- a/include/battle.h +++ b/include/battle.h @@ -57,7 +57,7 @@ struct ResourceFlags { - u32 flags[4]; + u32 flags[MAX_BATTLERS_COUNT]; }; #define RESOURCE_FLAG_FLASH_FIRE 1 @@ -590,8 +590,8 @@ struct MonSpritesGfx { void* firstDecompressed; // ptr to the decompressed sprite of the first pokemon union { - void* ptr[MAX_BATTLERS_COUNT]; - u8* byte[MAX_BATTLERS_COUNT]; + void* ptr[MAX_BATTLERS_COUNT]; + u8* byte[MAX_BATTLERS_COUNT]; } sprites; struct SpriteTemplate templates[MAX_BATTLERS_COUNT]; struct SpriteFrameImage frameImages[MAX_BATTLERS_COUNT][4]; diff --git a/include/battle_anim.h b/include/battle_anim.h index 8745b0d264..d8b2cd4dbc 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -112,7 +112,6 @@ void GetBattleAnimBg1Data(struct BattleAnimBgData*); void GetBattleAnimBgData(struct BattleAnimBgData*, u32 arg1); u8 GetBattlerSpriteSubpriority(u8 battlerId); bool8 TranslateAnimHorizontalArc(struct Sprite *sprite); -void sub_80A6630(struct Sprite *sprite); void TranslateSpriteLinearByIdFixedPoint(struct Sprite *sprite); void ResetSpriteRotScale(u8 spriteId); void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation); @@ -129,7 +128,6 @@ void AnimLoadCompressedBgTilemapHandleContest(struct BattleAnimBgData*, const vo void AnimLoadCompressedBgGfx(u32, const u32*, u32); void UpdateAnimBg3ScreenSize(bool8); void TranslateSpriteInGrowingCircle(struct Sprite *); -void sub_80A653C(struct Sprite *); void SetBattlerSpriteYOffsetFromYScale(u8 spriteId); void PrepareEruptAnimTaskData(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7); u8 UpdateEruptAnimTask(struct Task *task); diff --git a/include/battle_arena.h b/include/battle_arena.h index c9a18ef618..cc0e72c0c1 100644 --- a/include/battle_arena.h +++ b/include/battle_arena.h @@ -6,7 +6,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state); void BattleArena_InitPoints(void); void BattleArena_AddMindPoints(u8 battler); void BattleArena_AddSkillPoints(u8 battler); -void BattleArena_DeductMindPoints(u8 battler, u16 stringId); +void BattleArena_DeductSkillPoints(u8 battler, u16 stringId); void DrawArenaRefereeTextBox(void); void EraseArenaRefereeTextBox(void); diff --git a/include/battle_factory.h b/include/battle_factory.h index 5606d60d1e..d414bdb3b1 100644 --- a/include/battle_factory.h +++ b/include/battle_factory.h @@ -3,7 +3,7 @@ void CallBattleFactoryFunction(void); bool8 InBattleFactory(void); -u8 GetFactoryMonFixedIV(u8 arg0, u8 arg1); +u8 GetFactoryMonFixedIV(u8 challengeNum, bool8 isLastBattle); void FillFactoryBrainParty(void); u8 GetNumPastRentalsRank(u8 battleMode, u8 lvlMode); u32 GetAiScriptsInBattleFactory(void); diff --git a/include/battle_pyramid.h b/include/battle_pyramid.h index c4a72095f0..62320358b6 100644 --- a/include/battle_pyramid.h +++ b/include/battle_pyramid.h @@ -14,7 +14,7 @@ void SoftResetInBattlePyramid(void); void CopyPyramidTrainerSpeechBefore(u16 trainerId); void CopyPyramidTrainerWinSpeech(u16 trainerId); void CopyPyramidTrainerLoseSpeech(u16 trainerId); -u8 GetBattlePyramindTrainerEncounterMusicId(u16 trainerId); +u8 GetTrainerEncounterMusicIdInBattlePyramid(u16 trainerId); void GenerateBattlePyramidFloorLayout(u16 *mapArg, bool8 setPlayerPosition); void LoadBattlePyramidObjectEventTemplates(void); void LoadBattlePyramidFloorObjectEventScripts(void); diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h index cb81ad8124..ed90d787f0 100644 --- a/include/battle_script_commands.h +++ b/include/battle_script_commands.h @@ -1,7 +1,6 @@ #ifndef GUARD_BATTLE_SCRIPT_COMMANDS_H #define GUARD_BATTLE_SCRIPT_COMMANDS_H -#include "constants/pokemon.h" #include "constants/battle_script_commands.h" // Arguments for 'flags' in HandleBattleWindow diff --git a/include/bike.h b/include/bike.h index afe773d42e..00f11aefe3 100644 --- a/include/bike.h +++ b/include/bike.h @@ -17,11 +17,11 @@ struct BikeHistoryInputInfo // Player speeds enum { - BIKE_SPEED_STANDING, - BIKE_SPEED_NORMAL, - BIKE_SPEED_FAST, - BIKE_SPEED_FASTER, - BIKE_SPEED_FASTEST, + PLAYER_SPEED_STANDING, + PLAYER_SPEED_NORMAL, + PLAYER_SPEED_FAST, + PLAYER_SPEED_FASTER, + PLAYER_SPEED_FASTEST, }; // mach bike transitions enum diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index c8d37aac61..d5d0698b91 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -1,10 +1,6 @@ #ifndef GUARD_CONSTANTS_BATTLE_STRING_IDS_H #define GUARD_CONSTANTS_BATTLE_STRING_IDS_H -#define BATTLESTRINGS_COUNT 369 - -#define BATTLESTRINGS_ID_ADDER 12 // all battlestrings have its ID + 12, because first 5 are reserved - #define STRINGID_INTROMSG 0 #define STRINGID_INTROSENDOUT 1 #define STRINGID_RETURNMON 2 @@ -383,6 +379,12 @@ #define STRINGID_TRAINER1WINTEXT 379 #define STRINGID_TRAINER2WINTEXT 380 +#define BATTLESTRINGS_COUNT 381 + +// This is the string id that gBattleStringsTable starts with. +// String ids before this (e.g. STRINGID_INTROMSG) are not in the table, +// and are instead handled explicitly by BufferStringBattle. +#define BATTLESTRINGS_TABLE_START STRINGID_TRAINER1LOSETEXT // The below IDs are all indexes into battle message tables, // used to determine which of a set of messages to print. diff --git a/include/constants/event_object_movement.h b/include/constants/event_object_movement.h index 2c42735248..a9d59935ec 100755 --- a/include/constants/event_object_movement.h +++ b/include/constants/event_object_movement.h @@ -273,14 +273,14 @@ #define ANIM_RUN_WEST (ANIM_STD_COUNT + 2) #define ANIM_RUN_EAST (ANIM_STD_COUNT + 3) -#define ANIM_BUNNY_HOPPY_BACK_WHEEL_SOUTH (ANIM_STD_COUNT + 0) -#define ANIM_BUNNY_HOPPY_BACK_WHEEL_NORTH (ANIM_STD_COUNT + 1) -#define ANIM_BUNNY_HOPPY_BACK_WHEEL_WEST (ANIM_STD_COUNT + 2) -#define ANIM_BUNNY_HOPPY_BACK_WHEEL_EAST (ANIM_STD_COUNT + 3) -#define ANIM_BUNNY_HOPPY_FRONT_WHEEL_SOUTH (ANIM_STD_COUNT + 4) -#define ANIM_BUNNY_HOPPY_FRONT_WHEEL_NORTH (ANIM_STD_COUNT + 5) -#define ANIM_BUNNY_HOPPY_FRONT_WHEEL_WEST (ANIM_STD_COUNT + 6) -#define ANIM_BUNNY_HOPPY_FRONT_WHEEL_EAST (ANIM_STD_COUNT + 7) +#define ANIM_BUNNY_HOP_BACK_WHEEL_SOUTH (ANIM_STD_COUNT + 0) +#define ANIM_BUNNY_HOP_BACK_WHEEL_NORTH (ANIM_STD_COUNT + 1) +#define ANIM_BUNNY_HOP_BACK_WHEEL_WEST (ANIM_STD_COUNT + 2) +#define ANIM_BUNNY_HOP_BACK_WHEEL_EAST (ANIM_STD_COUNT + 3) +#define ANIM_BUNNY_HOP_FRONT_WHEEL_SOUTH (ANIM_STD_COUNT + 4) +#define ANIM_BUNNY_HOP_FRONT_WHEEL_NORTH (ANIM_STD_COUNT + 5) +#define ANIM_BUNNY_HOP_FRONT_WHEEL_WEST (ANIM_STD_COUNT + 6) +#define ANIM_BUNNY_HOP_FRONT_WHEEL_EAST (ANIM_STD_COUNT + 7) #define ANIM_STANDING_WHEELIE_BACK_WHEEL_SOUTH (ANIM_STD_COUNT + 8) #define ANIM_STANDING_WHEELIE_BACK_WHEEL_NORTH (ANIM_STD_COUNT + 9) #define ANIM_STANDING_WHEELIE_BACK_WHEEL_WEST (ANIM_STD_COUNT + 10) diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h index 1958c792e1..6b99f19bd4 100644 --- a/include/constants/event_objects.h +++ b/include/constants/event_objects.h @@ -311,5 +311,6 @@ #define LOCALID_MOSSDEEP_MART_CLERK 1 #define LOCALID_SOOTOPOLIS_MART_CLERK 1 #define LOCALID_BATTLE_FRONTIER_MART_CLERK 1 +#define LOCALID_SLATEPORT_ENERGY_GURU 25 #endif // GUARD_CONSTANTS_EVENT_OBJECTS_H diff --git a/include/constants/flags.h b/include/constants/flags.h index cab8b51e5f..ba04f8f96e 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -190,7 +190,7 @@ #define FLAG_RECEIVED_TM40 0xAA #define FLAG_RECEIVED_TM04 0xAB #define FLAG_RECEIVED_TM03 0xAC -#define FLAG_DECORATION_0 0xAD +#define FLAG_HIDE_SECRET_BASE_TRAINER 0xAD #define FLAG_DECORATION_1 0xAE #define FLAG_DECORATION_2 0xAF #define FLAG_DECORATION_3 0xB0 diff --git a/include/constants/global.h b/include/constants/global.h index ef7861e9ed..096094220d 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -29,11 +29,20 @@ #define GAME_VERSION (VERSION_EMERALD) #define GAME_LANGUAGE (LANGUAGE_ENGLISH) +// party sizes +#define PARTY_SIZE 6 +#define MULTI_PARTY_SIZE (PARTY_SIZE / 2) +#define FRONTIER_PARTY_SIZE 3 +#define FRONTIER_DOUBLES_PARTY_SIZE 4 +#define FRONTIER_MULTI_PARTY_SIZE 2 +#define MAX_FRONTIER_PARTY_SIZE FRONTIER_DOUBLES_PARTY_SIZE +#define UNION_ROOM_PARTY_SIZE 2 + // capacities of various saveblock objects #define DAYCARE_MON_COUNT 2 #define POKEBLOCKS_COUNT 40 #define OBJECT_EVENTS_COUNT 16 -#define MAIL_COUNT 16 +#define MAIL_COUNT (10 + PARTY_SIZE) #define SECRET_BASES_COUNT 20 #define TV_SHOWS_COUNT 25 #define POKE_NEWS_COUNT 16 @@ -70,7 +79,6 @@ #define TRAINER_ID_LENGTH 4 #define MAX_MON_MOVES 4 -#define NUM_STATS 6 #define CONTESTANT_COUNT 4 #define CONTEST_CATEGORY_COOL 0 @@ -80,15 +88,6 @@ #define CONTEST_CATEGORY_TOUGH 4 #define CONTEST_CATEGORIES_COUNT 5 -// party sizes -#define PARTY_SIZE 6 -#define MULTI_PARTY_SIZE (PARTY_SIZE / 2) -#define FRONTIER_PARTY_SIZE 3 -#define FRONTIER_DOUBLES_PARTY_SIZE 4 -#define FRONTIER_MULTI_PARTY_SIZE 2 -#define MAX_FRONTIER_PARTY_SIZE FRONTIER_DOUBLES_PARTY_SIZE -#define UNION_ROOM_PARTY_SIZE 2 - // string lengths #define ITEM_NAME_LENGTH 14 #define POKEMON_NAME_LENGTH 10 @@ -139,4 +138,13 @@ #define DIR_NORTHWEST 7 #define DIR_NORTHEAST 8 +#define CONNECTION_INVALID -1 +#define CONNECTION_NONE 0 +#define CONNECTION_SOUTH 1 +#define CONNECTION_NORTH 2 +#define CONNECTION_WEST 3 +#define CONNECTION_EAST 4 +#define CONNECTION_DIVE 5 +#define CONNECTION_EMERGE 6 + #endif // GUARD_CONSTANTS_GLOBAL_H diff --git a/include/constants/maps.h b/include/constants/maps.h index b849749a95..2ad4ea8df5 100644 --- a/include/constants/maps.h +++ b/include/constants/maps.h @@ -9,10 +9,16 @@ #define MAP_GROUP(map) (MAP_##map >> 8) #define MAP_NUM(map) (MAP_##map & 0xFF) -// These groups are used by pokedex_area_screen.c to find wild -// pokemon locations. -#define MAP_GROUP_OVERWORLD_MONS MAP_GROUP(PETALBURG_CITY) -#define MAP_GROUP_SPECIAL_MONS_1 MAP_GROUP(METEOR_FALLS_1F_1R) -#define MAP_GROUP_SPECIAL_MONS_2 MAP_GROUP(SAFARI_ZONE_NORTHWEST) +// IDs for dynamic warps. Both are used in the dest_warp_id field for warp events, but they +// are never read in practice. A dest_map of MAP_NONE is used to indicate that a +// dynamic warp should be used, at which point the warp id is ignored. It can be passed to +// SetDynamicWarp/SetDynamicWarpWithCoords as the first argument, but this argument is unused. +// As only one dynamic warp is saved at a time there's no need to distinguish between them. +#define WARP_ID_SECRET_BASE 0x7E +#define WARP_ID_DYNAMIC 0x7F + +// Used to indicate an invalid warp id, for dummy warps or when a warp should +// use the given coordinates rather than the coordinates of a target warp. +#define WARP_ID_NONE (-1) #endif // GUARD_CONSTANTS_MAPS_H diff --git a/include/constants/metatile_behaviors.h b/include/constants/metatile_behaviors.h index dde8213587..86f35ce50d 100755 --- a/include/constants/metatile_behaviors.h +++ b/include/constants/metatile_behaviors.h @@ -9,7 +9,7 @@ #define MB_UNUSED_05 0x05 #define MB_DEEP_SAND 0x06 #define MB_SHORT_GRASS 0x07 -#define MB_UNUSED_CAVE 0x08 +#define MB_CAVE 0x08 #define MB_LONG_GRASS_SOUTH_EDGE 0x09 #define MB_NO_RUNNING 0x0A #define MB_INDOOR_ENCOUNTER 0x0B @@ -117,10 +117,10 @@ #define MB_BRIDGE_OVER_POND_LOW 0x71 #define MB_BRIDGE_OVER_POND_MED 0x72 #define MB_BRIDGE_OVER_POND_HIGH 0x73 -#define MB_PACIFIDLOG_VERTICAL_LOG_1 0x74 -#define MB_PACIFIDLOG_VERTICAL_LOG_2 0x75 -#define MB_PACIFIDLOG_HORIZONTAL_LOG_1 0x76 -#define MB_PACIFIDLOG_HORIZONTAL_LOG_2 0x77 +#define MB_PACIFIDLOG_VERTICAL_LOG_TOP 0x74 +#define MB_PACIFIDLOG_VERTICAL_LOG_BOTTOM 0x75 +#define MB_PACIFIDLOG_HORIZONTAL_LOG_LEFT 0x76 +#define MB_PACIFIDLOG_HORIZONTAL_LOG_RIGHT 0x77 #define MB_FORTREE_BRIDGE 0x78 #define MB_UNUSED_79 0x79 #define MB_BRIDGE_OVER_POND_MED_EDGE_1 0x7A @@ -179,8 +179,8 @@ #define MB_UNUSED_AF 0xAF #define MB_SECRET_BASE_PC 0xB0 #define MB_SECRET_BASE_REGISTER_PC 0xB1 -#define MB_SECRET_BASE_UNUSED 0xB2 -#define MB_BLOCK_DECORATION 0xB3 +#define MB_SECRET_BASE_SCENERY 0xB2 +#define MB_SECRET_BASE_TRAINER_SPOT 0xB3 #define MB_SECRET_BASE_DECORATION 0xB4 #define MB_HOLDS_SMALL_DECORATION 0xB5 #define MB_UNUSED_B6 0xB6 @@ -241,6 +241,9 @@ #define MB_UNUSED_ED 0xED #define MB_UNUSED_EE 0xEE #define MB_UNUSED_EF 0xEF + +#define NUM_METATILE_BEHAVIORS 0xF0 + #define MB_INVALID 0xFF #endif // GUARD_METATILE_BEHAVIORS_H diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h index 5191200828..3c484e39a2 100644 --- a/include/constants/metatile_labels.h +++ b/include/constants/metatile_labels.h @@ -182,22 +182,22 @@ #define METATILE_Cave_ShoalCave_BlueStone_Small 0x35B // gTileset_Pacifidlog -#define METATILE_Pacifidlog_Door 0x21A -#define METATILE_Pacifidlog_FloatingLogs_Horizontal0 0x250 -#define METATILE_Pacifidlog_FloatingLogs_Horizontal1 0x251 -#define METATILE_Pacifidlog_HalfSubmergedLogs_Horizontal0 0x252 -#define METATILE_Pacifidlog_HalfSubmergedLogs_Horizontal1 0x253 -#define METATILE_Pacifidlog_SubmergedLogs_Horizontal0 0x254 -#define METATILE_Pacifidlog_SubmergedLogs_Horizontal1 0x255 -#define METATILE_Pacifidlog_FloatingLogs_Vertical0 0x258 -#define METATILE_Pacifidlog_FloatingLogs_Vertical1 0x260 -#define METATILE_Pacifidlog_HalfSubmergedLogs_Vertical0 0x259 -#define METATILE_Pacifidlog_HalfSubmergedLogs_Vertical1 0x261 -#define METATILE_Pacifidlog_SubmergedLogs_Vertical0 0x25A -#define METATILE_Pacifidlog_SubmergedLogs_Vertical1 0x262 -#define METATILE_Pacifidlog_SkyPillar_CrackedFloor_Hole 0x237 -#define METATILE_Pacifidlog_SkyPillar_DoorOpen_Top 0x2AA -#define METATILE_Pacifidlog_SkyPillar_DoorOpen_Bottom 0x2B2 +#define METATILE_Pacifidlog_Door 0x21A +#define METATILE_Pacifidlog_FloatingLogs_HorizontalLeft 0x250 +#define METATILE_Pacifidlog_FloatingLogs_HorizontalRight 0x251 +#define METATILE_Pacifidlog_HalfSubmergedLogs_HorizontalLeft 0x252 +#define METATILE_Pacifidlog_HalfSubmergedLogs_HorizontalRight 0x253 +#define METATILE_Pacifidlog_SubmergedLogs_HorizontalLeft 0x254 +#define METATILE_Pacifidlog_SubmergedLogs_HorizontalRight 0x255 +#define METATILE_Pacifidlog_FloatingLogs_VerticalTop 0x258 +#define METATILE_Pacifidlog_FloatingLogs_VerticalBottom 0x260 +#define METATILE_Pacifidlog_HalfSubmergedLogs_VerticalTop 0x259 +#define METATILE_Pacifidlog_HalfSubmergedLogs_VerticalBottom 0x261 +#define METATILE_Pacifidlog_SubmergedLogs_VerticalTop 0x25A +#define METATILE_Pacifidlog_SubmergedLogs_VerticalBottom 0x262 +#define METATILE_Pacifidlog_SkyPillar_CrackedFloor_Hole 0x237 +#define METATILE_Pacifidlog_SkyPillar_DoorOpen_Top 0x2AA +#define METATILE_Pacifidlog_SkyPillar_DoorOpen_Bottom 0x2B2 // gTileset_Fortree #define METATILE_Fortree_LongGrass_Root 0x208 diff --git a/include/constants/party_menu.h b/include/constants/party_menu.h index e31debb49b..f95bfa90ff 100644 --- a/include/constants/party_menu.h +++ b/include/constants/party_menu.h @@ -1,6 +1,8 @@ #ifndef GUARD_CONSTANTS_PARTY_MENU_H #define GUARD_CONSTANTS_PARTY_MENU_H +#define PARTY_NOTHING_CHOSEN 0xFF + #define AILMENT_NONE 0 #define AILMENT_PSN 1 #define AILMENT_PRZ 2 diff --git a/include/constants/pokedex.h b/include/constants/pokedex.h new file mode 100644 index 0000000000..7ee1b3760e --- /dev/null +++ b/include/constants/pokedex.h @@ -0,0 +1,848 @@ +#ifndef GUARD_CONSTANTS_POKEDEX_H +#define GUARD_CONSTANTS_POKEDEX_H + +// National Pokedex order +enum { + NATIONAL_DEX_NONE, + // Kanto + NATIONAL_DEX_BULBASAUR, + NATIONAL_DEX_IVYSAUR, + NATIONAL_DEX_VENUSAUR, + NATIONAL_DEX_CHARMANDER, + NATIONAL_DEX_CHARMELEON, + NATIONAL_DEX_CHARIZARD, + NATIONAL_DEX_SQUIRTLE, + NATIONAL_DEX_WARTORTLE, + NATIONAL_DEX_BLASTOISE, + NATIONAL_DEX_CATERPIE, + NATIONAL_DEX_METAPOD, + NATIONAL_DEX_BUTTERFREE, + NATIONAL_DEX_WEEDLE, + NATIONAL_DEX_KAKUNA, + NATIONAL_DEX_BEEDRILL, + NATIONAL_DEX_PIDGEY, + NATIONAL_DEX_PIDGEOTTO, + NATIONAL_DEX_PIDGEOT, + NATIONAL_DEX_RATTATA, + NATIONAL_DEX_RATICATE, + NATIONAL_DEX_SPEAROW, + NATIONAL_DEX_FEAROW, + NATIONAL_DEX_EKANS, + NATIONAL_DEX_ARBOK, + NATIONAL_DEX_PIKACHU, + NATIONAL_DEX_RAICHU, + NATIONAL_DEX_SANDSHREW, + NATIONAL_DEX_SANDSLASH, + NATIONAL_DEX_NIDORAN_F, + NATIONAL_DEX_NIDORINA, + NATIONAL_DEX_NIDOQUEEN, + NATIONAL_DEX_NIDORAN_M, + NATIONAL_DEX_NIDORINO, + NATIONAL_DEX_NIDOKING, + NATIONAL_DEX_CLEFAIRY, + NATIONAL_DEX_CLEFABLE, + NATIONAL_DEX_VULPIX, + NATIONAL_DEX_NINETALES, + NATIONAL_DEX_JIGGLYPUFF, + NATIONAL_DEX_WIGGLYTUFF, + NATIONAL_DEX_ZUBAT, + NATIONAL_DEX_GOLBAT, + NATIONAL_DEX_ODDISH, + NATIONAL_DEX_GLOOM, + NATIONAL_DEX_VILEPLUME, + NATIONAL_DEX_PARAS, + NATIONAL_DEX_PARASECT, + NATIONAL_DEX_VENONAT, + NATIONAL_DEX_VENOMOTH, + NATIONAL_DEX_DIGLETT, + NATIONAL_DEX_DUGTRIO, + NATIONAL_DEX_MEOWTH, + NATIONAL_DEX_PERSIAN, + NATIONAL_DEX_PSYDUCK, + NATIONAL_DEX_GOLDUCK, + NATIONAL_DEX_MANKEY, + NATIONAL_DEX_PRIMEAPE, + NATIONAL_DEX_GROWLITHE, + NATIONAL_DEX_ARCANINE, + NATIONAL_DEX_POLIWAG, + NATIONAL_DEX_POLIWHIRL, + NATIONAL_DEX_POLIWRATH, + NATIONAL_DEX_ABRA, + NATIONAL_DEX_KADABRA, + NATIONAL_DEX_ALAKAZAM, + NATIONAL_DEX_MACHOP, + NATIONAL_DEX_MACHOKE, + NATIONAL_DEX_MACHAMP, + NATIONAL_DEX_BELLSPROUT, + NATIONAL_DEX_WEEPINBELL, + NATIONAL_DEX_VICTREEBEL, + NATIONAL_DEX_TENTACOOL, + NATIONAL_DEX_TENTACRUEL, + NATIONAL_DEX_GEODUDE, + NATIONAL_DEX_GRAVELER, + NATIONAL_DEX_GOLEM, + NATIONAL_DEX_PONYTA, + NATIONAL_DEX_RAPIDASH, + NATIONAL_DEX_SLOWPOKE, + NATIONAL_DEX_SLOWBRO, + NATIONAL_DEX_MAGNEMITE, + NATIONAL_DEX_MAGNETON, + NATIONAL_DEX_FARFETCHD, + NATIONAL_DEX_DODUO, + NATIONAL_DEX_DODRIO, + NATIONAL_DEX_SEEL, + NATIONAL_DEX_DEWGONG, + NATIONAL_DEX_GRIMER, + NATIONAL_DEX_MUK, + NATIONAL_DEX_SHELLDER, + NATIONAL_DEX_CLOYSTER, + NATIONAL_DEX_GASTLY, + NATIONAL_DEX_HAUNTER, + NATIONAL_DEX_GENGAR, + NATIONAL_DEX_ONIX, + NATIONAL_DEX_DROWZEE, + NATIONAL_DEX_HYPNO, + NATIONAL_DEX_KRABBY, + NATIONAL_DEX_KINGLER, + NATIONAL_DEX_VOLTORB, + NATIONAL_DEX_ELECTRODE, + NATIONAL_DEX_EXEGGCUTE, + NATIONAL_DEX_EXEGGUTOR, + NATIONAL_DEX_CUBONE, + NATIONAL_DEX_MAROWAK, + NATIONAL_DEX_HITMONLEE, + NATIONAL_DEX_HITMONCHAN, + NATIONAL_DEX_LICKITUNG, + NATIONAL_DEX_KOFFING, + NATIONAL_DEX_WEEZING, + NATIONAL_DEX_RHYHORN, + NATIONAL_DEX_RHYDON, + NATIONAL_DEX_CHANSEY, + NATIONAL_DEX_TANGELA, + NATIONAL_DEX_KANGASKHAN, + NATIONAL_DEX_HORSEA, + NATIONAL_DEX_SEADRA, + NATIONAL_DEX_GOLDEEN, + NATIONAL_DEX_SEAKING, + NATIONAL_DEX_STARYU, + NATIONAL_DEX_STARMIE, + NATIONAL_DEX_MR_MIME, + NATIONAL_DEX_SCYTHER, + NATIONAL_DEX_JYNX, + NATIONAL_DEX_ELECTABUZZ, + NATIONAL_DEX_MAGMAR, + NATIONAL_DEX_PINSIR, + NATIONAL_DEX_TAUROS, + NATIONAL_DEX_MAGIKARP, + NATIONAL_DEX_GYARADOS, + NATIONAL_DEX_LAPRAS, + NATIONAL_DEX_DITTO, + NATIONAL_DEX_EEVEE, + NATIONAL_DEX_VAPOREON, + NATIONAL_DEX_JOLTEON, + NATIONAL_DEX_FLAREON, + NATIONAL_DEX_PORYGON, + NATIONAL_DEX_OMANYTE, + NATIONAL_DEX_OMASTAR, + NATIONAL_DEX_KABUTO, + NATIONAL_DEX_KABUTOPS, + NATIONAL_DEX_AERODACTYL, + NATIONAL_DEX_SNORLAX, + NATIONAL_DEX_ARTICUNO, + NATIONAL_DEX_ZAPDOS, + NATIONAL_DEX_MOLTRES, + NATIONAL_DEX_DRATINI, + NATIONAL_DEX_DRAGONAIR, + NATIONAL_DEX_DRAGONITE, + NATIONAL_DEX_MEWTWO, + NATIONAL_DEX_MEW, + // Johto + NATIONAL_DEX_CHIKORITA, + NATIONAL_DEX_BAYLEEF, + NATIONAL_DEX_MEGANIUM, + NATIONAL_DEX_CYNDAQUIL, + NATIONAL_DEX_QUILAVA, + NATIONAL_DEX_TYPHLOSION, + NATIONAL_DEX_TOTODILE, + NATIONAL_DEX_CROCONAW, + NATIONAL_DEX_FERALIGATR, + NATIONAL_DEX_SENTRET, + NATIONAL_DEX_FURRET, + NATIONAL_DEX_HOOTHOOT, + NATIONAL_DEX_NOCTOWL, + NATIONAL_DEX_LEDYBA, + NATIONAL_DEX_LEDIAN, + NATIONAL_DEX_SPINARAK, + NATIONAL_DEX_ARIADOS, + NATIONAL_DEX_CROBAT, + NATIONAL_DEX_CHINCHOU, + NATIONAL_DEX_LANTURN, + NATIONAL_DEX_PICHU, + NATIONAL_DEX_CLEFFA, + NATIONAL_DEX_IGGLYBUFF, + NATIONAL_DEX_TOGEPI, + NATIONAL_DEX_TOGETIC, + NATIONAL_DEX_NATU, + NATIONAL_DEX_XATU, + NATIONAL_DEX_MAREEP, + NATIONAL_DEX_FLAAFFY, + NATIONAL_DEX_AMPHAROS, + NATIONAL_DEX_BELLOSSOM, + NATIONAL_DEX_MARILL, + NATIONAL_DEX_AZUMARILL, + NATIONAL_DEX_SUDOWOODO, + NATIONAL_DEX_POLITOED, + NATIONAL_DEX_HOPPIP, + NATIONAL_DEX_SKIPLOOM, + NATIONAL_DEX_JUMPLUFF, + NATIONAL_DEX_AIPOM, + NATIONAL_DEX_SUNKERN, + NATIONAL_DEX_SUNFLORA, + NATIONAL_DEX_YANMA, + NATIONAL_DEX_WOOPER, + NATIONAL_DEX_QUAGSIRE, + NATIONAL_DEX_ESPEON, + NATIONAL_DEX_UMBREON, + NATIONAL_DEX_MURKROW, + NATIONAL_DEX_SLOWKING, + NATIONAL_DEX_MISDREAVUS, + NATIONAL_DEX_UNOWN, + NATIONAL_DEX_WOBBUFFET, + NATIONAL_DEX_GIRAFARIG, + NATIONAL_DEX_PINECO, + NATIONAL_DEX_FORRETRESS, + NATIONAL_DEX_DUNSPARCE, + NATIONAL_DEX_GLIGAR, + NATIONAL_DEX_STEELIX, + NATIONAL_DEX_SNUBBULL, + NATIONAL_DEX_GRANBULL, + NATIONAL_DEX_QWILFISH, + NATIONAL_DEX_SCIZOR, + NATIONAL_DEX_SHUCKLE, + NATIONAL_DEX_HERACROSS, + NATIONAL_DEX_SNEASEL, + NATIONAL_DEX_TEDDIURSA, + NATIONAL_DEX_URSARING, + NATIONAL_DEX_SLUGMA, + NATIONAL_DEX_MAGCARGO, + NATIONAL_DEX_SWINUB, + NATIONAL_DEX_PILOSWINE, + NATIONAL_DEX_CORSOLA, + NATIONAL_DEX_REMORAID, + NATIONAL_DEX_OCTILLERY, + NATIONAL_DEX_DELIBIRD, + NATIONAL_DEX_MANTINE, + NATIONAL_DEX_SKARMORY, + NATIONAL_DEX_HOUNDOUR, + NATIONAL_DEX_HOUNDOOM, + NATIONAL_DEX_KINGDRA, + NATIONAL_DEX_PHANPY, + NATIONAL_DEX_DONPHAN, + NATIONAL_DEX_PORYGON2, + NATIONAL_DEX_STANTLER, + NATIONAL_DEX_SMEARGLE, + NATIONAL_DEX_TYROGUE, + NATIONAL_DEX_HITMONTOP, + NATIONAL_DEX_SMOOCHUM, + NATIONAL_DEX_ELEKID, + NATIONAL_DEX_MAGBY, + NATIONAL_DEX_MILTANK, + NATIONAL_DEX_BLISSEY, + NATIONAL_DEX_RAIKOU, + NATIONAL_DEX_ENTEI, + NATIONAL_DEX_SUICUNE, + NATIONAL_DEX_LARVITAR, + NATIONAL_DEX_PUPITAR, + NATIONAL_DEX_TYRANITAR, + NATIONAL_DEX_LUGIA, + NATIONAL_DEX_HO_OH, + NATIONAL_DEX_CELEBI, + // Hoenn + NATIONAL_DEX_TREECKO, + NATIONAL_DEX_GROVYLE, + NATIONAL_DEX_SCEPTILE, + NATIONAL_DEX_TORCHIC, + NATIONAL_DEX_COMBUSKEN, + NATIONAL_DEX_BLAZIKEN, + NATIONAL_DEX_MUDKIP, + NATIONAL_DEX_MARSHTOMP, + NATIONAL_DEX_SWAMPERT, + NATIONAL_DEX_POOCHYENA, + NATIONAL_DEX_MIGHTYENA, + NATIONAL_DEX_ZIGZAGOON, + NATIONAL_DEX_LINOONE, + NATIONAL_DEX_WURMPLE, + NATIONAL_DEX_SILCOON, + NATIONAL_DEX_BEAUTIFLY, + NATIONAL_DEX_CASCOON, + NATIONAL_DEX_DUSTOX, + NATIONAL_DEX_LOTAD, + NATIONAL_DEX_LOMBRE, + NATIONAL_DEX_LUDICOLO, + NATIONAL_DEX_SEEDOT, + NATIONAL_DEX_NUZLEAF, + NATIONAL_DEX_SHIFTRY, + NATIONAL_DEX_TAILLOW, + NATIONAL_DEX_SWELLOW, + NATIONAL_DEX_WINGULL, + NATIONAL_DEX_PELIPPER, + NATIONAL_DEX_RALTS, + NATIONAL_DEX_KIRLIA, + NATIONAL_DEX_GARDEVOIR, + NATIONAL_DEX_SURSKIT, + NATIONAL_DEX_MASQUERAIN, + NATIONAL_DEX_SHROOMISH, + NATIONAL_DEX_BRELOOM, + NATIONAL_DEX_SLAKOTH, + NATIONAL_DEX_VIGOROTH, + NATIONAL_DEX_SLAKING, + NATIONAL_DEX_NINCADA, + NATIONAL_DEX_NINJASK, + NATIONAL_DEX_SHEDINJA, + NATIONAL_DEX_WHISMUR, + NATIONAL_DEX_LOUDRED, + NATIONAL_DEX_EXPLOUD, + NATIONAL_DEX_MAKUHITA, + NATIONAL_DEX_HARIYAMA, + NATIONAL_DEX_AZURILL, + NATIONAL_DEX_NOSEPASS, + NATIONAL_DEX_SKITTY, + NATIONAL_DEX_DELCATTY, + NATIONAL_DEX_SABLEYE, + NATIONAL_DEX_MAWILE, + NATIONAL_DEX_ARON, + NATIONAL_DEX_LAIRON, + NATIONAL_DEX_AGGRON, + NATIONAL_DEX_MEDITITE, + NATIONAL_DEX_MEDICHAM, + NATIONAL_DEX_ELECTRIKE, + NATIONAL_DEX_MANECTRIC, + NATIONAL_DEX_PLUSLE, + NATIONAL_DEX_MINUN, + NATIONAL_DEX_VOLBEAT, + NATIONAL_DEX_ILLUMISE, + NATIONAL_DEX_ROSELIA, + NATIONAL_DEX_GULPIN, + NATIONAL_DEX_SWALOT, + NATIONAL_DEX_CARVANHA, + NATIONAL_DEX_SHARPEDO, + NATIONAL_DEX_WAILMER, + NATIONAL_DEX_WAILORD, + NATIONAL_DEX_NUMEL, + NATIONAL_DEX_CAMERUPT, + NATIONAL_DEX_TORKOAL, + NATIONAL_DEX_SPOINK, + NATIONAL_DEX_GRUMPIG, + NATIONAL_DEX_SPINDA, + NATIONAL_DEX_TRAPINCH, + NATIONAL_DEX_VIBRAVA, + NATIONAL_DEX_FLYGON, + NATIONAL_DEX_CACNEA, + NATIONAL_DEX_CACTURNE, + NATIONAL_DEX_SWABLU, + NATIONAL_DEX_ALTARIA, + NATIONAL_DEX_ZANGOOSE, + NATIONAL_DEX_SEVIPER, + NATIONAL_DEX_LUNATONE, + NATIONAL_DEX_SOLROCK, + NATIONAL_DEX_BARBOACH, + NATIONAL_DEX_WHISCASH, + NATIONAL_DEX_CORPHISH, + NATIONAL_DEX_CRAWDAUNT, + NATIONAL_DEX_BALTOY, + NATIONAL_DEX_CLAYDOL, + NATIONAL_DEX_LILEEP, + NATIONAL_DEX_CRADILY, + NATIONAL_DEX_ANORITH, + NATIONAL_DEX_ARMALDO, + NATIONAL_DEX_FEEBAS, + NATIONAL_DEX_MILOTIC, + NATIONAL_DEX_CASTFORM, + NATIONAL_DEX_KECLEON, + NATIONAL_DEX_SHUPPET, + NATIONAL_DEX_BANETTE, + NATIONAL_DEX_DUSKULL, + NATIONAL_DEX_DUSCLOPS, + NATIONAL_DEX_TROPIUS, + NATIONAL_DEX_CHIMECHO, + NATIONAL_DEX_ABSOL, + NATIONAL_DEX_WYNAUT, + NATIONAL_DEX_SNORUNT, + NATIONAL_DEX_GLALIE, + NATIONAL_DEX_SPHEAL, + NATIONAL_DEX_SEALEO, + NATIONAL_DEX_WALREIN, + NATIONAL_DEX_CLAMPERL, + NATIONAL_DEX_HUNTAIL, + NATIONAL_DEX_GOREBYSS, + NATIONAL_DEX_RELICANTH, + NATIONAL_DEX_LUVDISC, + NATIONAL_DEX_BAGON, + NATIONAL_DEX_SHELGON, + NATIONAL_DEX_SALAMENCE, + NATIONAL_DEX_BELDUM, + NATIONAL_DEX_METANG, + NATIONAL_DEX_METAGROSS, + NATIONAL_DEX_REGIROCK, + NATIONAL_DEX_REGICE, + NATIONAL_DEX_REGISTEEL, + NATIONAL_DEX_LATIAS, + NATIONAL_DEX_LATIOS, + NATIONAL_DEX_KYOGRE, + NATIONAL_DEX_GROUDON, + NATIONAL_DEX_RAYQUAZA, + NATIONAL_DEX_JIRACHI, + NATIONAL_DEX_DEOXYS, + // Old Unown + NATIONAL_DEX_OLD_UNOWN_B, + NATIONAL_DEX_OLD_UNOWN_C, + NATIONAL_DEX_OLD_UNOWN_D, + NATIONAL_DEX_OLD_UNOWN_E, + NATIONAL_DEX_OLD_UNOWN_F, + NATIONAL_DEX_OLD_UNOWN_G, + NATIONAL_DEX_OLD_UNOWN_H, + NATIONAL_DEX_OLD_UNOWN_I, + NATIONAL_DEX_OLD_UNOWN_J, + NATIONAL_DEX_OLD_UNOWN_K, + NATIONAL_DEX_OLD_UNOWN_L, + NATIONAL_DEX_OLD_UNOWN_M, + NATIONAL_DEX_OLD_UNOWN_N, + NATIONAL_DEX_OLD_UNOWN_O, + NATIONAL_DEX_OLD_UNOWN_P, + NATIONAL_DEX_OLD_UNOWN_Q, + NATIONAL_DEX_OLD_UNOWN_R, + NATIONAL_DEX_OLD_UNOWN_S, + NATIONAL_DEX_OLD_UNOWN_T, + NATIONAL_DEX_OLD_UNOWN_U, + NATIONAL_DEX_OLD_UNOWN_V, + NATIONAL_DEX_OLD_UNOWN_W, + NATIONAL_DEX_OLD_UNOWN_X, + NATIONAL_DEX_OLD_UNOWN_Y, + NATIONAL_DEX_OLD_UNOWN_Z, +}; + +#define KANTO_DEX_COUNT NATIONAL_DEX_MEW +#define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI +#define NATIONAL_DEX_COUNT NATIONAL_DEX_DEOXYS + +// Hoenn Pokedex order +enum { + HOENN_DEX_NONE, + HOENN_DEX_TREECKO, + HOENN_DEX_GROVYLE, + HOENN_DEX_SCEPTILE, + HOENN_DEX_TORCHIC, + HOENN_DEX_COMBUSKEN, + HOENN_DEX_BLAZIKEN, + HOENN_DEX_MUDKIP, + HOENN_DEX_MARSHTOMP, + HOENN_DEX_SWAMPERT, + HOENN_DEX_POOCHYENA, + HOENN_DEX_MIGHTYENA, + HOENN_DEX_ZIGZAGOON, + HOENN_DEX_LINOONE, + HOENN_DEX_WURMPLE, + HOENN_DEX_SILCOON, + HOENN_DEX_BEAUTIFLY, + HOENN_DEX_CASCOON, + HOENN_DEX_DUSTOX, + HOENN_DEX_LOTAD, + HOENN_DEX_LOMBRE, + HOENN_DEX_LUDICOLO, + HOENN_DEX_SEEDOT, + HOENN_DEX_NUZLEAF, + HOENN_DEX_SHIFTRY, + HOENN_DEX_TAILLOW, + HOENN_DEX_SWELLOW, + HOENN_DEX_WINGULL, + HOENN_DEX_PELIPPER, + HOENN_DEX_RALTS, + HOENN_DEX_KIRLIA, + HOENN_DEX_GARDEVOIR, + HOENN_DEX_SURSKIT, + HOENN_DEX_MASQUERAIN, + HOENN_DEX_SHROOMISH, + HOENN_DEX_BRELOOM, + HOENN_DEX_SLAKOTH, + HOENN_DEX_VIGOROTH, + HOENN_DEX_SLAKING, + HOENN_DEX_ABRA, + HOENN_DEX_KADABRA, + HOENN_DEX_ALAKAZAM, + HOENN_DEX_NINCADA, + HOENN_DEX_NINJASK, + HOENN_DEX_SHEDINJA, + HOENN_DEX_WHISMUR, + HOENN_DEX_LOUDRED, + HOENN_DEX_EXPLOUD, + HOENN_DEX_MAKUHITA, + HOENN_DEX_HARIYAMA, + HOENN_DEX_GOLDEEN, + HOENN_DEX_SEAKING, + HOENN_DEX_MAGIKARP, + HOENN_DEX_GYARADOS, + HOENN_DEX_AZURILL, + HOENN_DEX_MARILL, + HOENN_DEX_AZUMARILL, + HOENN_DEX_GEODUDE, + HOENN_DEX_GRAVELER, + HOENN_DEX_GOLEM, + HOENN_DEX_NOSEPASS, + HOENN_DEX_SKITTY, + HOENN_DEX_DELCATTY, + HOENN_DEX_ZUBAT, + HOENN_DEX_GOLBAT, + HOENN_DEX_CROBAT, + HOENN_DEX_TENTACOOL, + HOENN_DEX_TENTACRUEL, + HOENN_DEX_SABLEYE, + HOENN_DEX_MAWILE, + HOENN_DEX_ARON, + HOENN_DEX_LAIRON, + HOENN_DEX_AGGRON, + HOENN_DEX_MACHOP, + HOENN_DEX_MACHOKE, + HOENN_DEX_MACHAMP, + HOENN_DEX_MEDITITE, + HOENN_DEX_MEDICHAM, + HOENN_DEX_ELECTRIKE, + HOENN_DEX_MANECTRIC, + HOENN_DEX_PLUSLE, + HOENN_DEX_MINUN, + HOENN_DEX_MAGNEMITE, + HOENN_DEX_MAGNETON, + HOENN_DEX_VOLTORB, + HOENN_DEX_ELECTRODE, + HOENN_DEX_VOLBEAT, + HOENN_DEX_ILLUMISE, + HOENN_DEX_ODDISH, + HOENN_DEX_GLOOM, + HOENN_DEX_VILEPLUME, + HOENN_DEX_BELLOSSOM, + HOENN_DEX_DODUO, + HOENN_DEX_DODRIO, + HOENN_DEX_ROSELIA, + HOENN_DEX_GULPIN, + HOENN_DEX_SWALOT, + HOENN_DEX_CARVANHA, + HOENN_DEX_SHARPEDO, + HOENN_DEX_WAILMER, + HOENN_DEX_WAILORD, + HOENN_DEX_NUMEL, + HOENN_DEX_CAMERUPT, + HOENN_DEX_SLUGMA, + HOENN_DEX_MAGCARGO, + HOENN_DEX_TORKOAL, + HOENN_DEX_GRIMER, + HOENN_DEX_MUK, + HOENN_DEX_KOFFING, + HOENN_DEX_WEEZING, + HOENN_DEX_SPOINK, + HOENN_DEX_GRUMPIG, + HOENN_DEX_SANDSHREW, + HOENN_DEX_SANDSLASH, + HOENN_DEX_SPINDA, + HOENN_DEX_SKARMORY, + HOENN_DEX_TRAPINCH, + HOENN_DEX_VIBRAVA, + HOENN_DEX_FLYGON, + HOENN_DEX_CACNEA, + HOENN_DEX_CACTURNE, + HOENN_DEX_SWABLU, + HOENN_DEX_ALTARIA, + HOENN_DEX_ZANGOOSE, + HOENN_DEX_SEVIPER, + HOENN_DEX_LUNATONE, + HOENN_DEX_SOLROCK, + HOENN_DEX_BARBOACH, + HOENN_DEX_WHISCASH, + HOENN_DEX_CORPHISH, + HOENN_DEX_CRAWDAUNT, + HOENN_DEX_BALTOY, + HOENN_DEX_CLAYDOL, + HOENN_DEX_LILEEP, + HOENN_DEX_CRADILY, + HOENN_DEX_ANORITH, + HOENN_DEX_ARMALDO, + HOENN_DEX_IGGLYBUFF, + HOENN_DEX_JIGGLYPUFF, + HOENN_DEX_WIGGLYTUFF, + HOENN_DEX_FEEBAS, + HOENN_DEX_MILOTIC, + HOENN_DEX_CASTFORM, + HOENN_DEX_STARYU, + HOENN_DEX_STARMIE, + HOENN_DEX_KECLEON, + HOENN_DEX_SHUPPET, + HOENN_DEX_BANETTE, + HOENN_DEX_DUSKULL, + HOENN_DEX_DUSCLOPS, + HOENN_DEX_TROPIUS, + HOENN_DEX_CHIMECHO, + HOENN_DEX_ABSOL, + HOENN_DEX_VULPIX, + HOENN_DEX_NINETALES, + HOENN_DEX_PICHU, + HOENN_DEX_PIKACHU, + HOENN_DEX_RAICHU, + HOENN_DEX_PSYDUCK, + HOENN_DEX_GOLDUCK, + HOENN_DEX_WYNAUT, + HOENN_DEX_WOBBUFFET, + HOENN_DEX_NATU, + HOENN_DEX_XATU, + HOENN_DEX_GIRAFARIG, + HOENN_DEX_PHANPY, + HOENN_DEX_DONPHAN, + HOENN_DEX_PINSIR, + HOENN_DEX_HERACROSS, + HOENN_DEX_RHYHORN, + HOENN_DEX_RHYDON, + HOENN_DEX_SNORUNT, + HOENN_DEX_GLALIE, + HOENN_DEX_SPHEAL, + HOENN_DEX_SEALEO, + HOENN_DEX_WALREIN, + HOENN_DEX_CLAMPERL, + HOENN_DEX_HUNTAIL, + HOENN_DEX_GOREBYSS, + HOENN_DEX_RELICANTH, + HOENN_DEX_CORSOLA, + HOENN_DEX_CHINCHOU, + HOENN_DEX_LANTURN, + HOENN_DEX_LUVDISC, + HOENN_DEX_HORSEA, + HOENN_DEX_SEADRA, + HOENN_DEX_KINGDRA, + HOENN_DEX_BAGON, + HOENN_DEX_SHELGON, + HOENN_DEX_SALAMENCE, + HOENN_DEX_BELDUM, + HOENN_DEX_METANG, + HOENN_DEX_METAGROSS, + HOENN_DEX_REGIROCK, + HOENN_DEX_REGICE, + HOENN_DEX_REGISTEEL, + HOENN_DEX_LATIAS, + HOENN_DEX_LATIOS, + HOENN_DEX_KYOGRE, + HOENN_DEX_GROUDON, + HOENN_DEX_RAYQUAZA, + HOENN_DEX_JIRACHI, + HOENN_DEX_DEOXYS, + // End of Hoenn Dex (see HOENN_DEX_COUNT) + // Here below have values but are excluded from the Pokedex + HOENN_DEX_BULBASAUR, + HOENN_DEX_IVYSAUR, + HOENN_DEX_VENUSAUR, + HOENN_DEX_CHARMANDER, + HOENN_DEX_CHARMELEON, + HOENN_DEX_CHARIZARD, + HOENN_DEX_SQUIRTLE, + HOENN_DEX_WARTORTLE, + HOENN_DEX_BLASTOISE, + HOENN_DEX_CATERPIE, + HOENN_DEX_METAPOD, + HOENN_DEX_BUTTERFREE, + HOENN_DEX_WEEDLE, + HOENN_DEX_KAKUNA, + HOENN_DEX_BEEDRILL, + HOENN_DEX_PIDGEY, + HOENN_DEX_PIDGEOTTO, + HOENN_DEX_PIDGEOT, + HOENN_DEX_RATTATA, + HOENN_DEX_RATICATE, + HOENN_DEX_SPEAROW, + HOENN_DEX_FEAROW, + HOENN_DEX_EKANS, + HOENN_DEX_ARBOK, + HOENN_DEX_NIDORAN_F, + HOENN_DEX_NIDORINA, + HOENN_DEX_NIDOQUEEN, + HOENN_DEX_NIDORAN_M, + HOENN_DEX_NIDORINO, + HOENN_DEX_NIDOKING, + HOENN_DEX_CLEFAIRY, + HOENN_DEX_CLEFABLE, + HOENN_DEX_PARAS, + HOENN_DEX_PARASECT, + HOENN_DEX_VENONAT, + HOENN_DEX_VENOMOTH, + HOENN_DEX_DIGLETT, + HOENN_DEX_DUGTRIO, + HOENN_DEX_MEOWTH, + HOENN_DEX_PERSIAN, + HOENN_DEX_MANKEY, + HOENN_DEX_PRIMEAPE, + HOENN_DEX_GROWLITHE, + HOENN_DEX_ARCANINE, + HOENN_DEX_POLIWAG, + HOENN_DEX_POLIWHIRL, + HOENN_DEX_POLIWRATH, + HOENN_DEX_BELLSPROUT, + HOENN_DEX_WEEPINBELL, + HOENN_DEX_VICTREEBEL, + HOENN_DEX_PONYTA, + HOENN_DEX_RAPIDASH, + HOENN_DEX_SLOWPOKE, + HOENN_DEX_SLOWBRO, + HOENN_DEX_FARFETCHD, + HOENN_DEX_SEEL, + HOENN_DEX_DEWGONG, + HOENN_DEX_SHELLDER, + HOENN_DEX_CLOYSTER, + HOENN_DEX_GASTLY, + HOENN_DEX_HAUNTER, + HOENN_DEX_GENGAR, + HOENN_DEX_ONIX, + HOENN_DEX_DROWZEE, + HOENN_DEX_HYPNO, + HOENN_DEX_KRABBY, + HOENN_DEX_KINGLER, + HOENN_DEX_EXEGGCUTE, + HOENN_DEX_EXEGGUTOR, + HOENN_DEX_CUBONE, + HOENN_DEX_MAROWAK, + HOENN_DEX_HITMONLEE, + HOENN_DEX_HITMONCHAN, + HOENN_DEX_LICKITUNG, + HOENN_DEX_CHANSEY, + HOENN_DEX_TANGELA, + HOENN_DEX_KANGASKHAN, + HOENN_DEX_MR_MIME, + HOENN_DEX_SCYTHER, + HOENN_DEX_JYNX, + HOENN_DEX_ELECTABUZZ, + HOENN_DEX_MAGMAR, + HOENN_DEX_TAUROS, + HOENN_DEX_LAPRAS, + HOENN_DEX_DITTO, + HOENN_DEX_EEVEE, + HOENN_DEX_VAPOREON, + HOENN_DEX_JOLTEON, + HOENN_DEX_FLAREON, + HOENN_DEX_PORYGON, + HOENN_DEX_OMANYTE, + HOENN_DEX_OMASTAR, + HOENN_DEX_KABUTO, + HOENN_DEX_KABUTOPS, + HOENN_DEX_AERODACTYL, + HOENN_DEX_SNORLAX, + HOENN_DEX_ARTICUNO, + HOENN_DEX_ZAPDOS, + HOENN_DEX_MOLTRES, + HOENN_DEX_DRATINI, + HOENN_DEX_DRAGONAIR, + HOENN_DEX_DRAGONITE, + HOENN_DEX_MEWTWO, + HOENN_DEX_MEW, + HOENN_DEX_CHIKORITA, + HOENN_DEX_BAYLEEF, + HOENN_DEX_MEGANIUM, + HOENN_DEX_CYNDAQUIL, + HOENN_DEX_QUILAVA, + HOENN_DEX_TYPHLOSION, + HOENN_DEX_TOTODILE, + HOENN_DEX_CROCONAW, + HOENN_DEX_FERALIGATR, + HOENN_DEX_SENTRET, + HOENN_DEX_FURRET, + HOENN_DEX_HOOTHOOT, + HOENN_DEX_NOCTOWL, + HOENN_DEX_LEDYBA, + HOENN_DEX_LEDIAN, + HOENN_DEX_SPINARAK, + HOENN_DEX_ARIADOS, + HOENN_DEX_CLEFFA, + HOENN_DEX_TOGEPI, + HOENN_DEX_TOGETIC, + HOENN_DEX_MAREEP, + HOENN_DEX_FLAAFFY, + HOENN_DEX_AMPHAROS, + HOENN_DEX_SUDOWOODO, + HOENN_DEX_POLITOED, + HOENN_DEX_HOPPIP, + HOENN_DEX_SKIPLOOM, + HOENN_DEX_JUMPLUFF, + HOENN_DEX_AIPOM, + HOENN_DEX_SUNKERN, + HOENN_DEX_SUNFLORA, + HOENN_DEX_YANMA, + HOENN_DEX_WOOPER, + HOENN_DEX_QUAGSIRE, + HOENN_DEX_ESPEON, + HOENN_DEX_UMBREON, + HOENN_DEX_MURKROW, + HOENN_DEX_SLOWKING, + HOENN_DEX_MISDREAVUS, + HOENN_DEX_UNOWN, + HOENN_DEX_PINECO, + HOENN_DEX_FORRETRESS, + HOENN_DEX_DUNSPARCE, + HOENN_DEX_GLIGAR, + HOENN_DEX_STEELIX, + HOENN_DEX_SNUBBULL, + HOENN_DEX_GRANBULL, + HOENN_DEX_QWILFISH, + HOENN_DEX_SCIZOR, + HOENN_DEX_SHUCKLE, + HOENN_DEX_SNEASEL, + HOENN_DEX_TEDDIURSA, + HOENN_DEX_URSARING, + HOENN_DEX_SWINUB, + HOENN_DEX_PILOSWINE, + HOENN_DEX_REMORAID, + HOENN_DEX_OCTILLERY, + HOENN_DEX_DELIBIRD, + HOENN_DEX_MANTINE, + HOENN_DEX_HOUNDOUR, + HOENN_DEX_HOUNDOOM, + HOENN_DEX_PORYGON2, + HOENN_DEX_STANTLER, + HOENN_DEX_SMEARGLE, + HOENN_DEX_TYROGUE, + HOENN_DEX_HITMONTOP, + HOENN_DEX_SMOOCHUM, + HOENN_DEX_ELEKID, + HOENN_DEX_MAGBY, + HOENN_DEX_MILTANK, + HOENN_DEX_BLISSEY, + HOENN_DEX_RAIKOU, + HOENN_DEX_ENTEI, + HOENN_DEX_SUICUNE, + HOENN_DEX_LARVITAR, + HOENN_DEX_PUPITAR, + HOENN_DEX_TYRANITAR, + HOENN_DEX_LUGIA, + HOENN_DEX_HO_OH, + HOENN_DEX_CELEBI, + HOENN_DEX_OLD_UNOWN_B, + HOENN_DEX_OLD_UNOWN_C, + HOENN_DEX_OLD_UNOWN_D, + HOENN_DEX_OLD_UNOWN_E, + HOENN_DEX_OLD_UNOWN_F, + HOENN_DEX_OLD_UNOWN_G, + HOENN_DEX_OLD_UNOWN_H, + HOENN_DEX_OLD_UNOWN_I, + HOENN_DEX_OLD_UNOWN_J, + HOENN_DEX_OLD_UNOWN_K, + HOENN_DEX_OLD_UNOWN_L, + HOENN_DEX_OLD_UNOWN_M, + HOENN_DEX_OLD_UNOWN_N, + HOENN_DEX_OLD_UNOWN_O, + HOENN_DEX_OLD_UNOWN_P, + HOENN_DEX_OLD_UNOWN_Q, + HOENN_DEX_OLD_UNOWN_R, + HOENN_DEX_OLD_UNOWN_S, + HOENN_DEX_OLD_UNOWN_T, + HOENN_DEX_OLD_UNOWN_U, + HOENN_DEX_OLD_UNOWN_V, + HOENN_DEX_OLD_UNOWN_W, + HOENN_DEX_OLD_UNOWN_X, + HOENN_DEX_OLD_UNOWN_Y, + HOENN_DEX_OLD_UNOWN_Z, +}; + +#define HOENN_DEX_COUNT HOENN_DEX_DEOXYS + +#endif // GUARD_CONSTANTS_POKEDEX_H diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 9fa023cd57..0a74e751eb 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -78,11 +78,13 @@ #define STAT_SPEED 3 #define STAT_SPATK 4 #define STAT_SPDEF 5 +#define NUM_STATS 6 + #define STAT_ACC 6 // Only in battles. #define STAT_EVASION 7 // Only in battles. -#define NUM_NATURE_STATS NUM_STATS - 1 // excludes HP -#define NUM_BATTLE_STATS NUM_STATS + 2 // includes Accuracy and Evasion +#define NUM_NATURE_STATS (NUM_STATS - 1) // excludes HP +#define NUM_BATTLE_STATS (NUM_STATS + 2) // includes Accuracy and Evasion #define MIN_STAT_STAGE 0 #define DEFAULT_STAT_STAGE 6 diff --git a/include/constants/slot_machine.h b/include/constants/slot_machine.h index 81848f2084..865d7e5d0b 100644 --- a/include/constants/slot_machine.h +++ b/include/constants/slot_machine.h @@ -3,4 +3,13 @@ #define SLOT_MACHINE_COUNT 12 +// Slot machine IDs +#define SLOT_MACHINE_UNLUCKIEST 0 +#define SLOT_MACHINE_UNLUCKIER 1 +#define SLOT_MACHINE_UNLUCKY 2 +#define SLOT_MACHINE_LUCKY 3 +#define SLOT_MACHINE_LUCKIER 4 +#define SLOT_MACHINE_LUCKIEST 5 +#define NUM_SLOT_MACHINE_IDS 6 + #endif // GUARD_CONSTANTS_SLOT_MACHINE_H diff --git a/include/constants/species.h b/include/constants/species.h index 983e1a7964..ec60c142ed 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -447,847 +447,4 @@ #define SPECIES_UNOWN_EMARK (SPECIES_UNOWN_B + 25) #define SPECIES_UNOWN_QMARK (SPECIES_UNOWN_B + 26) -// National Dex Index Defines - -#define NATIONAL_DEX_NONE 0 -#define NATIONAL_DEX_BULBASAUR 1 -#define NATIONAL_DEX_IVYSAUR 2 -#define NATIONAL_DEX_VENUSAUR 3 -#define NATIONAL_DEX_CHARMANDER 4 -#define NATIONAL_DEX_CHARMELEON 5 -#define NATIONAL_DEX_CHARIZARD 6 -#define NATIONAL_DEX_SQUIRTLE 7 -#define NATIONAL_DEX_WARTORTLE 8 -#define NATIONAL_DEX_BLASTOISE 9 -#define NATIONAL_DEX_CATERPIE 10 -#define NATIONAL_DEX_METAPOD 11 -#define NATIONAL_DEX_BUTTERFREE 12 -#define NATIONAL_DEX_WEEDLE 13 -#define NATIONAL_DEX_KAKUNA 14 -#define NATIONAL_DEX_BEEDRILL 15 -#define NATIONAL_DEX_PIDGEY 16 -#define NATIONAL_DEX_PIDGEOTTO 17 -#define NATIONAL_DEX_PIDGEOT 18 -#define NATIONAL_DEX_RATTATA 19 -#define NATIONAL_DEX_RATICATE 20 -#define NATIONAL_DEX_SPEAROW 21 -#define NATIONAL_DEX_FEAROW 22 -#define NATIONAL_DEX_EKANS 23 -#define NATIONAL_DEX_ARBOK 24 -#define NATIONAL_DEX_PIKACHU 25 -#define NATIONAL_DEX_RAICHU 26 -#define NATIONAL_DEX_SANDSHREW 27 -#define NATIONAL_DEX_SANDSLASH 28 -#define NATIONAL_DEX_NIDORAN_F 29 -#define NATIONAL_DEX_NIDORINA 30 -#define NATIONAL_DEX_NIDOQUEEN 31 -#define NATIONAL_DEX_NIDORAN_M 32 -#define NATIONAL_DEX_NIDORINO 33 -#define NATIONAL_DEX_NIDOKING 34 -#define NATIONAL_DEX_CLEFAIRY 35 -#define NATIONAL_DEX_CLEFABLE 36 -#define NATIONAL_DEX_VULPIX 37 -#define NATIONAL_DEX_NINETALES 38 -#define NATIONAL_DEX_JIGGLYPUFF 39 -#define NATIONAL_DEX_WIGGLYTUFF 40 -#define NATIONAL_DEX_ZUBAT 41 -#define NATIONAL_DEX_GOLBAT 42 -#define NATIONAL_DEX_ODDISH 43 -#define NATIONAL_DEX_GLOOM 44 -#define NATIONAL_DEX_VILEPLUME 45 -#define NATIONAL_DEX_PARAS 46 -#define NATIONAL_DEX_PARASECT 47 -#define NATIONAL_DEX_VENONAT 48 -#define NATIONAL_DEX_VENOMOTH 49 -#define NATIONAL_DEX_DIGLETT 50 -#define NATIONAL_DEX_DUGTRIO 51 -#define NATIONAL_DEX_MEOWTH 52 -#define NATIONAL_DEX_PERSIAN 53 -#define NATIONAL_DEX_PSYDUCK 54 -#define NATIONAL_DEX_GOLDUCK 55 -#define NATIONAL_DEX_MANKEY 56 -#define NATIONAL_DEX_PRIMEAPE 57 -#define NATIONAL_DEX_GROWLITHE 58 -#define NATIONAL_DEX_ARCANINE 59 -#define NATIONAL_DEX_POLIWAG 60 -#define NATIONAL_DEX_POLIWHIRL 61 -#define NATIONAL_DEX_POLIWRATH 62 -#define NATIONAL_DEX_ABRA 63 -#define NATIONAL_DEX_KADABRA 64 -#define NATIONAL_DEX_ALAKAZAM 65 -#define NATIONAL_DEX_MACHOP 66 -#define NATIONAL_DEX_MACHOKE 67 -#define NATIONAL_DEX_MACHAMP 68 -#define NATIONAL_DEX_BELLSPROUT 69 -#define NATIONAL_DEX_WEEPINBELL 70 -#define NATIONAL_DEX_VICTREEBEL 71 -#define NATIONAL_DEX_TENTACOOL 72 -#define NATIONAL_DEX_TENTACRUEL 73 -#define NATIONAL_DEX_GEODUDE 74 -#define NATIONAL_DEX_GRAVELER 75 -#define NATIONAL_DEX_GOLEM 76 -#define NATIONAL_DEX_PONYTA 77 -#define NATIONAL_DEX_RAPIDASH 78 -#define NATIONAL_DEX_SLOWPOKE 79 -#define NATIONAL_DEX_SLOWBRO 80 -#define NATIONAL_DEX_MAGNEMITE 81 -#define NATIONAL_DEX_MAGNETON 82 -#define NATIONAL_DEX_FARFETCHD 83 -#define NATIONAL_DEX_DODUO 84 -#define NATIONAL_DEX_DODRIO 85 -#define NATIONAL_DEX_SEEL 86 -#define NATIONAL_DEX_DEWGONG 87 -#define NATIONAL_DEX_GRIMER 88 -#define NATIONAL_DEX_MUK 89 -#define NATIONAL_DEX_SHELLDER 90 -#define NATIONAL_DEX_CLOYSTER 91 -#define NATIONAL_DEX_GASTLY 92 -#define NATIONAL_DEX_HAUNTER 93 -#define NATIONAL_DEX_GENGAR 94 -#define NATIONAL_DEX_ONIX 95 -#define NATIONAL_DEX_DROWZEE 96 -#define NATIONAL_DEX_HYPNO 97 -#define NATIONAL_DEX_KRABBY 98 -#define NATIONAL_DEX_KINGLER 99 -#define NATIONAL_DEX_VOLTORB 100 -#define NATIONAL_DEX_ELECTRODE 101 -#define NATIONAL_DEX_EXEGGCUTE 102 -#define NATIONAL_DEX_EXEGGUTOR 103 -#define NATIONAL_DEX_CUBONE 104 -#define NATIONAL_DEX_MAROWAK 105 -#define NATIONAL_DEX_HITMONLEE 106 -#define NATIONAL_DEX_HITMONCHAN 107 -#define NATIONAL_DEX_LICKITUNG 108 -#define NATIONAL_DEX_KOFFING 109 -#define NATIONAL_DEX_WEEZING 110 -#define NATIONAL_DEX_RHYHORN 111 -#define NATIONAL_DEX_RHYDON 112 -#define NATIONAL_DEX_CHANSEY 113 -#define NATIONAL_DEX_TANGELA 114 -#define NATIONAL_DEX_KANGASKHAN 115 -#define NATIONAL_DEX_HORSEA 116 -#define NATIONAL_DEX_SEADRA 117 -#define NATIONAL_DEX_GOLDEEN 118 -#define NATIONAL_DEX_SEAKING 119 -#define NATIONAL_DEX_STARYU 120 -#define NATIONAL_DEX_STARMIE 121 -#define NATIONAL_DEX_MR_MIME 122 -#define NATIONAL_DEX_SCYTHER 123 -#define NATIONAL_DEX_JYNX 124 -#define NATIONAL_DEX_ELECTABUZZ 125 -#define NATIONAL_DEX_MAGMAR 126 -#define NATIONAL_DEX_PINSIR 127 -#define NATIONAL_DEX_TAUROS 128 -#define NATIONAL_DEX_MAGIKARP 129 -#define NATIONAL_DEX_GYARADOS 130 -#define NATIONAL_DEX_LAPRAS 131 -#define NATIONAL_DEX_DITTO 132 -#define NATIONAL_DEX_EEVEE 133 -#define NATIONAL_DEX_VAPOREON 134 -#define NATIONAL_DEX_JOLTEON 135 -#define NATIONAL_DEX_FLAREON 136 -#define NATIONAL_DEX_PORYGON 137 -#define NATIONAL_DEX_OMANYTE 138 -#define NATIONAL_DEX_OMASTAR 139 -#define NATIONAL_DEX_KABUTO 140 -#define NATIONAL_DEX_KABUTOPS 141 -#define NATIONAL_DEX_AERODACTYL 142 -#define NATIONAL_DEX_SNORLAX 143 -#define NATIONAL_DEX_ARTICUNO 144 -#define NATIONAL_DEX_ZAPDOS 145 -#define NATIONAL_DEX_MOLTRES 146 -#define NATIONAL_DEX_DRATINI 147 -#define NATIONAL_DEX_DRAGONAIR 148 -#define NATIONAL_DEX_DRAGONITE 149 -#define NATIONAL_DEX_MEWTWO 150 -#define NATIONAL_DEX_MEW 151 - -#define KANTO_DEX_COUNT NATIONAL_DEX_MEW - -#define NATIONAL_DEX_CHIKORITA 152 -#define NATIONAL_DEX_BAYLEEF 153 -#define NATIONAL_DEX_MEGANIUM 154 -#define NATIONAL_DEX_CYNDAQUIL 155 -#define NATIONAL_DEX_QUILAVA 156 -#define NATIONAL_DEX_TYPHLOSION 157 -#define NATIONAL_DEX_TOTODILE 158 -#define NATIONAL_DEX_CROCONAW 159 -#define NATIONAL_DEX_FERALIGATR 160 -#define NATIONAL_DEX_SENTRET 161 -#define NATIONAL_DEX_FURRET 162 -#define NATIONAL_DEX_HOOTHOOT 163 -#define NATIONAL_DEX_NOCTOWL 164 -#define NATIONAL_DEX_LEDYBA 165 -#define NATIONAL_DEX_LEDIAN 166 -#define NATIONAL_DEX_SPINARAK 167 -#define NATIONAL_DEX_ARIADOS 168 -#define NATIONAL_DEX_CROBAT 169 -#define NATIONAL_DEX_CHINCHOU 170 -#define NATIONAL_DEX_LANTURN 171 -#define NATIONAL_DEX_PICHU 172 -#define NATIONAL_DEX_CLEFFA 173 -#define NATIONAL_DEX_IGGLYBUFF 174 -#define NATIONAL_DEX_TOGEPI 175 -#define NATIONAL_DEX_TOGETIC 176 -#define NATIONAL_DEX_NATU 177 -#define NATIONAL_DEX_XATU 178 -#define NATIONAL_DEX_MAREEP 179 -#define NATIONAL_DEX_FLAAFFY 180 -#define NATIONAL_DEX_AMPHAROS 181 -#define NATIONAL_DEX_BELLOSSOM 182 -#define NATIONAL_DEX_MARILL 183 -#define NATIONAL_DEX_AZUMARILL 184 -#define NATIONAL_DEX_SUDOWOODO 185 -#define NATIONAL_DEX_POLITOED 186 -#define NATIONAL_DEX_HOPPIP 187 -#define NATIONAL_DEX_SKIPLOOM 188 -#define NATIONAL_DEX_JUMPLUFF 189 -#define NATIONAL_DEX_AIPOM 190 -#define NATIONAL_DEX_SUNKERN 191 -#define NATIONAL_DEX_SUNFLORA 192 -#define NATIONAL_DEX_YANMA 193 -#define NATIONAL_DEX_WOOPER 194 -#define NATIONAL_DEX_QUAGSIRE 195 -#define NATIONAL_DEX_ESPEON 196 -#define NATIONAL_DEX_UMBREON 197 -#define NATIONAL_DEX_MURKROW 198 -#define NATIONAL_DEX_SLOWKING 199 -#define NATIONAL_DEX_MISDREAVUS 200 -#define NATIONAL_DEX_UNOWN 201 -#define NATIONAL_DEX_WOBBUFFET 202 -#define NATIONAL_DEX_GIRAFARIG 203 -#define NATIONAL_DEX_PINECO 204 -#define NATIONAL_DEX_FORRETRESS 205 -#define NATIONAL_DEX_DUNSPARCE 206 -#define NATIONAL_DEX_GLIGAR 207 -#define NATIONAL_DEX_STEELIX 208 -#define NATIONAL_DEX_SNUBBULL 209 -#define NATIONAL_DEX_GRANBULL 210 -#define NATIONAL_DEX_QWILFISH 211 -#define NATIONAL_DEX_SCIZOR 212 -#define NATIONAL_DEX_SHUCKLE 213 -#define NATIONAL_DEX_HERACROSS 214 -#define NATIONAL_DEX_SNEASEL 215 -#define NATIONAL_DEX_TEDDIURSA 216 -#define NATIONAL_DEX_URSARING 217 -#define NATIONAL_DEX_SLUGMA 218 -#define NATIONAL_DEX_MAGCARGO 219 -#define NATIONAL_DEX_SWINUB 220 -#define NATIONAL_DEX_PILOSWINE 221 -#define NATIONAL_DEX_CORSOLA 222 -#define NATIONAL_DEX_REMORAID 223 -#define NATIONAL_DEX_OCTILLERY 224 -#define NATIONAL_DEX_DELIBIRD 225 -#define NATIONAL_DEX_MANTINE 226 -#define NATIONAL_DEX_SKARMORY 227 -#define NATIONAL_DEX_HOUNDOUR 228 -#define NATIONAL_DEX_HOUNDOOM 229 -#define NATIONAL_DEX_KINGDRA 230 -#define NATIONAL_DEX_PHANPY 231 -#define NATIONAL_DEX_DONPHAN 232 -#define NATIONAL_DEX_PORYGON2 233 -#define NATIONAL_DEX_STANTLER 234 -#define NATIONAL_DEX_SMEARGLE 235 -#define NATIONAL_DEX_TYROGUE 236 -#define NATIONAL_DEX_HITMONTOP 237 -#define NATIONAL_DEX_SMOOCHUM 238 -#define NATIONAL_DEX_ELEKID 239 -#define NATIONAL_DEX_MAGBY 240 -#define NATIONAL_DEX_MILTANK 241 -#define NATIONAL_DEX_BLISSEY 242 -#define NATIONAL_DEX_RAIKOU 243 -#define NATIONAL_DEX_ENTEI 244 -#define NATIONAL_DEX_SUICUNE 245 -#define NATIONAL_DEX_LARVITAR 246 -#define NATIONAL_DEX_PUPITAR 247 -#define NATIONAL_DEX_TYRANITAR 248 -#define NATIONAL_DEX_LUGIA 249 -#define NATIONAL_DEX_HO_OH 250 -#define NATIONAL_DEX_CELEBI 251 - -#define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI - -#define NATIONAL_DEX_TREECKO 252 -#define NATIONAL_DEX_GROVYLE 253 -#define NATIONAL_DEX_SCEPTILE 254 -#define NATIONAL_DEX_TORCHIC 255 -#define NATIONAL_DEX_COMBUSKEN 256 -#define NATIONAL_DEX_BLAZIKEN 257 -#define NATIONAL_DEX_MUDKIP 258 -#define NATIONAL_DEX_MARSHTOMP 259 -#define NATIONAL_DEX_SWAMPERT 260 -#define NATIONAL_DEX_POOCHYENA 261 -#define NATIONAL_DEX_MIGHTYENA 262 -#define NATIONAL_DEX_ZIGZAGOON 263 -#define NATIONAL_DEX_LINOONE 264 -#define NATIONAL_DEX_WURMPLE 265 -#define NATIONAL_DEX_SILCOON 266 -#define NATIONAL_DEX_BEAUTIFLY 267 -#define NATIONAL_DEX_CASCOON 268 -#define NATIONAL_DEX_DUSTOX 269 -#define NATIONAL_DEX_LOTAD 270 -#define NATIONAL_DEX_LOMBRE 271 -#define NATIONAL_DEX_LUDICOLO 272 -#define NATIONAL_DEX_SEEDOT 273 -#define NATIONAL_DEX_NUZLEAF 274 -#define NATIONAL_DEX_SHIFTRY 275 -#define NATIONAL_DEX_TAILLOW 276 -#define NATIONAL_DEX_SWELLOW 277 -#define NATIONAL_DEX_WINGULL 278 -#define NATIONAL_DEX_PELIPPER 279 -#define NATIONAL_DEX_RALTS 280 -#define NATIONAL_DEX_KIRLIA 281 -#define NATIONAL_DEX_GARDEVOIR 282 -#define NATIONAL_DEX_SURSKIT 283 -#define NATIONAL_DEX_MASQUERAIN 284 -#define NATIONAL_DEX_SHROOMISH 285 -#define NATIONAL_DEX_BRELOOM 286 -#define NATIONAL_DEX_SLAKOTH 287 -#define NATIONAL_DEX_VIGOROTH 288 -#define NATIONAL_DEX_SLAKING 289 -#define NATIONAL_DEX_NINCADA 290 -#define NATIONAL_DEX_NINJASK 291 -#define NATIONAL_DEX_SHEDINJA 292 -#define NATIONAL_DEX_WHISMUR 293 -#define NATIONAL_DEX_LOUDRED 294 -#define NATIONAL_DEX_EXPLOUD 295 -#define NATIONAL_DEX_MAKUHITA 296 -#define NATIONAL_DEX_HARIYAMA 297 -#define NATIONAL_DEX_AZURILL 298 -#define NATIONAL_DEX_NOSEPASS 299 -#define NATIONAL_DEX_SKITTY 300 -#define NATIONAL_DEX_DELCATTY 301 -#define NATIONAL_DEX_SABLEYE 302 -#define NATIONAL_DEX_MAWILE 303 -#define NATIONAL_DEX_ARON 304 -#define NATIONAL_DEX_LAIRON 305 -#define NATIONAL_DEX_AGGRON 306 -#define NATIONAL_DEX_MEDITITE 307 -#define NATIONAL_DEX_MEDICHAM 308 -#define NATIONAL_DEX_ELECTRIKE 309 -#define NATIONAL_DEX_MANECTRIC 310 -#define NATIONAL_DEX_PLUSLE 311 -#define NATIONAL_DEX_MINUN 312 -#define NATIONAL_DEX_VOLBEAT 313 -#define NATIONAL_DEX_ILLUMISE 314 -#define NATIONAL_DEX_ROSELIA 315 -#define NATIONAL_DEX_GULPIN 316 -#define NATIONAL_DEX_SWALOT 317 -#define NATIONAL_DEX_CARVANHA 318 -#define NATIONAL_DEX_SHARPEDO 319 -#define NATIONAL_DEX_WAILMER 320 -#define NATIONAL_DEX_WAILORD 321 -#define NATIONAL_DEX_NUMEL 322 -#define NATIONAL_DEX_CAMERUPT 323 -#define NATIONAL_DEX_TORKOAL 324 -#define NATIONAL_DEX_SPOINK 325 -#define NATIONAL_DEX_GRUMPIG 326 -#define NATIONAL_DEX_SPINDA 327 -#define NATIONAL_DEX_TRAPINCH 328 -#define NATIONAL_DEX_VIBRAVA 329 -#define NATIONAL_DEX_FLYGON 330 -#define NATIONAL_DEX_CACNEA 331 -#define NATIONAL_DEX_CACTURNE 332 -#define NATIONAL_DEX_SWABLU 333 -#define NATIONAL_DEX_ALTARIA 334 -#define NATIONAL_DEX_ZANGOOSE 335 -#define NATIONAL_DEX_SEVIPER 336 -#define NATIONAL_DEX_LUNATONE 337 -#define NATIONAL_DEX_SOLROCK 338 -#define NATIONAL_DEX_BARBOACH 339 -#define NATIONAL_DEX_WHISCASH 340 -#define NATIONAL_DEX_CORPHISH 341 -#define NATIONAL_DEX_CRAWDAUNT 342 -#define NATIONAL_DEX_BALTOY 343 -#define NATIONAL_DEX_CLAYDOL 344 -#define NATIONAL_DEX_LILEEP 345 -#define NATIONAL_DEX_CRADILY 346 -#define NATIONAL_DEX_ANORITH 347 -#define NATIONAL_DEX_ARMALDO 348 -#define NATIONAL_DEX_FEEBAS 349 -#define NATIONAL_DEX_MILOTIC 350 -#define NATIONAL_DEX_CASTFORM 351 -#define NATIONAL_DEX_KECLEON 352 -#define NATIONAL_DEX_SHUPPET 353 -#define NATIONAL_DEX_BANETTE 354 -#define NATIONAL_DEX_DUSKULL 355 -#define NATIONAL_DEX_DUSCLOPS 356 -#define NATIONAL_DEX_TROPIUS 357 -#define NATIONAL_DEX_CHIMECHO 358 -#define NATIONAL_DEX_ABSOL 359 -#define NATIONAL_DEX_WYNAUT 360 -#define NATIONAL_DEX_SNORUNT 361 -#define NATIONAL_DEX_GLALIE 362 -#define NATIONAL_DEX_SPHEAL 363 -#define NATIONAL_DEX_SEALEO 364 -#define NATIONAL_DEX_WALREIN 365 -#define NATIONAL_DEX_CLAMPERL 366 -#define NATIONAL_DEX_HUNTAIL 367 -#define NATIONAL_DEX_GOREBYSS 368 -#define NATIONAL_DEX_RELICANTH 369 -#define NATIONAL_DEX_LUVDISC 370 -#define NATIONAL_DEX_BAGON 371 -#define NATIONAL_DEX_SHELGON 372 -#define NATIONAL_DEX_SALAMENCE 373 -#define NATIONAL_DEX_BELDUM 374 -#define NATIONAL_DEX_METANG 375 -#define NATIONAL_DEX_METAGROSS 376 -#define NATIONAL_DEX_REGIROCK 377 -#define NATIONAL_DEX_REGICE 378 -#define NATIONAL_DEX_REGISTEEL 379 -#define NATIONAL_DEX_LATIAS 380 -#define NATIONAL_DEX_LATIOS 381 -#define NATIONAL_DEX_KYOGRE 382 -#define NATIONAL_DEX_GROUDON 383 -#define NATIONAL_DEX_RAYQUAZA 384 -#define NATIONAL_DEX_JIRACHI 385 -#define NATIONAL_DEX_DEOXYS 386 - -#define NATIONAL_DEX_COUNT NATIONAL_DEX_DEOXYS - -#define NATIONAL_DEX_OLD_UNOWN_B (NATIONAL_DEX_COUNT + 1) -#define NATIONAL_DEX_OLD_UNOWN_C (NATIONAL_DEX_OLD_UNOWN_B + 1) -#define NATIONAL_DEX_OLD_UNOWN_D (NATIONAL_DEX_OLD_UNOWN_B + 2) -#define NATIONAL_DEX_OLD_UNOWN_E (NATIONAL_DEX_OLD_UNOWN_B + 3) -#define NATIONAL_DEX_OLD_UNOWN_F (NATIONAL_DEX_OLD_UNOWN_B + 4) -#define NATIONAL_DEX_OLD_UNOWN_G (NATIONAL_DEX_OLD_UNOWN_B + 5) -#define NATIONAL_DEX_OLD_UNOWN_H (NATIONAL_DEX_OLD_UNOWN_B + 6) -#define NATIONAL_DEX_OLD_UNOWN_I (NATIONAL_DEX_OLD_UNOWN_B + 7) -#define NATIONAL_DEX_OLD_UNOWN_J (NATIONAL_DEX_OLD_UNOWN_B + 8) -#define NATIONAL_DEX_OLD_UNOWN_K (NATIONAL_DEX_OLD_UNOWN_B + 9) -#define NATIONAL_DEX_OLD_UNOWN_L (NATIONAL_DEX_OLD_UNOWN_B + 10) -#define NATIONAL_DEX_OLD_UNOWN_M (NATIONAL_DEX_OLD_UNOWN_B + 11) -#define NATIONAL_DEX_OLD_UNOWN_N (NATIONAL_DEX_OLD_UNOWN_B + 12) -#define NATIONAL_DEX_OLD_UNOWN_O (NATIONAL_DEX_OLD_UNOWN_B + 13) -#define NATIONAL_DEX_OLD_UNOWN_P (NATIONAL_DEX_OLD_UNOWN_B + 14) -#define NATIONAL_DEX_OLD_UNOWN_Q (NATIONAL_DEX_OLD_UNOWN_B + 15) -#define NATIONAL_DEX_OLD_UNOWN_R (NATIONAL_DEX_OLD_UNOWN_B + 16) -#define NATIONAL_DEX_OLD_UNOWN_S (NATIONAL_DEX_OLD_UNOWN_B + 17) -#define NATIONAL_DEX_OLD_UNOWN_T (NATIONAL_DEX_OLD_UNOWN_B + 18) -#define NATIONAL_DEX_OLD_UNOWN_U (NATIONAL_DEX_OLD_UNOWN_B + 19) -#define NATIONAL_DEX_OLD_UNOWN_V (NATIONAL_DEX_OLD_UNOWN_B + 20) -#define NATIONAL_DEX_OLD_UNOWN_W (NATIONAL_DEX_OLD_UNOWN_B + 21) -#define NATIONAL_DEX_OLD_UNOWN_X (NATIONAL_DEX_OLD_UNOWN_B + 22) -#define NATIONAL_DEX_OLD_UNOWN_Y (NATIONAL_DEX_OLD_UNOWN_B + 23) -#define NATIONAL_DEX_OLD_UNOWN_Z (NATIONAL_DEX_OLD_UNOWN_B + 24) - -// Hoenn Dex Index Defines - -#define HOENN_DEX_NONE 0 -#define HOENN_DEX_TREECKO 1 -#define HOENN_DEX_GROVYLE 2 -#define HOENN_DEX_SCEPTILE 3 -#define HOENN_DEX_TORCHIC 4 -#define HOENN_DEX_COMBUSKEN 5 -#define HOENN_DEX_BLAZIKEN 6 -#define HOENN_DEX_MUDKIP 7 -#define HOENN_DEX_MARSHTOMP 8 -#define HOENN_DEX_SWAMPERT 9 -#define HOENN_DEX_POOCHYENA 10 -#define HOENN_DEX_MIGHTYENA 11 -#define HOENN_DEX_ZIGZAGOON 12 -#define HOENN_DEX_LINOONE 13 -#define HOENN_DEX_WURMPLE 14 -#define HOENN_DEX_SILCOON 15 -#define HOENN_DEX_BEAUTIFLY 16 -#define HOENN_DEX_CASCOON 17 -#define HOENN_DEX_DUSTOX 18 -#define HOENN_DEX_LOTAD 19 -#define HOENN_DEX_LOMBRE 20 -#define HOENN_DEX_LUDICOLO 21 -#define HOENN_DEX_SEEDOT 22 -#define HOENN_DEX_NUZLEAF 23 -#define HOENN_DEX_SHIFTRY 24 -#define HOENN_DEX_TAILLOW 25 -#define HOENN_DEX_SWELLOW 26 -#define HOENN_DEX_WINGULL 27 -#define HOENN_DEX_PELIPPER 28 -#define HOENN_DEX_RALTS 29 -#define HOENN_DEX_KIRLIA 30 -#define HOENN_DEX_GARDEVOIR 31 -#define HOENN_DEX_SURSKIT 32 -#define HOENN_DEX_MASQUERAIN 33 -#define HOENN_DEX_SHROOMISH 34 -#define HOENN_DEX_BRELOOM 35 -#define HOENN_DEX_SLAKOTH 36 -#define HOENN_DEX_VIGOROTH 37 -#define HOENN_DEX_SLAKING 38 -#define HOENN_DEX_ABRA 39 -#define HOENN_DEX_KADABRA 40 -#define HOENN_DEX_ALAKAZAM 41 -#define HOENN_DEX_NINCADA 42 -#define HOENN_DEX_NINJASK 43 -#define HOENN_DEX_SHEDINJA 44 -#define HOENN_DEX_WHISMUR 45 -#define HOENN_DEX_LOUDRED 46 -#define HOENN_DEX_EXPLOUD 47 -#define HOENN_DEX_MAKUHITA 48 -#define HOENN_DEX_HARIYAMA 49 -#define HOENN_DEX_GOLDEEN 50 -#define HOENN_DEX_SEAKING 51 -#define HOENN_DEX_MAGIKARP 52 -#define HOENN_DEX_GYARADOS 53 -#define HOENN_DEX_AZURILL 54 -#define HOENN_DEX_MARILL 55 -#define HOENN_DEX_AZUMARILL 56 -#define HOENN_DEX_GEODUDE 57 -#define HOENN_DEX_GRAVELER 58 -#define HOENN_DEX_GOLEM 59 -#define HOENN_DEX_NOSEPASS 60 -#define HOENN_DEX_SKITTY 61 -#define HOENN_DEX_DELCATTY 62 -#define HOENN_DEX_ZUBAT 63 -#define HOENN_DEX_GOLBAT 64 -#define HOENN_DEX_CROBAT 65 -#define HOENN_DEX_TENTACOOL 66 -#define HOENN_DEX_TENTACRUEL 67 -#define HOENN_DEX_SABLEYE 68 -#define HOENN_DEX_MAWILE 69 -#define HOENN_DEX_ARON 70 -#define HOENN_DEX_LAIRON 71 -#define HOENN_DEX_AGGRON 72 -#define HOENN_DEX_MACHOP 73 -#define HOENN_DEX_MACHOKE 74 -#define HOENN_DEX_MACHAMP 75 -#define HOENN_DEX_MEDITITE 76 -#define HOENN_DEX_MEDICHAM 77 -#define HOENN_DEX_ELECTRIKE 78 -#define HOENN_DEX_MANECTRIC 79 -#define HOENN_DEX_PLUSLE 80 -#define HOENN_DEX_MINUN 81 -#define HOENN_DEX_MAGNEMITE 82 -#define HOENN_DEX_MAGNETON 83 -#define HOENN_DEX_VOLTORB 84 -#define HOENN_DEX_ELECTRODE 85 -#define HOENN_DEX_VOLBEAT 86 -#define HOENN_DEX_ILLUMISE 87 -#define HOENN_DEX_ODDISH 88 -#define HOENN_DEX_GLOOM 89 -#define HOENN_DEX_VILEPLUME 90 -#define HOENN_DEX_BELLOSSOM 91 -#define HOENN_DEX_DODUO 92 -#define HOENN_DEX_DODRIO 93 -#define HOENN_DEX_ROSELIA 94 -#define HOENN_DEX_GULPIN 95 -#define HOENN_DEX_SWALOT 96 -#define HOENN_DEX_CARVANHA 97 -#define HOENN_DEX_SHARPEDO 98 -#define HOENN_DEX_WAILMER 99 -#define HOENN_DEX_WAILORD 100 -#define HOENN_DEX_NUMEL 101 -#define HOENN_DEX_CAMERUPT 102 -#define HOENN_DEX_SLUGMA 103 -#define HOENN_DEX_MAGCARGO 104 -#define HOENN_DEX_TORKOAL 105 -#define HOENN_DEX_GRIMER 106 -#define HOENN_DEX_MUK 107 -#define HOENN_DEX_KOFFING 108 -#define HOENN_DEX_WEEZING 109 -#define HOENN_DEX_SPOINK 110 -#define HOENN_DEX_GRUMPIG 111 -#define HOENN_DEX_SANDSHREW 112 -#define HOENN_DEX_SANDSLASH 113 -#define HOENN_DEX_SPINDA 114 -#define HOENN_DEX_SKARMORY 115 -#define HOENN_DEX_TRAPINCH 116 -#define HOENN_DEX_VIBRAVA 117 -#define HOENN_DEX_FLYGON 118 -#define HOENN_DEX_CACNEA 119 -#define HOENN_DEX_CACTURNE 120 -#define HOENN_DEX_SWABLU 121 -#define HOENN_DEX_ALTARIA 122 -#define HOENN_DEX_ZANGOOSE 123 -#define HOENN_DEX_SEVIPER 124 -#define HOENN_DEX_LUNATONE 125 -#define HOENN_DEX_SOLROCK 126 -#define HOENN_DEX_BARBOACH 127 -#define HOENN_DEX_WHISCASH 128 -#define HOENN_DEX_CORPHISH 129 -#define HOENN_DEX_CRAWDAUNT 130 -#define HOENN_DEX_BALTOY 131 -#define HOENN_DEX_CLAYDOL 132 -#define HOENN_DEX_LILEEP 133 -#define HOENN_DEX_CRADILY 134 -#define HOENN_DEX_ANORITH 135 -#define HOENN_DEX_ARMALDO 136 -#define HOENN_DEX_IGGLYBUFF 137 -#define HOENN_DEX_JIGGLYPUFF 138 -#define HOENN_DEX_WIGGLYTUFF 139 -#define HOENN_DEX_FEEBAS 140 -#define HOENN_DEX_MILOTIC 141 -#define HOENN_DEX_CASTFORM 142 -#define HOENN_DEX_STARYU 143 -#define HOENN_DEX_STARMIE 144 -#define HOENN_DEX_KECLEON 145 -#define HOENN_DEX_SHUPPET 146 -#define HOENN_DEX_BANETTE 147 -#define HOENN_DEX_DUSKULL 148 -#define HOENN_DEX_DUSCLOPS 149 -#define HOENN_DEX_TROPIUS 150 -#define HOENN_DEX_CHIMECHO 151 -#define HOENN_DEX_ABSOL 152 -#define HOENN_DEX_VULPIX 153 -#define HOENN_DEX_NINETALES 154 -#define HOENN_DEX_PICHU 155 -#define HOENN_DEX_PIKACHU 156 -#define HOENN_DEX_RAICHU 157 -#define HOENN_DEX_PSYDUCK 158 -#define HOENN_DEX_GOLDUCK 159 -#define HOENN_DEX_WYNAUT 160 -#define HOENN_DEX_WOBBUFFET 161 -#define HOENN_DEX_NATU 162 -#define HOENN_DEX_XATU 163 -#define HOENN_DEX_GIRAFARIG 164 -#define HOENN_DEX_PHANPY 165 -#define HOENN_DEX_DONPHAN 166 -#define HOENN_DEX_PINSIR 167 -#define HOENN_DEX_HERACROSS 168 -#define HOENN_DEX_RHYHORN 169 -#define HOENN_DEX_RHYDON 170 -#define HOENN_DEX_SNORUNT 171 -#define HOENN_DEX_GLALIE 172 -#define HOENN_DEX_SPHEAL 173 -#define HOENN_DEX_SEALEO 174 -#define HOENN_DEX_WALREIN 175 -#define HOENN_DEX_CLAMPERL 176 -#define HOENN_DEX_HUNTAIL 177 -#define HOENN_DEX_GOREBYSS 178 -#define HOENN_DEX_RELICANTH 179 -#define HOENN_DEX_CORSOLA 180 -#define HOENN_DEX_CHINCHOU 181 -#define HOENN_DEX_LANTURN 182 -#define HOENN_DEX_LUVDISC 183 -#define HOENN_DEX_HORSEA 184 -#define HOENN_DEX_SEADRA 185 -#define HOENN_DEX_KINGDRA 186 -#define HOENN_DEX_BAGON 187 -#define HOENN_DEX_SHELGON 188 -#define HOENN_DEX_SALAMENCE 189 -#define HOENN_DEX_BELDUM 190 -#define HOENN_DEX_METANG 191 -#define HOENN_DEX_METAGROSS 192 -#define HOENN_DEX_REGIROCK 193 -#define HOENN_DEX_REGICE 194 -#define HOENN_DEX_REGISTEEL 195 -#define HOENN_DEX_LATIAS 196 -#define HOENN_DEX_LATIOS 197 -#define HOENN_DEX_KYOGRE 198 -#define HOENN_DEX_GROUDON 199 -#define HOENN_DEX_RAYQUAZA 200 -#define HOENN_DEX_JIRACHI 201 -#define HOENN_DEX_DEOXYS 202 - -#define HOENN_DEX_COUNT HOENN_DEX_DEOXYS - -#define HOENN_DEX_BULBASAUR 203 -#define HOENN_DEX_IVYSAUR 204 -#define HOENN_DEX_VENUSAUR 205 -#define HOENN_DEX_CHARMANDER 206 -#define HOENN_DEX_CHARMELEON 207 -#define HOENN_DEX_CHARIZARD 208 -#define HOENN_DEX_SQUIRTLE 209 -#define HOENN_DEX_WARTORTLE 210 -#define HOENN_DEX_BLASTOISE 211 -#define HOENN_DEX_CATERPIE 212 -#define HOENN_DEX_METAPOD 213 -#define HOENN_DEX_BUTTERFREE 214 -#define HOENN_DEX_WEEDLE 215 -#define HOENN_DEX_KAKUNA 216 -#define HOENN_DEX_BEEDRILL 217 -#define HOENN_DEX_PIDGEY 218 -#define HOENN_DEX_PIDGEOTTO 219 -#define HOENN_DEX_PIDGEOT 220 -#define HOENN_DEX_RATTATA 221 -#define HOENN_DEX_RATICATE 222 -#define HOENN_DEX_SPEAROW 223 -#define HOENN_DEX_FEAROW 224 -#define HOENN_DEX_EKANS 225 -#define HOENN_DEX_ARBOK 226 -#define HOENN_DEX_NIDORAN_F 227 -#define HOENN_DEX_NIDORINA 228 -#define HOENN_DEX_NIDOQUEEN 229 -#define HOENN_DEX_NIDORAN_M 230 -#define HOENN_DEX_NIDORINO 231 -#define HOENN_DEX_NIDOKING 232 -#define HOENN_DEX_CLEFAIRY 233 -#define HOENN_DEX_CLEFABLE 234 -#define HOENN_DEX_PARAS 235 -#define HOENN_DEX_PARASECT 236 -#define HOENN_DEX_VENONAT 237 -#define HOENN_DEX_VENOMOTH 238 -#define HOENN_DEX_DIGLETT 239 -#define HOENN_DEX_DUGTRIO 240 -#define HOENN_DEX_MEOWTH 241 -#define HOENN_DEX_PERSIAN 242 -#define HOENN_DEX_MANKEY 243 -#define HOENN_DEX_PRIMEAPE 244 -#define HOENN_DEX_GROWLITHE 245 -#define HOENN_DEX_ARCANINE 246 -#define HOENN_DEX_POLIWAG 247 -#define HOENN_DEX_POLIWHIRL 248 -#define HOENN_DEX_POLIWRATH 249 -#define HOENN_DEX_BELLSPROUT 250 -#define HOENN_DEX_WEEPINBELL 251 -#define HOENN_DEX_VICTREEBEL 252 -#define HOENN_DEX_PONYTA 253 -#define HOENN_DEX_RAPIDASH 254 -#define HOENN_DEX_SLOWPOKE 255 -#define HOENN_DEX_SLOWBRO 256 -#define HOENN_DEX_FARFETCHD 257 -#define HOENN_DEX_SEEL 258 -#define HOENN_DEX_DEWGONG 259 -#define HOENN_DEX_SHELLDER 260 -#define HOENN_DEX_CLOYSTER 261 -#define HOENN_DEX_GASTLY 262 -#define HOENN_DEX_HAUNTER 263 -#define HOENN_DEX_GENGAR 264 -#define HOENN_DEX_ONIX 265 -#define HOENN_DEX_DROWZEE 266 -#define HOENN_DEX_HYPNO 267 -#define HOENN_DEX_KRABBY 268 -#define HOENN_DEX_KINGLER 269 -#define HOENN_DEX_EXEGGCUTE 270 -#define HOENN_DEX_EXEGGUTOR 271 -#define HOENN_DEX_CUBONE 272 -#define HOENN_DEX_MAROWAK 273 -#define HOENN_DEX_HITMONLEE 274 -#define HOENN_DEX_HITMONCHAN 275 -#define HOENN_DEX_LICKITUNG 276 -#define HOENN_DEX_CHANSEY 277 -#define HOENN_DEX_TANGELA 278 -#define HOENN_DEX_KANGASKHAN 279 -#define HOENN_DEX_MR_MIME 280 -#define HOENN_DEX_SCYTHER 281 -#define HOENN_DEX_JYNX 282 -#define HOENN_DEX_ELECTABUZZ 283 -#define HOENN_DEX_MAGMAR 284 -#define HOENN_DEX_TAUROS 285 -#define HOENN_DEX_LAPRAS 286 -#define HOENN_DEX_DITTO 287 -#define HOENN_DEX_EEVEE 288 -#define HOENN_DEX_VAPOREON 289 -#define HOENN_DEX_JOLTEON 290 -#define HOENN_DEX_FLAREON 291 -#define HOENN_DEX_PORYGON 292 -#define HOENN_DEX_OMANYTE 293 -#define HOENN_DEX_OMASTAR 294 -#define HOENN_DEX_KABUTO 295 -#define HOENN_DEX_KABUTOPS 296 -#define HOENN_DEX_AERODACTYL 297 -#define HOENN_DEX_SNORLAX 298 -#define HOENN_DEX_ARTICUNO 299 -#define HOENN_DEX_ZAPDOS 300 -#define HOENN_DEX_MOLTRES 301 -#define HOENN_DEX_DRATINI 302 -#define HOENN_DEX_DRAGONAIR 303 -#define HOENN_DEX_DRAGONITE 304 -#define HOENN_DEX_MEWTWO 305 -#define HOENN_DEX_MEW 306 -#define HOENN_DEX_CHIKORITA 307 -#define HOENN_DEX_BAYLEEF 308 -#define HOENN_DEX_MEGANIUM 309 -#define HOENN_DEX_CYNDAQUIL 310 -#define HOENN_DEX_QUILAVA 311 -#define HOENN_DEX_TYPHLOSION 312 -#define HOENN_DEX_TOTODILE 313 -#define HOENN_DEX_CROCONAW 314 -#define HOENN_DEX_FERALIGATR 315 -#define HOENN_DEX_SENTRET 316 -#define HOENN_DEX_FURRET 317 -#define HOENN_DEX_HOOTHOOT 318 -#define HOENN_DEX_NOCTOWL 319 -#define HOENN_DEX_LEDYBA 320 -#define HOENN_DEX_LEDIAN 321 -#define HOENN_DEX_SPINARAK 322 -#define HOENN_DEX_ARIADOS 323 -#define HOENN_DEX_CLEFFA 324 -#define HOENN_DEX_TOGEPI 325 -#define HOENN_DEX_TOGETIC 326 -#define HOENN_DEX_MAREEP 327 -#define HOENN_DEX_FLAAFFY 328 -#define HOENN_DEX_AMPHAROS 329 -#define HOENN_DEX_SUDOWOODO 330 -#define HOENN_DEX_POLITOED 331 -#define HOENN_DEX_HOPPIP 332 -#define HOENN_DEX_SKIPLOOM 333 -#define HOENN_DEX_JUMPLUFF 334 -#define HOENN_DEX_AIPOM 335 -#define HOENN_DEX_SUNKERN 336 -#define HOENN_DEX_SUNFLORA 337 -#define HOENN_DEX_YANMA 338 -#define HOENN_DEX_WOOPER 339 -#define HOENN_DEX_QUAGSIRE 340 -#define HOENN_DEX_ESPEON 341 -#define HOENN_DEX_UMBREON 342 -#define HOENN_DEX_MURKROW 343 -#define HOENN_DEX_SLOWKING 344 -#define HOENN_DEX_MISDREAVUS 345 -#define HOENN_DEX_UNOWN 346 -#define HOENN_DEX_PINECO 347 -#define HOENN_DEX_FORRETRESS 348 -#define HOENN_DEX_DUNSPARCE 349 -#define HOENN_DEX_GLIGAR 350 -#define HOENN_DEX_STEELIX 351 -#define HOENN_DEX_SNUBBULL 352 -#define HOENN_DEX_GRANBULL 353 -#define HOENN_DEX_QWILFISH 354 -#define HOENN_DEX_SCIZOR 355 -#define HOENN_DEX_SHUCKLE 356 -#define HOENN_DEX_SNEASEL 357 -#define HOENN_DEX_TEDDIURSA 358 -#define HOENN_DEX_URSARING 359 -#define HOENN_DEX_SWINUB 360 -#define HOENN_DEX_PILOSWINE 361 -#define HOENN_DEX_REMORAID 362 -#define HOENN_DEX_OCTILLERY 363 -#define HOENN_DEX_DELIBIRD 364 -#define HOENN_DEX_MANTINE 365 -#define HOENN_DEX_HOUNDOUR 366 -#define HOENN_DEX_HOUNDOOM 367 -#define HOENN_DEX_PORYGON2 368 -#define HOENN_DEX_STANTLER 369 -#define HOENN_DEX_SMEARGLE 370 -#define HOENN_DEX_TYROGUE 371 -#define HOENN_DEX_HITMONTOP 372 -#define HOENN_DEX_SMOOCHUM 373 -#define HOENN_DEX_ELEKID 374 -#define HOENN_DEX_MAGBY 375 -#define HOENN_DEX_MILTANK 376 -#define HOENN_DEX_BLISSEY 377 -#define HOENN_DEX_RAIKOU 378 -#define HOENN_DEX_ENTEI 379 -#define HOENN_DEX_SUICUNE 380 -#define HOENN_DEX_LARVITAR 381 -#define HOENN_DEX_PUPITAR 382 -#define HOENN_DEX_TYRANITAR 383 -#define HOENN_DEX_LUGIA 384 -#define HOENN_DEX_HO_OH 385 -#define HOENN_DEX_CELEBI 386 - -#define HOENN_DEX_OLD_UNOWN_B (HOENN_DEX_CELEBI + 1) -#define HOENN_DEX_OLD_UNOWN_C (HOENN_DEX_OLD_UNOWN_B + 1) -#define HOENN_DEX_OLD_UNOWN_D (HOENN_DEX_OLD_UNOWN_B + 2) -#define HOENN_DEX_OLD_UNOWN_E (HOENN_DEX_OLD_UNOWN_B + 3) -#define HOENN_DEX_OLD_UNOWN_F (HOENN_DEX_OLD_UNOWN_B + 4) -#define HOENN_DEX_OLD_UNOWN_G (HOENN_DEX_OLD_UNOWN_B + 5) -#define HOENN_DEX_OLD_UNOWN_H (HOENN_DEX_OLD_UNOWN_B + 6) -#define HOENN_DEX_OLD_UNOWN_I (HOENN_DEX_OLD_UNOWN_B + 7) -#define HOENN_DEX_OLD_UNOWN_J (HOENN_DEX_OLD_UNOWN_B + 8) -#define HOENN_DEX_OLD_UNOWN_K (HOENN_DEX_OLD_UNOWN_B + 9) -#define HOENN_DEX_OLD_UNOWN_L (HOENN_DEX_OLD_UNOWN_B + 10) -#define HOENN_DEX_OLD_UNOWN_M (HOENN_DEX_OLD_UNOWN_B + 11) -#define HOENN_DEX_OLD_UNOWN_N (HOENN_DEX_OLD_UNOWN_B + 12) -#define HOENN_DEX_OLD_UNOWN_O (HOENN_DEX_OLD_UNOWN_B + 13) -#define HOENN_DEX_OLD_UNOWN_P (HOENN_DEX_OLD_UNOWN_B + 14) -#define HOENN_DEX_OLD_UNOWN_Q (HOENN_DEX_OLD_UNOWN_B + 15) -#define HOENN_DEX_OLD_UNOWN_R (HOENN_DEX_OLD_UNOWN_B + 16) -#define HOENN_DEX_OLD_UNOWN_S (HOENN_DEX_OLD_UNOWN_B + 17) -#define HOENN_DEX_OLD_UNOWN_T (HOENN_DEX_OLD_UNOWN_B + 18) -#define HOENN_DEX_OLD_UNOWN_U (HOENN_DEX_OLD_UNOWN_B + 19) -#define HOENN_DEX_OLD_UNOWN_V (HOENN_DEX_OLD_UNOWN_B + 20) -#define HOENN_DEX_OLD_UNOWN_W (HOENN_DEX_OLD_UNOWN_B + 21) -#define HOENN_DEX_OLD_UNOWN_X (HOENN_DEX_OLD_UNOWN_B + 22) -#define HOENN_DEX_OLD_UNOWN_Y (HOENN_DEX_OLD_UNOWN_B + 23) -#define HOENN_DEX_OLD_UNOWN_Z (HOENN_DEX_OLD_UNOWN_B + 24) - #endif // GUARD_CONSTANTS_SPECIES_H diff --git a/include/constants/tv.h b/include/constants/tv.h index 3fe6c57b24..4c8dd4fa83 100644 --- a/include/constants/tv.h +++ b/include/constants/tv.h @@ -8,6 +8,14 @@ #define POKENEWS_BLENDMASTER 4 #define NUM_POKENEWS_TYPES 4 // Excludes NONE +#define POKENEWS_STATE_INACTIVE 0 +#define POKENEWS_STATE_UPCOMING 1 +#define POKENEWS_STATE_ACTIVE 2 + +// Number of days to count down until the news event occurs. +// Nothing is aired on TV the first day +#define POKENEWS_COUNTDOWN 4 + // TV shows are categorized as being in one of 3 groups // - TVGROUP_NORMAL, TV shows that can appear without Record Mixing // - TVGROUP_RECORD_MIX, TV shows that can only appear via Record Mixing diff --git a/include/constants/wild_encounter.h b/include/constants/wild_encounter.h new file mode 100644 index 0000000000..a78cd126f3 --- /dev/null +++ b/include/constants/wild_encounter.h @@ -0,0 +1,11 @@ +#ifndef GUARD_CONSTANTS_WILD_ENCOUNTER_H +#define GUARD_CONSTANTS_WILD_ENCOUNTER_H + +#define LAND_WILD_COUNT 12 +#define WATER_WILD_COUNT 5 +#define ROCK_WILD_COUNT 5 +#define FISH_WILD_COUNT 10 + +#define NUM_ALTERING_CAVE_TABLES 9 + +#endif // GUARD_CONSTANTS_WILD_ENCOUNTER_H diff --git a/include/easy_chat.h b/include/easy_chat.h index 4d2bc7c983..c9ef4428f7 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -2,7 +2,6 @@ #define GUARD_EASYCHAT_H #include "main.h" -#include "constants/easy_chat.h" struct EasyChatScreenTemplate { diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 6ad4b55e4f..d31802a67f 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -96,10 +96,9 @@ void SetSpritePosToOffsetMapCoords(s16 *, s16 *, s16, s16); void ObjectEventClearHeldMovement(struct ObjectEvent *); void ObjectEventClearHeldMovementIfActive(struct ObjectEvent *); void TrySpawnObjectEvents(s16, s16); -u8 CreateObjectSprite(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction); -u8 AddPseudoObjectEvent(u16, void (*)(struct Sprite *), s16 x, s16 y, u8 subpriority); +u8 CreateObjectGraphicsSprite(u16, void (*)(struct Sprite *), s16 x, s16 y, u8 subpriority); u8 TrySpawnObjectEvent(u8, u8, u8); -u8 SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 z); +u8 SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 elevation); u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *); void SetSpritePosToMapCoords(s16, s16, s16 *, s16 *); void CameraObjectReset1(void); @@ -110,8 +109,8 @@ const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u8 graphicsId); void SetObjectInvisibility(u8, u8, u8, bool8); void FreeAndReserveObjectSpritePalettes(void); void SetObjectEventSpritePosByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y); -void ResetObjectPriority(u8, u8, u8); -void SetObjectPriority(u8, u8, u8, u8); +void ResetObjectSubpriority(u8, u8, u8); +void SetObjectSubpriority(u8, u8, u8, u8); void AllowObjectAtPosTriggerGroundEffects(s16, s16); void ObjectEventGetLocalIdAndMap(struct ObjectEvent *objectEvent, void *localId, void *mapNum, void *mapGroup); void ShiftObjectEventCoords(struct ObjectEvent *, s16, s16); @@ -129,7 +128,7 @@ u8 GetCollisionAtCoords(struct ObjectEvent *, s16, s16, u32); void MoveCoords(u8, s16 *, s16 *); bool8 ObjectEventIsHeldMovementActive(struct ObjectEvent *); u8 ObjectEventClearHeldMovementIfFinished(struct ObjectEvent *); -u8 GetObjectEventIdByXYZ(u16 x, u16 y, u8 z); +u8 GetObjectEventIdByPosition(u16 x, u16 y, u8 elevation); void SetTrainerMovementType(struct ObjectEvent *objectEvent, u8 movementType); u8 GetTrainerFacingDirectionMovementType(u8 direction); const u8 *GetObjectEventScriptPointerByObjectEventId(u8 objectEventId); @@ -163,24 +162,21 @@ u8 ObjectEventCheckHeldMovementStatus(struct ObjectEvent *objectEvent); u8 ObjectEventGetHeldMovementActionId(struct ObjectEvent *objectEvent); void TryOverrideTemplateCoordsForObjectEvent(const struct ObjectEvent *objectEvent, u8 movementType); void OverrideTemplateCoordsForObjectEvent(const struct ObjectEvent *objectEvent); -void ShiftStillObjectEventCoords(struct ObjectEvent *pObject); -void ObjectEventMoveDestCoords(struct ObjectEvent *pObject, u32 unk_19, s16 *pInt, s16 *pInt1); +void ShiftStillObjectEventCoords(struct ObjectEvent *objEvent); +void ObjectEventMoveDestCoords(struct ObjectEvent *objEvent, u32 direction, s16 *x, s16 *y); u8 AddCameraObject(u8 linkedSpriteId); void UpdateObjectEventsForCameraUpdate(s16 x, s16 y); u8 GetWalkSlowMovementAction(u32); u8 GetJumpMovementAction(u32); -bool8 AreZCoordsCompatible(u8, u8); -u8 ZCoordToPriority(u8); -void ObjectEventUpdateZCoord(struct ObjectEvent *pObject); -void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8); -bool8 IsZCoordMismatchAt(u8, s16, s16); +u8 ElevationToPriority(u8); +void ObjectEventUpdateElevation(struct ObjectEvent *objEvent); +void SetObjectSubpriorityByElevation(u8, struct Sprite *, u8); void UnfreezeObjectEvent(struct ObjectEvent *); u8 FindLockedObjectEventIndex(struct ObjectEvent *); void SetAndStartSpriteAnim(struct Sprite *, u8, u8); bool8 SpriteAnimEnded(struct Sprite *); void UnfreezeObjectEvents(void); void FreezeObjectEventsExceptOne(u8 objectEventId); -void TurnObjectEventSprite(u8, u8); void FreezeObjectEventsExceptTwo(u8 objectEventId1, u8 objectEventId2); void FreezeObjectEvents(void); bool8 FreezeObjectEvent(struct ObjectEvent *objectEvent); @@ -414,10 +410,13 @@ u8 MovementType_RunInPlace_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementType_Invisible_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementType_Invisible_Step1(struct ObjectEvent *, struct Sprite *); u8 MovementType_Invisible_Step2(struct ObjectEvent *, struct Sprite *); -void SetObjectEventSpriteInvisibility(u8 objectEventId, bool32 invisible); -bool32 IsObjectEventSpriteInvisible(u8 objectEventId); -void SetObjectEventSpriteGraphics(u8 objectEventId, u8 graphicsId); -void SetObjectEventSpriteAnim(u8 objectEventId, u8 animNum); -bool32 IsObjectEventSpriteAnimating(u8 objectEventId); + +u8 CreateVirtualObject(u8 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevation, u8 direction); +void TurnVirtualObject(u8 virtualObjId, u8 direction); +void SetVirtualObjectGraphics(u8 virtualObjId, u8 graphicsId); +void SetVirtualObjectInvisibility(u8 virtualObjId, bool32 invisible); +bool32 IsVirtualObjectInvisible(u8 virtualObjId); +void SetVirtualObjectSpriteAnim(u8 virtualObjId, u8 animNum); +bool32 IsVirtualObjectAnimating(u8 virtualObjId); #endif //GUARD_EVENT_OBJECT_MOVEMENT_H diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h index 17e5afb63e..e02fcd5afe 100644 --- a/include/field_control_avatar.h +++ b/include/field_control_avatar.h @@ -25,15 +25,9 @@ struct FieldInput void FieldClearPlayerInput(struct FieldInput *pStruct); void FieldGetPlayerInput(struct FieldInput *pStruct, u16 keys, u16 heldKeys); int ProcessPlayerFieldInput(struct FieldInput *pStruct); -u8 *sub_80682A8(struct MapPosition *, u8, u8); void overworld_poison_timer_set(void); void RestartWildEncounterImmunitySteps(void); -u8 *sub_8068E24(struct MapPosition *); const u8 *GetObjectEventScriptPointerPlayerFacing(void); -bool8 sub_8068870(u16 a); -bool8 sub_8068894(void); -bool8 sub_8068A64(struct MapPosition *, u16); -u8 sub_8068F18(void); bool8 TryDoDiveWarp(struct MapPosition *position, u16 b); int SetCableClubWarp(void); u8 TrySetDiveWarp(void); diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 823564f226..d382de08c8 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -30,7 +30,7 @@ void PlayerSetAnimId(u8 a, u8 b); bool8 IsPlayerCollidingWithFarawayIslandMew(u8 direction); void PlayerOnBikeCollideWithFarawayIslandMew(u8 direction); u8 CheckForObjectEventCollision(struct ObjectEvent *a, s16 b, s16 c, u8 d, u8 e); -u8 PlayerGetZCoord(void); +u8 PlayerGetElevation(void); void SetPlayerAvatarTransitionFlags(u16 a); void CancelPlayerForcedMovement(void); void InitPlayerAvatar(s16 a, s16 b, u8 c, u8 d); diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h index 4e4725041a..6dc9b077d2 100644 --- a/include/field_screen_effect.h +++ b/include/field_screen_effect.h @@ -22,7 +22,7 @@ void FieldCB_ReturnToFieldNoScript(void); void FieldCB_ReturnToFieldNoScriptCheckMusic(void); void DoWarp(void); void DoDiveWarp(void); -void DoSootopolisLegendWarp(void); +void DoWhiteFadeWarp(void); void DoDoorWarp(void); void DoFallWarp(void); void DoEscalatorWarp(u8 metatileBehavior); @@ -33,13 +33,12 @@ void DoMossdeepGymWarp(void); void DoPortholeWarp(void); void DoCableClubWarp(void); void DoContestHallWarp(void); -void AnimateFlash(u8 flashLevel); +void AnimateFlash(u8 newFlashLevel); void WriteBattlePyramidViewScanlineEffectBuffer(void); void DoSpinEnterWarp(void); void DoSpinExitWarp(void); void DoOrbEffect(void); void FadeOutOrbEffect(void); -void sub_80B05B4(void); void WriteFlashScanlineEffectBuffer(u8 flashLevel); bool8 IsPlayerStandingStill(void); diff --git a/include/field_special_scene.h b/include/field_special_scene.h index a54b344d9b..3f701f41bf 100644 --- a/include/field_special_scene.h +++ b/include/field_special_scene.h @@ -9,7 +9,6 @@ void Task_Truck3(u8 taskId); void Task_HandleTruckSequence(u8 taskId); void ExecuteTruckSequence(void); void EndTruckSequence(u8); -void sub_80C791C(void); void FieldCB_ShowPortholeView(void); #endif // GUARD_FIELD_SPECIAL_SCENE_H diff --git a/include/field_weather.h b/include/field_weather.h index 72a56ab6ec..1d8cfe4220 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -221,9 +221,9 @@ void Bubbles_Main(void); void Bubbles_InitAll(void); bool8 Bubbles_Finish(void); -u8 GetSav1Weather(void); -void SetSav1Weather(u32 weather); -void SetSav1WeatherFromCurrMapHeader(void); +u8 GetSavedWeather(void); +void SetSavedWeather(u32 weather); +void SetSavedWeatherFromCurrMapHeader(void); void SetWeather(u32 weather); void DoCurrentWeather(void); void UpdateWeatherPerDay(u16 increment); diff --git a/include/fieldmap.h b/include/fieldmap.h index 28da8da2a3..e7497f7bd4 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -7,7 +7,7 @@ #define NUM_METATILES_TOTAL 1024 #define NUM_PALS_IN_PRIMARY 6 #define NUM_PALS_TOTAL 13 -#define MAX_MAP_DATA_SIZE 0x2800 +#define MAX_MAP_DATA_SIZE 10240 // Map coordinates are offset by 7 when using the map // buffer because it needs to load sufficient border @@ -29,10 +29,10 @@ void GetCameraCoords(u16*, u16*); bool8 MapGridIsImpassableAt(int, int); int GetMapBorderIdAt(int x, int y); bool32 CanCameraMoveInDirection(int direction); -u16 GetBehaviorByMetatileId(u16 metatileId); +u16 GetMetatileAttributesById(u16 metatileId); void GetCameraFocusCoords(u16 *x, u16 *y); u8 MapGridGetMetatileLayerTypeAt(int x, int y); -u8 MapGridGetZCoordAt(int x, int y); +u8 MapGridGetElevationAt(int x, int y); bool8 CameraMove(int deltaX, int deltaY); void SaveMapView(void); void SetCameraFocusCoords(u16 x, u16 y); diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h index eeb79391b5..a057c2da61 100644 --- a/include/gba/m4a_internal.h +++ b/include/gba/m4a_internal.h @@ -349,7 +349,7 @@ struct MusicPlayer { struct MusicPlayerInfo *info; struct MusicPlayerTrack *track; - u8 unk_8; + u8 numTracks; u16 unk_A; }; diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 33be942c80..974fa3382b 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -1,13 +1,30 @@ #ifndef GUARD_GLOBAL_FIELDMAP_H #define GUARD_GLOBAL_FIELDMAP_H -#define METATILE_BEHAVIOR_MASK 0x00FF -#define METATILE_COLLISION_MASK 0x0C00 -#define METATILE_ID_MASK 0x03FF -#define METATILE_ID_UNDEFINED 0x03FF -#define METATILE_ELEVATION_SHIFT 12 -#define METATILE_COLLISION_SHIFT 10 -#define METATILE_ELEVATION_MASK 0xF000 +// Masks/shifts for blocks in the map grid +// Map grid blocks consist of a 10 bit metatile id, a 2 bit collision value, and a 4 bit elevation value +// This is the data stored in each data/layouts/*/map.bin file +#define MAPGRID_METATILE_ID_MASK 0x03FF // Bits 1-10 +#define MAPGRID_COLLISION_MASK 0x0C00 // Bits 11-12 +#define MAPGRID_ELEVATION_MASK 0xF000 // Bits 13-16 +#define MAPGRID_COLLISION_SHIFT 10 +#define MAPGRID_ELEVATION_SHIFT 12 + +// An undefined map grid block has all metatile id bits set and nothing else +#define MAPGRID_UNDEFINED MAPGRID_METATILE_ID_MASK + +// Masks/shifts for metatile attributes +// Metatile attributes consist of an 8 bit behavior value, 4 unused bits, and a 4 bit layer type value +// This is the data stored in each data/tilesets/*/*/metatile_attributes.bin file +#define METATILE_ATTR_BEHAVIOR_MASK 0x00FF // Bits 1-8 +#define METATILE_ATTR_LAYER_MASK 0xF000 // Bits 13-16 +#define METATILE_ATTR_LAYER_SHIFT 12 + +enum { + METATILE_LAYER_TYPE_NORMAL, // Metatile uses middle and top bg layers + METATILE_LAYER_TYPE_COVERED, // Metatile uses bottom and middle bg layers + METATILE_LAYER_TYPE_SPLIT, // Metatile uses bottom and top bg layers +}; #define METATILE_ID(tileset, name) (METATILE_##tileset##_##name) @@ -16,18 +33,6 @@ // for constructing large tiles, such as the Battle Pike's curtain tile. #define METATILE_ROW_WIDTH 8 -enum -{ - CONNECTION_INVALID = -1, - CONNECTION_NONE, - CONNECTION_SOUTH, - CONNECTION_NORTH, - CONNECTION_WEST, - CONNECTION_EAST, - CONNECTION_DIVE, - CONNECTION_EMERGE -}; - typedef void (*TilesetCB)(void); struct Tileset diff --git a/include/global.h b/include/global.h index 53e9ba1341..0122ecd5c4 100644 --- a/include/global.h +++ b/include/global.h @@ -9,7 +9,11 @@ #include "constants/flags.h" #include "constants/vars.h" #include "constants/species.h" +#include "constants/pokedex.h" #include "constants/berry.h" +#include "constants/maps.h" +#include "constants/pokemon.h" +#include "constants/easy_chat.h" // Prevent cross-jump optimization. #define BLOCK_CROSS_JUMP asm(""); @@ -124,8 +128,11 @@ #define ROUND_BITS_TO_BYTES(numBits) DIV_ROUND_UP(numBits, 8) -#define DEX_FLAGS_NO ROUND_BITS_TO_BYTES(NUM_SPECIES) +// NUM_DEX_FLAG_BYTES allocates more flags than it needs to, as NUM_SPECIES includes the "old unown" +// values that don't appear in the Pokedex. NATIONAL_DEX_COUNT does not include these values. +#define NUM_DEX_FLAG_BYTES ROUND_BITS_TO_BYTES(NUM_SPECIES) #define NUM_FLAG_BYTES ROUND_BITS_TO_BYTES(FLAGS_COUNT) +#define NUM_ADDITIONAL_PHRASE_BYTES ROUND_BITS_TO_BYTES(NUM_ADDITIONAL_PHRASES) struct Coords8 { @@ -180,8 +187,8 @@ struct Pokedex /*0x04*/ u32 unownPersonality; // set when you first see Unown /*0x08*/ u32 spindaPersonality; // set when you first see Spinda /*0x0C*/ u32 unknown3; - /*0x10*/ u8 owned[DEX_FLAGS_NO]; - /*0x44*/ u8 seen[DEX_FLAGS_NO]; + /*0x10*/ u8 owned[NUM_DEX_FLAG_BYTES]; + /*0x44*/ u8 seen[NUM_DEX_FLAG_BYTES]; }; struct PokemonJumpRecords @@ -943,7 +950,7 @@ struct SaveBlock1 /*0x690*/ struct ItemSlot bagPocket_TMHM[BAG_TMHM_COUNT]; /*0x790*/ struct ItemSlot bagPocket_Berries[BAG_BERRIES_COUNT]; /*0x848*/ struct Pokeblock pokeblocks[POKEBLOCKS_COUNT]; - /*0x988*/ u8 seen1[DEX_FLAGS_NO]; + /*0x988*/ u8 seen1[NUM_DEX_FLAG_BYTES]; /*0x9BC*/ u16 berryBlenderRecords[3]; /*0x9C2*/ u8 unused_9C2[6]; /*0x9C8*/ u16 trainerRematchStepCounter; @@ -971,10 +978,10 @@ struct SaveBlock1 /*0x2B92*/ u8 outbreakLocationMapNum; /*0x2B93*/ u8 outbreakLocationMapGroup; /*0x2B94*/ u8 outbreakPokemonLevel; - /*0x2B95*/ u8 outbreakUnk1; - /*0x2B96*/ u16 outbreakUnk2; + /*0x2B95*/ u8 outbreakUnused1; + /*0x2B96*/ u16 outbreakUnused2; /*0x2B98*/ u16 outbreakPokemonMoves[MAX_MON_MOVES]; - /*0x2BA0*/ u8 outbreakUnk4; + /*0x2BA0*/ u8 outbreakUnused3; /*0x2BA1*/ u8 outbreakPokemonProbability; /*0x2BA2*/ u16 outbreakDaysLeft; /*0x2BA4*/ struct GabbyAndTyData gabbyAndTyData; @@ -983,7 +990,7 @@ struct SaveBlock1 /*0x2BC8*/ u16 easyChatBattleWon[EASY_CHAT_BATTLE_WORDS_COUNT]; /*0x2BD4*/ u16 easyChatBattleLost[EASY_CHAT_BATTLE_WORDS_COUNT]; /*0x2BE0*/ struct Mail mail[MAIL_COUNT]; - /*0x2E20*/ u8 additionalPhrases[8]; // bitfield for 33 additional phrases in easy chat system + /*0x2E20*/ u8 additionalPhrases[NUM_ADDITIONAL_PHRASE_BYTES]; // bitfield for 33 additional phrases in easy chat system /*0x2E28*/ OldMan oldMan; /*0x2e64*/ struct DewfordTrend dewfordTrends[SAVED_TRENDS_COUNT]; /*0x2e90*/ struct ContestWinner contestWinners[NUM_CONTEST_WINNERS]; // see CONTEST_WINNER_* @@ -999,7 +1006,7 @@ struct SaveBlock1 /*0x3718*/ u32 trainerHillTimes[4]; /*0x3728*/ struct RamScript ramScript; /*0x3B14*/ struct RecordMixingGift recordMixingGift; - /*0x3B24*/ u8 seen2[DEX_FLAGS_NO]; + /*0x3B24*/ u8 seen2[NUM_DEX_FLAG_BYTES]; /*0x3B58*/ LilycoveLady lilycoveLady; /*0x3B98*/ struct TrainerNameRecord trainerNameRecords[20]; /*0x3C88*/ u8 registeredTexts[UNION_ROOM_KB_ROW_COUNT][21]; @@ -1015,7 +1022,7 @@ struct MapPosition { s16 x; s16 y; - s8 height; + s8 elevation; }; #endif // GUARD_GLOBAL_H diff --git a/include/global.tv.h b/include/global.tv.h index 2bc7dda998..e24ead3f21 100644 --- a/include/global.tv.h +++ b/include/global.tv.h @@ -61,7 +61,7 @@ typedef union // size = 0x24 /*0x0F*/ u8 filler_0F[1]; /*0x10*/ u8 nickname[PLAYER_NAME_LENGTH + 1]; /*0x18*/ u16 words18[2]; - /*0x1C*/ u16 words[4]; + /*0x1C*/ u16 words[2]; } fanclubOpinions; // TVSHOW_DUMMY @@ -334,7 +334,7 @@ typedef union // size = 0x24 /*0x00*/ u8 kind; /*0x01*/ bool8 active; /*0x02*/ u8 avgLevel; - /*0x03*/ u8 nDecorations; + /*0x03*/ u8 numDecorations; /*0x04*/ u8 decorations[4]; /*0x08*/ u16 species; /*0x0a*/ u16 move; @@ -437,8 +437,8 @@ typedef union // size = 0x24 struct { /*0x00*/ u8 kind; /*0x01*/ bool8 active; - /*0x02*/ u8 nMonsCaught; - /*0x03*/ u8 nPkblkUsed; + /*0x02*/ u8 monsCaught; + /*0x03*/ u8 pokeblocksUsed; /*0x04*/ u8 language; /*0x05*/ u8 filler_05[14]; /*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; @@ -449,27 +449,27 @@ typedef union // size = 0x24 struct { /*0x00*/ u8 kind; /*0x01*/ bool8 active; - /*0x02*/ u8 var02; - /*0x03*/ u8 var03; + /*0x02*/ u8 unused1; + /*0x03*/ u8 unused3; /*0x04*/ u16 moves[MAX_MON_MOVES]; /*0x0C*/ u16 species; - /*0x0E*/ u16 var0E; + /*0x0E*/ u16 unused2; /*0x10*/ u8 locationMapNum; /*0x11*/ u8 locationMapGroup; - /*0x12*/ u8 var12; + /*0x12*/ u8 unused4; /*0x13*/ u8 probability; /*0x14*/ u8 level; - /*0x15*/ u8 var15; + /*0x15*/ u8 unused5; /*0x16*/ u16 daysLeft; /*0x18*/ u8 language; } massOutbreak; } TVShow; -typedef struct // 2b50 +typedef struct { u8 kind; u8 state; - u16 days; + u16 dayCountdown; } PokeNews; struct GabbyAndTyData diff --git a/include/graphics.h b/include/graphics.h index e2fe5cf778..0972743c5f 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -5,31 +5,31 @@ extern const u32 gMessageBox_Gfx[]; extern const u16 gMessageBox_Pal[]; -// interface pokeballs -extern const u32 gInterfaceGfx_PokeBall[]; -extern const u32 gInterfacePal_PokeBall[]; -extern const u32 gInterfaceGfx_GreatBall[]; -extern const u32 gInterfacePal_GreatBall[]; -extern const u32 gInterfaceGfx_SafariBall[]; -extern const u32 gInterfacePal_SafariBall[]; -extern const u32 gInterfaceGfx_UltraBall[]; -extern const u32 gInterfacePal_UltraBall[]; -extern const u32 gInterfaceGfx_MasterBall[]; -extern const u32 gInterfacePal_MasterBall[]; -extern const u32 gInterfaceGfx_NetBall[]; -extern const u32 gInterfacePal_NetBall[]; -extern const u32 gInterfaceGfx_DiveBall[]; -extern const u32 gInterfacePal_DiveBall[]; -extern const u32 gInterfaceGfx_NestBall[]; -extern const u32 gInterfacePal_NestBall[]; -extern const u32 gInterfaceGfx_RepeatBall[]; -extern const u32 gInterfacePal_RepeatBall[]; -extern const u32 gInterfaceGfx_TimerBall[]; -extern const u32 gInterfacePal_TimerBall[]; -extern const u32 gInterfaceGfx_LuxuryBall[]; -extern const u32 gInterfacePal_LuxuryBall[]; -extern const u32 gInterfaceGfx_PremierBall[]; -extern const u32 gInterfacePal_PremierBall[]; +// pokeballs +extern const u32 gBallGfx_Poke[]; +extern const u32 gBallPal_Poke[]; +extern const u32 gBallGfx_Great[]; +extern const u32 gBallPal_Great[]; +extern const u32 gBallGfx_Safari[]; +extern const u32 gBallPal_Safari[]; +extern const u32 gBallGfx_Ultra[]; +extern const u32 gBallPal_Ultra[]; +extern const u32 gBallGfx_Master[]; +extern const u32 gBallPal_Master[]; +extern const u32 gBallGfx_Net[]; +extern const u32 gBallPal_Net[]; +extern const u32 gBallGfx_Dive[]; +extern const u32 gBallPal_Dive[]; +extern const u32 gBallGfx_Nest[]; +extern const u32 gBallPal_Nest[]; +extern const u32 gBallGfx_Repeat[]; +extern const u32 gBallPal_Repeat[]; +extern const u32 gBallGfx_Timer[]; +extern const u32 gBallPal_Timer[]; +extern const u32 gBallGfx_Luxury[]; +extern const u32 gBallPal_Luxury[]; +extern const u32 gBallGfx_Premier[]; +extern const u32 gBallPal_Premier[]; extern const u32 gOpenPokeballGfx[]; // pokemon gfx @@ -4035,16 +4035,16 @@ extern const u32 gPokenavRibbonsSummaryBg_Tilemap[]; extern const u32 gSummaryScreen_Gfx[]; extern const u32 gSummaryScreen_Pal[]; extern const u32 gSummaryPage_Info_Tilemap[]; -extern const u32 gSummaryPage_InfoCopy_Tilemap[]; +extern const u32 gSummaryPage_InfoEgg_Tilemap[]; extern const u32 gSummaryPage_Skills_Tilemap[]; extern const u32 gSummaryPage_BattleMoves_Tilemap[]; extern const u32 gSummaryPage_ContestMoves_Tilemap[]; extern const u16 gPPTextPalette[]; -extern const u16 gSummaryScreenWindow_Tilemap[]; extern const u32 gMoveTypes_Pal[]; -extern const u16 gSummaryScreenPowAcc_Tilemap[]; -extern const u16 gSummaryScreenAppealJam_Tilemap[]; +extern const u16 gSummaryScreen_MoveEffect_Battle_Tilemap[]; +extern const u16 gSummaryScreen_MoveEffect_Contest_Tilemap[]; +extern const u16 gSummaryScreen_MoveEffect_Cancel_Tilemap[]; extern const u32 gMoveTypes_Gfx[]; extern const u32 gSummaryMoveSelect_Gfx[]; @@ -4052,10 +4052,10 @@ extern const u32 gSummaryMoveSelect_Pal[]; extern const u32 gStatusGfx_Icons[]; extern const u32 gStatusPal_Icons[]; -extern const u32 gBuyMenuFrame_Gfx[]; -extern const u32 gBuyMenuFrame_Tilemap[]; -extern const u32 gMenuMoneyGfx[]; -extern const u32 gMenuMoneyPal[]; +extern const u32 gShopMenu_Gfx[]; +extern const u32 gShopMenu_Tilemap[]; +extern const u32 gShopMenu_Pal[]; +extern const u32 gShopMenuMoney_Gfx[]; extern const u32 gBattleInterface_BallStatusBarGfx[]; extern const u8 gBattleInterface_BallDisplayGfx[]; @@ -4094,8 +4094,8 @@ extern const u32 gBlankGfxCompressed[]; extern const u16 gBattleInterface_BallStatusBarPal[]; extern const u16 gBattleInterface_BallDisplayPal[]; -extern const u32 gBagSwapLineGfx[]; -extern const u32 gBagSwapLinePal[]; +extern const u32 gSwapLineGfx[]; +extern const u32 gSwapLinePal[]; extern const u32 gBattlePyramidBag_Gfx[]; extern const u32 gBattlePyramidBag_Pal[]; @@ -4121,11 +4121,11 @@ extern const u32 gDomeTourneyInfoCardBg_Tilemap[]; extern const u32 gDomeTourneyTree_Pal[]; extern const u32 gDomeTourneyTreeButtons_Pal[]; extern const u32 gDomeTourneyMatchCardBg_Pal[]; -extern const u32 gDomeTourneyBg_Gfx[]; +extern const u32 gDomeTourneyTree_Gfx[]; extern const u32 gDomeTourneyLine_Gfx[]; extern const u32 gDomeTourneyLineDown_Tilemap[]; extern const u32 gDomeTourneyLineUp_Tilemap[]; -extern const u32 gDomeTourneyLineMask_Tilemap[]; +extern const u32 gDomeTourneyTree_Tilemap[]; extern const u32 gDomeTourneyTreeButtons_Gfx[]; extern const u16 gTilesetAnims_BattleDomePals0_0[]; extern const u16 gTilesetAnims_BattleDomePals0_1[]; @@ -5002,7 +5002,7 @@ extern const u16 gUsePokeblockCondition_Pal[]; // Berry Crush extern const u32 gBerryCrush_Crusher_Gfx[]; extern const u16 gBerryCrush_Crusher_Pal[]; -extern const u32 gBerryCrush_Crusher_Tilemap[]; +extern const u32 gBerryCrush_TextWindows_Tilemap[]; // Pokenav extern const u32 gPokenavMessageBox_Gfx[]; diff --git a/include/item.h b/include/item.h index ceca83bd5f..bcd9178e54 100644 --- a/include/item.h +++ b/include/item.h @@ -14,7 +14,7 @@ struct Item u8 holdEffectParam; const u8 *description; u8 importance; - u8 unk19; + bool8 registrability; // unused u8 pocket; u8 type; ItemUseFunc fieldUseFunc; @@ -68,7 +68,7 @@ u8 ItemId_GetHoldEffect(u16 itemId); u8 ItemId_GetHoldEffectParam(u16 itemId); const u8 *ItemId_GetDescription(u16 itemId); u8 ItemId_GetImportance(u16 itemId); -u8 ItemId_GetUnknownValue(u16 itemId); +u8 ItemId_GetRegistrability(u16 itemId); u8 ItemId_GetPocket(u16 itemId); u8 ItemId_GetType(u16 itemId); ItemUseFunc ItemId_GetFieldFunc(u16 itemId); diff --git a/include/mail.h b/include/mail.h index 8236811cbd..68c532b310 100644 --- a/include/mail.h +++ b/include/mail.h @@ -27,7 +27,7 @@ u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer); u8 GiveMailToMon(struct Pokemon *mon, struct Mail *mail); void TakeMailFromMon(struct Pokemon *mon); void ClearMailItemId(u8 mailId); -u8 TakeMailFromMon2(struct Pokemon *mon); +u8 TakeMailFromMonAndSave(struct Pokemon *mon); bool8 ItemIsMail(u16 itemId); #endif // GUARD_MAIL_H diff --git a/include/mauville_old_man.h b/include/mauville_old_man.h index 23a3cabfb4..b22294f1be 100644 --- a/include/mauville_old_man.h +++ b/include/mauville_old_man.h @@ -6,9 +6,7 @@ extern struct BardSong gBardSong; void SetMauvilleOldMan(void); u8 GetCurrentMauvilleOldMan(void); void SetMauvilleOldManObjEventGfx(void); -u8 sub_81201C8(void); void SanitizeMauvilleOldManForRuby(OldMan *dest); -void sub_8120670(void); void SanitizeReceivedRubyOldMan(union OldMan * oldMan, u32 r1, u32 r6); void SanitizeReceivedEmeraldOldMan(union OldMan * oldMan, u32 unused, u32 a2); void ResetMauvilleOldManFlag(void); diff --git a/include/menu.h b/include/menu.h index 69000d4089..bf3f56aeab 100644 --- a/include/menu.h +++ b/include/menu.h @@ -4,7 +4,6 @@ #include "task.h" #include "text.h" #include "window.h" -#include "constants/pokemon.h" #define MENU_NOTHING_CHOSEN -2 #define MENU_B_PRESSED -1 diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h index 23c84dffb1..c2d0d23ee3 100644 --- a/include/metatile_behavior.h +++ b/include/metatile_behavior.h @@ -57,7 +57,7 @@ bool8 MetatileBehavior_IsSecretBaseTree(u8); bool8 MetatileBehavior_IsSecretBaseShrub(u8); bool8 MetatileBehavior_IsSecretBasePC(u8); bool8 MetatileBehavior_IsRecordMixingSecretBasePC(u8); -bool8 MetatileBehavior_IsBlockDecoration(u8); +bool8 MetatileBehavior_IsSecretBaseTrainerSpot(u8); bool8 MetatileBehavior_IsSecretBaseImpassable(u8); bool8 MetatileBehavior_IsSecretBaseDecorationBase(u8); bool8 MetatileBehavior_IsSecretBasePoster(u8); @@ -102,10 +102,10 @@ bool8 MetatileBehavior_IsShortGrass(u8); bool8 MetatileBehavior_IsHotSprings(u8); bool8 MetatileBehavior_IsWaterfall(u8); bool8 MetatileBehavior_IsFortreeBridge(u8); -bool8 MetatileBehavior_IsPacifidlogVerticalLog1(u8); -bool8 MetatileBehavior_IsPacifidlogVerticalLog2(u8); -bool8 MetatileBehavior_IsPacifidlogHorizontalLog1(u8); -bool8 MetatileBehavior_IsPacifidlogHorizontalLog2(u8); +bool8 MetatileBehavior_IsPacifidlogVerticalLogTop(u8); +bool8 MetatileBehavior_IsPacifidlogVerticalLogBottom(u8); +bool8 MetatileBehavior_IsPacifidlogHorizontalLogLeft(u8); +bool8 MetatileBehavior_IsPacifidlogHorizontalLogRight(u8); bool8 MetatileBehavior_IsPacifidlogLog(u8); bool8 MetatileBehavior_IsTrickHousePuzzleDoor(u8); bool8 MetatileBehavior_IsRegionMap(u8); diff --git a/include/mystery_event_script.h b/include/mystery_event_script.h index 32b9f009f6..198a07e857 100644 --- a/include/mystery_event_script.h +++ b/include/mystery_event_script.h @@ -1,8 +1,16 @@ #ifndef GUARD_MYSTERY_EVENT_SCRIPT_H #define GUARD_MYSTERY_EVENT_SCRIPT_H +enum { + MEVENT_STATUS_LOAD_OK, + MEVENT_STATUS_LOAD_ERROR, + MEVENT_STATUS_SUCCESS, + MEVENT_STATUS_FAILURE, + MEVENT_STATUS_FF = 0xFF +}; + void InitMysteryEventScriptContext(u8 *script); -bool32 RunMysteryEventScriptContextCommand(u32 *script); +bool32 RunMysteryEventScriptContextCommand(u32 *status); u32 RunMysteryEventScript(u8 *script); void SetMysteryEventScriptStatus(u32 val); u16 GetRecordMixingGift(void); diff --git a/include/overworld.h b/include/overworld.h index e1cf100db5..b8794ea70f 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -40,20 +40,18 @@ struct LinkPlayerObjectEvent u8 movementMode; }; -// Exported RAM declarations extern struct WarpData gLastUsedWarp; extern struct LinkPlayerObjectEvent gLinkPlayerObjectEvents[4]; -extern u16 *gBGTilemapBuffers1; -extern u16 *gBGTilemapBuffers2; -extern u16 *gBGTilemapBuffers3; +extern u16 *gOverworldTilemapBuffer_Bg2; +extern u16 *gOverworldTilemapBuffer_Bg1; +extern u16 *gOverworldTilemapBuffer_Bg3; extern u16 gHeldKeyCodeToSend; extern void (*gFieldCallback)(void); extern bool8 (*gFieldCallback2)(void); extern u8 gLocalLinkPlayerId; extern u8 gFieldLinkPlayerCount; -// Exported ROM declarations extern const struct UCoords32 gDirectionToVectors[]; void DoWhiteOut(void); @@ -67,8 +65,8 @@ void SetGameStat(u8 index, u32 value); void ApplyNewEncryptionKeyToGameStats(u32 newKey); void LoadObjEventTemplatesFromHeader(void); void LoadSaveblockObjEventScripts(void); -void Overworld_SetObjEventTemplateCoords(u8 localId, s16 x, s16 y); -void Overworld_SetObjEventTemplateMovementType(u8 localId, u8 movementType); +void SetObjEventTemplateCoords(u8 localId, s16 x, s16 y); +void SetObjEventTemplateMovementType(u8 localId, u8 movementType); const struct MapLayout *GetMapLayout(void); void ApplyCurrentWarp(void); struct MapHeader const *const Overworld_GetMapHeaderByGroupAndId(u16 mapGroup, u16 mapNum); @@ -98,8 +96,8 @@ void ResetInitialPlayerAvatarState(void); void StoreInitialPlayerAvatarState(void); bool32 Overworld_IsBikingAllowed(void); void SetDefaultFlashLevel(void); -void Overworld_SetFlashLevel(s32 flashLevel); -u8 Overworld_GetFlashLevel(void); +void SetFlashLevel(s32 flashLevel); +u8 GetFlashLevel(void); void SetCurrentMapLayout(u16 mapLayoutId); void SetObjectEventLoadFlag(u8 var); u16 GetLocationMusic(struct WarpData *warp); diff --git a/include/pokeblock.h b/include/pokeblock.h index 9e01614951..24e6ea8569 100644 --- a/include/pokeblock.h +++ b/include/pokeblock.h @@ -1,9 +1,6 @@ #ifndef GUARD_POKEBLOCK_H #define GUARD_POKEBLOCK_H -#include "constants/berry.h" -#include "constants/pokemon.h" - #define TAG_POKEBLOCK 14818 enum diff --git a/include/pokemon.h b/include/pokemon.h index f3f7586888..c17cd2ddfc 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -1,7 +1,6 @@ #ifndef GUARD_POKEMON_H #define GUARD_POKEMON_H -#include "constants/pokemon.h" #include "sprite.h" struct PokemonSubstruct0 @@ -240,10 +239,13 @@ struct BattleMove u8 flags; }; +#define SPINDA_SPOT_WIDTH 16 +#define SPINDA_SPOT_HEIGHT 16 + struct SpindaSpot { u8 x, y; - u16 image[16]; + u16 image[SPINDA_SPOT_HEIGHT]; }; struct __attribute__((packed)) LevelUpMove diff --git a/include/save.h b/include/save.h index be7961136e..89fc9ad33e 100644 --- a/include/save.h +++ b/include/save.h @@ -52,8 +52,7 @@ enum { SAVE_NORMAL, SAVE_LINK, // Link / Battle Frontier - //EREADER_SAVE, // deprecated in Emerald - SAVE_LINK2, // unknown 2nd link save + SAVE_EREADER, // deprecated in Emerald SAVE_HALL_OF_FAME, SAVE_OVERWRITE_DIFFERENT_FILE, SAVE_HALL_OF_FAME_ERASE_BEFORE // unused diff --git a/include/script_menu.h b/include/script_menu.h index 086ad147f0..a690ef8b8b 100644 --- a/include/script_menu.h +++ b/include/script_menu.h @@ -8,7 +8,7 @@ bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 multichoiceId, bool8 bool8 ScriptMenu_YesNo(u8 left, u8 top); bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, bool8 ignoreBPress, u8 columnCount); bool8 ScriptMenu_ShowPokemonPic(u16 species, u8 x, u8 y); -bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void); +bool8 (*ScriptMenu_HidePokemonPic(void))(void); int ConvertPixelWidthToTileWidth(int width); u8 CreateWindowFromRect(u8 x, u8 y, u8 width, u8 height); void ClearToTransparentAndRemoveWindow(u8 windowId); diff --git a/include/tv.h b/include/tv.h index 30cd133265..31c8fcc50f 100644 --- a/include/tv.h +++ b/include/tv.h @@ -19,7 +19,7 @@ void HideBattleTowerReporter(void); void ReceiveTvShowsData(void *src, u32 size, u8 masterIdx); void TryPutSpotTheCutiesOnAir(struct Pokemon *pokemon, u8 ribbonMonDataIdx); u32 GetPlayerIDAsU32(void); -bool8 GetPriceReduction(u8 newsKind); +bool8 IsPokeNewsActive(u8 newsKind); void SanitizeTVShowLocationsForRuby(TVShow *shows); size_t CountDigits(int value); u8 GetRibbonCount(struct Pokemon *pokemon); diff --git a/include/wild_encounter.h b/include/wild_encounter.h index 09525beff9..8608ec5b16 100644 --- a/include/wild_encounter.h +++ b/include/wild_encounter.h @@ -1,10 +1,7 @@ #ifndef GUARD_WILD_ENCOUNTER_H #define GUARD_WILD_ENCOUNTER_H -#define LAND_WILD_COUNT 12 -#define WATER_WILD_COUNT 5 -#define ROCK_WILD_COUNT 5 -#define FISH_WILD_COUNT 10 +#include "constants/wild_encounter.h" struct WildPokemon { diff --git a/ld_script.txt b/ld_script.txt index 8951475df9..b5a35963a4 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -20,7 +20,9 @@ SECTIONS { . = 0x1C000; INCLUDE "sym_ewram.ld" - + *libc.a:impure.o(.data); + *libc.a:locale.o(.data); + *libc.a:mallocr.o(.data); . = 0x40000; } @@ -463,6 +465,7 @@ SECTIONS { src/mystery_gift_server.o(.rodata); src/mystery_gift_client.o(.rodata); src/mystery_gift_scripts.o(.rodata); + src/wonder_news.o(.rodata); src/union_room_chat.o(.rodata); src/berry_crush.o(.rodata); src/berry_powder.o(.rodata); @@ -1247,16 +1250,50 @@ SECTIONS { src/librfu_sio32id.o(.rodata); *libgcc.a:_divdi3.o(.rodata); *libgcc.a:_udivdi3.o(.rodata); - *libc.a(.rodata); - *libc.a(.data); + *libc.a:memcpy.o(.rodata); + *libc.a:memset.o(.rodata); + *libc.a:strcmp.o(.rodata); + *libc.a:strcpy.o(.rodata); + *libc.a:impure.o(.rodata); + *libc.a:vsprintf.o(.rodata); + *libc.a:vfprintf.o(.rodata); + *libc.a:wsetup.o(.rodata); + *libc.a:dtoa.o(.rodata); + *libc.a:fflush.o(.rodata); + *libc.a:findfp.o(.rodata); + *libc.a:freer.o(.rodata); + *libc.a:mtrim.o(.rodata); + *libc.a:fvwrite.o(.rodata); + *libc.a:fwalk.o(.rodata); + *libc.a:locale.o(.rodata); + *libc.a:makebuf.o(.rodata); + *libc.a:mallocr.o(.rodata); + *libc.a:mbtowc_r.o(.rodata); + *libc.a:memchr.o(.rodata); + *libc.a:memmove.o(.rodata); + *libc.a:mlock.o(.rodata); + *libc.a:mprec.o(.rodata); + *libc.a:s_isinf.o(.rodata); + *libc.a:s_isnan.o(.rodata); + *libc.a:sbrkr.o(.rodata); + *libc.a:stdio.o(.rodata); + *libc.a:strlen.o(.rodata); *libc.a:syscalls.o(.rodata); + *libc.a:writer.o(.rodata); + *libc.a:callocr.o(.rodata); + *libc.a:closer.o(.rodata); + *libc.a:errno.o(.rodata); + *libc.a:fstatr.o(.rodata); + *libc.a:libcfunc.o(.rodata); + *libc.a:lseekr.o(.rodata); + *libc.a:readr.o(.rodata); src/libisagbprn.o(.rodata); } =0 - other_data : + multiboot_data : ALIGN(4) { - data/ereader_link_data.o(.rodata); + data/multiboot_ereader.o(.rodata); data/multiboot_berry_glitch_fix.o(.rodata); data/multiboot_pokemon_colosseum.o(.rodata); } =0 diff --git a/ld_script_modern.txt b/ld_script_modern.txt index ac62abe276..a988fe0cd5 100644 --- a/ld_script_modern.txt +++ b/ld_script_modern.txt @@ -27,6 +27,7 @@ SECTIONS { /* .bss starts at 0x3000000 */ src/*.o(.bss); gflib/*.o(.bss); + data/*.o(.bss); *libc.a:*.o(.bss*); *libnosys.a:*.o(.bss*); @@ -111,10 +112,10 @@ SECTIONS { src/libisagbprn.o(.rodata); } =0 - other_data : + multiboot_data : ALIGN(4) { - data/ereader_link_data.o(.rodata); + data/multiboot_ereader.o(.rodata); data/multiboot_berry_glitch_fix.o(.rodata); data/multiboot_pokemon_colosseum.o(.rodata); } =0 diff --git a/sound/MPlayDef.s b/sound/MPlayDef.s index f5dd6484d9..95a788e85e 100644 --- a/sound/MPlayDef.s +++ b/sound/MPlayDef.s @@ -333,7 +333,7 @@ .equ v066, 66 @ .equ v067, 67 @ .equ v068, 68 @ - .equ v069, 79 @ + .equ v069, 69 @ .equ v070, 70 @ .equ v071, 71 @ .equ v072, 72 @ diff --git a/sound/music_player_table.inc b/sound/music_player_table.inc index 6c74a13528..5981a4d037 100644 --- a/sound/music_player_table.inc +++ b/sound/music_player_table.inc @@ -1,6 +1,32 @@ + .equiv TRACK_SIZE, 0x50 + .equiv NUM_TRACKS_BGM, 10 + .equiv NUM_TRACKS_SE1, 3 + .equiv NUM_TRACKS_SE2, 9 + .equiv NUM_TRACKS_SE3, 1 + + .bss + +gMPlayTrack_BGM:: + .space TRACK_SIZE * NUM_TRACKS_BGM + .size gMPlayTrack_BGM, .-gMPlayTrack_BGM + +gMPlayTrack_SE1:: + .space TRACK_SIZE * NUM_TRACKS_SE1 + .size gMPlayTrack_SE1, .-gMPlayTrack_SE1 + +gMPlayTrack_SE2:: + .space TRACK_SIZE * NUM_TRACKS_SE2 + .size gMPlayTrack_SE2, .-gMPlayTrack_SE2 + +gMPlayTrack_SE3:: + .space TRACK_SIZE * NUM_TRACKS_SE3 + .size gMPlayTrack_SE3, .-gMPlayTrack_SE3 + + .section .rodata + .align 2 gMPlayTable:: - music_player gMPlayInfo_BGM, gMPlayTrack_BGM, 10, 0 - music_player gMPlayInfo_SE1, gMPlayTrack_SE1, 3, 1 - music_player gMPlayInfo_SE2, gMPlayTrack_SE2, 9, 1 - music_player gMPlayInfo_SE3, gMPlayTrack_SE3, 1, 0 + music_player gMPlayInfo_BGM, gMPlayTrack_BGM, NUM_TRACKS_BGM, 0 + music_player gMPlayInfo_SE1, gMPlayTrack_SE1, NUM_TRACKS_SE1, 1 + music_player gMPlayInfo_SE2, gMPlayTrack_SE2, NUM_TRACKS_SE2, 1 + music_player gMPlayInfo_SE3, gMPlayTrack_SE3, NUM_TRACKS_SE3, 0 diff --git a/spritesheet_rules.mk b/spritesheet_rules.mk index ae79719602..9fb184638a 100644 --- a/spritesheet_rules.mk +++ b/spritesheet_rules.mk @@ -636,7 +636,7 @@ $(FLDEFFGFXDIR)/tall_grass.4bpp: %.4bpp: %.png $(FLDEFFGFXDIR)/tree_disguise.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 4 -$(FLDEFFGFXDIR)/unknown_16.4bpp: %.4bpp: %.png +$(FLDEFFGFXDIR)/jump_long_grass.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 2 $(FLDEFFGFXDIR)/unknown_17.4bpp: %.4bpp: %.png diff --git a/src/apprentice.c b/src/apprentice.c index 6255b9215a..591ab79e4d 100644 --- a/src/apprentice.c +++ b/src/apprentice.c @@ -23,9 +23,7 @@ #include "task.h" #include "text.h" #include "constants/battle_frontier.h" -#include "constants/easy_chat.h" #include "constants/items.h" -#include "constants/pokemon.h" #include "constants/songs.h" #include "constants/trainers.h" #include "constants/moves.h" @@ -127,7 +125,7 @@ void BufferApprenticeChallengeText(u8 saveApprenticeId) for (i = 0; num != 0 && i < APPRENTICE_COUNT; num /= 10, i++) ; - StringCopy7(gStringVar1, gSaveBlock2Ptr->apprentices[saveApprenticeId].playerName); + StringCopy_PlayerName(gStringVar1, gSaveBlock2Ptr->apprentices[saveApprenticeId].playerName); ConvertInternationalString(gStringVar1, gSaveBlock2Ptr->apprentices[saveApprenticeId].language); ConvertIntToDecimalStringN(gStringVar2, gSaveBlock2Ptr->apprentices[saveApprenticeId].number, STR_CONV_MODE_RIGHT_ALIGN, i); challengeText = sApprenticeChallengeTexts[gSaveBlock2Ptr->apprentices[saveApprenticeId].id]; diff --git a/src/bard_music.c b/src/bard_music.c index 114f1cf42f..bdc5ac808a 100644 --- a/src/bard_music.c +++ b/src/bard_music.c @@ -1,6 +1,5 @@ #include "global.h" #include "bard_music.h" -#include "constants/easy_chat.h" #include "easy_chat.h" #include "data/bard_music/bard_sounds.h" diff --git a/src/battle_anim_smokescreen.c b/src/battle_anim_smokescreen.c index 9844f50077..0819796d27 100644 --- a/src/battle_anim_smokescreen.c +++ b/src/battle_anim_smokescreen.c @@ -5,7 +5,6 @@ #include "graphics.h" #include "sprite.h" #include "util.h" -#include "constants/pokemon.h" #include "constants/battle_palace.h" static void SmokescreenImpact_Callback(struct Sprite *); diff --git a/src/battle_arena.c b/src/battle_arena.c index 8a993f770f..a7c74366b5 100644 --- a/src/battle_arena.c +++ b/src/battle_arena.c @@ -741,7 +741,7 @@ void BattleArena_AddSkillPoints(u8 battler) } } -void BattleArena_DeductMindPoints(u8 battler, u16 stringId) +void BattleArena_DeductSkillPoints(u8 battler, u16 stringId) { s8 *skillPoints = gBattleStruct->arenaSkillPoints; @@ -798,7 +798,7 @@ static void InitArenaChallenge(void) if (!isCurrent) gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] = 0; - SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); + SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, WARP_ID_NONE); gTrainerBattleOpponent_A = 0; } diff --git a/src/battle_bg.c b/src/battle_bg.c index 0e4370485c..f739a002f6 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -598,7 +598,7 @@ const struct WindowTemplate * const gBattleWindowTemplates[] = [B_WIN_TYPE_ARENA] = gBattleArenaWindowTemplates, }; -static const struct BattleBackground gBattleTerrainTable[] = +static const struct BattleBackground sBattleTerrainTable[] = { [BATTLE_TERRAIN_GRASS] = { @@ -807,9 +807,9 @@ void DrawMainBattleBackground(void) { default: case MAP_BATTLE_SCENE_NORMAL: - LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tileset, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tilemap, (void*)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainTable[gBattleTerrain].palette, 0x20, 0x60); + LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tileset, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tilemap, (void*)(BG_SCREEN_ADDR(26))); + LoadCompressedPalette(sBattleTerrainTable[gBattleTerrain].palette, 0x20, 0x60); break; case MAP_BATTLE_SCENE_GYM: LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); @@ -1194,8 +1194,8 @@ void DrawBattleEntryBackground(void) if (GetCurrentMapBattleScene() == MAP_BATTLE_SCENE_NORMAL) { - LZDecompressVram(gBattleTerrainTable[gBattleTerrain].entryTileset, (void*)(BG_CHAR_ADDR(1))); - LZDecompressVram(gBattleTerrainTable[gBattleTerrain].entryTilemap, (void*)(BG_SCREEN_ADDR(28))); + LZDecompressVram(sBattleTerrainTable[gBattleTerrain].entryTileset, (void*)(BG_CHAR_ADDR(1))); + LZDecompressVram(sBattleTerrainTable[gBattleTerrain].entryTilemap, (void*)(BG_SCREEN_ADDR(28))); } else { @@ -1251,7 +1251,7 @@ bool8 LoadChosenBattleElement(u8 caseId) { default: case MAP_BATTLE_SCENE_NORMAL: - LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tileset, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tileset, (void*)(BG_CHAR_ADDR(2))); break; case MAP_BATTLE_SCENE_GYM: LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); @@ -1313,7 +1313,7 @@ bool8 LoadChosenBattleElement(u8 caseId) { default: case MAP_BATTLE_SCENE_NORMAL: - LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tilemap, (void*)(BG_SCREEN_ADDR(26))); + LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tilemap, (void*)(BG_SCREEN_ADDR(26))); break; case MAP_BATTLE_SCENE_GYM: LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); @@ -1375,7 +1375,7 @@ bool8 LoadChosenBattleElement(u8 caseId) { default: case MAP_BATTLE_SCENE_NORMAL: - LoadCompressedPalette(gBattleTerrainTable[gBattleTerrain].palette, 0x20, 0x60); + LoadCompressedPalette(sBattleTerrainTable[gBattleTerrain].palette, 0x20, 0x60); break; case MAP_BATTLE_SCENE_GYM: LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, 0x20, 0x60); diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 2ec2e61dc0..668dd01b42 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -602,7 +602,7 @@ static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst) battleMon.abilityNum = GetMonData(&gEnemyParty[monId], MON_DATA_ABILITY_NUM); battleMon.otId = GetMonData(&gEnemyParty[monId], MON_DATA_OT_ID); GetMonData(&gEnemyParty[monId], MON_DATA_NICKNAME, nickname); - StringCopy10(battleMon.nickname, nickname); + StringCopy_Nickname(battleMon.nickname, nickname); GetMonData(&gEnemyParty[monId], MON_DATA_OT_NAME, battleMon.otName); src = (u8 *)&battleMon; for (size = 0; size < sizeof(battleMon); size++) diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 0fa156a437..14d806576a 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -489,7 +489,7 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst) battleMon.abilityNum = GetMonData(&gPlayerParty[monId], MON_DATA_ABILITY_NUM); battleMon.otId = GetMonData(&gPlayerParty[monId], MON_DATA_OT_ID); GetMonData(&gPlayerParty[monId], MON_DATA_NICKNAME, nickname); - StringCopy10(battleMon.nickname, nickname); + StringCopy_Nickname(battleMon.nickname, nickname); GetMonData(&gPlayerParty[monId], MON_DATA_OT_NAME, battleMon.otName); src = (u8 *)&battleMon; for (size = 0; size < sizeof(battleMon); size++) diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 8e1a8327a0..ead5a8768a 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -602,7 +602,7 @@ static u32 GetOpponentMonData(u8 monId, u8 *dst) battleMon.abilityNum = GetMonData(&gEnemyParty[monId], MON_DATA_ABILITY_NUM); battleMon.otId = GetMonData(&gEnemyParty[monId], MON_DATA_OT_ID); GetMonData(&gEnemyParty[monId], MON_DATA_NICKNAME, nickname); - StringCopy10(battleMon.nickname, nickname); + StringCopy_Nickname(battleMon.nickname, nickname); GetMonData(&gEnemyParty[monId], MON_DATA_OT_NAME, battleMon.otName); src = (u8 *)&battleMon; for (size = 0; size < sizeof(battleMon); size++) @@ -1523,7 +1523,7 @@ static void OpponentHandlePrintString(void) BufferStringBattle(*stringId); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; - BattleArena_DeductMindPoints(gActiveBattler, *stringId); + BattleArena_DeductSkillPoints(gActiveBattler, *stringId); } static void OpponentHandlePrintSelectionString(void) diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index ff5591e55b..5b69030dfc 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -1647,7 +1647,7 @@ static u32 CopyPlayerMonData(u8 monId, u8 *dst) battleMon.abilityNum = GetMonData(&gPlayerParty[monId], MON_DATA_ABILITY_NUM); battleMon.otId = GetMonData(&gPlayerParty[monId], MON_DATA_OT_ID); GetMonData(&gPlayerParty[monId], MON_DATA_NICKNAME, nickname); - StringCopy10(battleMon.nickname, nickname); + StringCopy_Nickname(battleMon.nickname, nickname); GetMonData(&gPlayerParty[monId], MON_DATA_OT_NAME, battleMon.otName); src = (u8 *)&battleMon; for (size = 0; size < sizeof(battleMon); size++) @@ -2551,7 +2551,7 @@ static void PlayerHandlePrintString(void) BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter2; BattleTv_SetDataBasedOnString(*stringId); - BattleArena_DeductMindPoints(gActiveBattler, *stringId); + BattleArena_DeductSkillPoints(gActiveBattler, *stringId); } static void PlayerHandlePrintSelectionString(void) diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 2c90982713..c2ff08a239 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -673,7 +673,7 @@ static u32 CopyPlayerPartnerMonData(u8 monId, u8 *dst) battleMon.abilityNum = GetMonData(&gPlayerParty[monId], MON_DATA_ABILITY_NUM); battleMon.otId = GetMonData(&gPlayerParty[monId], MON_DATA_OT_ID); GetMonData(&gPlayerParty[monId], MON_DATA_NICKNAME, nickname); - StringCopy10(battleMon.nickname, nickname); + StringCopy_Nickname(battleMon.nickname, nickname); GetMonData(&gPlayerParty[monId], MON_DATA_OT_NAME, battleMon.otName); src = (u8 *)&battleMon; for (size = 0; size < sizeof(battleMon); size++) diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index 54156da35b..4a35ef723d 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -585,7 +585,7 @@ static u32 CopyRecordedOpponentMonData(u8 monId, u8 *dst) battleMon.abilityNum = GetMonData(&gEnemyParty[monId], MON_DATA_ABILITY_NUM); battleMon.otId = GetMonData(&gEnemyParty[monId], MON_DATA_OT_ID); GetMonData(&gEnemyParty[monId], MON_DATA_NICKNAME, nickname); - StringCopy10(battleMon.nickname, nickname); + StringCopy_Nickname(battleMon.nickname, nickname); GetMonData(&gEnemyParty[monId], MON_DATA_OT_NAME, battleMon.otName); src = (u8 *)&battleMon; for (size = 0; size < sizeof(battleMon); size++) diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index a28e87a423..e25482fb57 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -564,7 +564,7 @@ static u32 CopyRecordedPlayerMonData(u8 monId, u8 *dst) battleMon.abilityNum = GetMonData(&gPlayerParty[monId], MON_DATA_ABILITY_NUM); battleMon.otId = GetMonData(&gPlayerParty[monId], MON_DATA_OT_ID); GetMonData(&gPlayerParty[monId], MON_DATA_NICKNAME, nickname); - StringCopy10(battleMon.nickname, nickname); + StringCopy_Nickname(battleMon.nickname, nickname); GetMonData(&gPlayerParty[monId], MON_DATA_OT_NAME, battleMon.otName); src = (u8 *)&battleMon; for (size = 0; size < sizeof(battleMon); size++) diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index f7c3312577..c4c0c11a9e 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -491,7 +491,7 @@ static u32 CopyWallyMonData(u8 monId, u8 *dst) battleMon.abilityNum = GetMonData(&gPlayerParty[monId], MON_DATA_ABILITY_NUM); battleMon.otId = GetMonData(&gPlayerParty[monId], MON_DATA_OT_ID); GetMonData(&gPlayerParty[monId], MON_DATA_NICKNAME, nickname); - StringCopy10(battleMon.nickname, nickname); + StringCopy_Nickname(battleMon.nickname, nickname); GetMonData(&gPlayerParty[monId], MON_DATA_OT_NAME, battleMon.otName); src = (u8 *)&battleMon; for (size = 0; size < sizeof(battleMon); size++) diff --git a/src/battle_dome.c b/src/battle_dome.c index 1b067924ff..aadd85afd6 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -34,7 +34,6 @@ #include "constants/battle_dome.h" #include "constants/frontier_util.h" #include "constants/moves.h" -#include "constants/pokemon.h" #include "constants/trainers.h" #include "constants/abilities.h" #include "constants/songs.h" @@ -2099,7 +2098,7 @@ static void InitDomeChallenge(void) if (!(gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode])) gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] = 0; - SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); + SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, WARP_ID_NONE); gTrainerBattleOpponent_A = 0; } @@ -5305,10 +5304,10 @@ static void Task_ShowTourneyTree(u8 taskId) break; case 2: sTilemapBuffer = AllocZeroed(BG_SCREEN_SIZE); - LZDecompressWram(gDomeTourneyLineMask_Tilemap, sTilemapBuffer); + LZDecompressWram(gDomeTourneyTree_Tilemap, sTilemapBuffer); SetBgTilemapBuffer(1, sTilemapBuffer); CopyBgTilemapBufferToVram(1); - DecompressAndLoadBgGfxUsingHeap(1, gDomeTourneyBg_Gfx, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(1, gDomeTourneyTree_Gfx, 0x2000, 0, 0); DecompressAndLoadBgGfxUsingHeap(2, gDomeTourneyLine_Gfx, 0x2000, 0, 0); DecompressAndLoadBgGfxUsingHeap(2, gDomeTourneyLineDown_Tilemap, 0x2000, 0, 1); DecompressAndLoadBgGfxUsingHeap(3, gDomeTourneyLineUp_Tilemap, 0x2000, 0, 1); diff --git a/src/battle_factory.c b/src/battle_factory.c index 8f1001e9ca..d88ed37f95 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -217,7 +217,7 @@ static void InitFactoryChallenge(void) for (i = 0; i < FRONTIER_PARTY_SIZE; i++) gFrontierTempParty[i] = 0xFFFF; - SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); + SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, WARP_ID_NONE); gTrainerBattleOpponent_A = 0; } @@ -720,17 +720,25 @@ static void RestorePlayerPartyHeldItems(void) } } -u8 GetFactoryMonFixedIV(u8 arg0, u8 arg1) +// Get the IV to use for the opponent's pokémon. +// The IVs get higher for each subsequent challenge and for +// the last trainer in each challenge. Noland is an exception +// to this, as he uses the IVs that would be used by the regular +// trainers 2 challenges ahead of the current one. +// Due to a mistake in FillFactoryFrontierTrainerParty, the +// challenge number used to determine the IVs for regular trainers +// is Battle Tower's instead of Battle Factory's. +u8 GetFactoryMonFixedIV(u8 challengeNum, bool8 isLastBattle) { - u8 a1; - u8 a2 = (arg1 != 0) ? 1 : 0; + u8 ivSet; + bool8 useHigherIV = isLastBattle ? TRUE : FALSE; - if (arg0 > 8) - a1 = 7; + if (challengeNum > 8) + ivSet = 7; else - a1 = arg0; + ivSet = challengeNum; - return sFixedIVTable[a1][a2]; + return sFixedIVTable[ivSet][useHigherIV]; } void FillFactoryBrainParty(void) @@ -746,7 +754,7 @@ void FillFactoryBrainParty(void) u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); u8 challengeNum = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] / 7; - fixedIV = GetFactoryMonFixedIV(challengeNum + 2, 0); + fixedIV = GetFactoryMonFixedIV(challengeNum + 2, FALSE); monLevel = SetFacilityPtrsGetLevel(); i = 0; otId = T1_READ_32(gSaveBlock2Ptr->playerTrainerId); diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index 247b8712fe..787dc47406 100644 --- a/src/battle_factory_screen.c +++ b/src/battle_factory_screen.c @@ -2509,7 +2509,7 @@ static void Swap_Task_HandleYesNo(u8 taskId) } } -static void Swap_HandleQuitSwappingResposne(u8 taskId) +static void Swap_HandleQuitSwappingResponse(u8 taskId) { if (gTasks[taskId].tSaidYes == TRUE) { @@ -2533,8 +2533,8 @@ static void Swap_AskQuitSwapping(u8 taskId) Swap_PrintOnInfoWindow(gText_QuitSwapping); sFactorySwapScreen->monSwapped = FALSE; gTasks[taskId].tState = STATE_YESNO_SHOW; - gTasks[taskId].tFollowUpTaskPtrHi = (u32)(Swap_HandleQuitSwappingResposne) >> 16; - gTasks[taskId].tFollowUpTaskPtrLo = (u32)(Swap_HandleQuitSwappingResposne); + gTasks[taskId].tFollowUpTaskPtrHi = (u32)(Swap_HandleQuitSwappingResponse) >> 16; + gTasks[taskId].tFollowUpTaskPtrLo = (u32)(Swap_HandleQuitSwappingResponse); gTasks[taskId].func = Swap_Task_HandleYesNo; } } diff --git a/src/battle_interface.c b/src/battle_interface.c index 96bab7f90b..26209fe2d7 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1893,7 +1893,7 @@ static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon) StringCopy(gDisplayedStringBattle, gText_HealthboxNickname); GetMonData(mon, MON_DATA_NICKNAME, nickname); - StringGetEnd10(nickname); + StringGet_Nickname(nickname); ptr = StringAppend(gDisplayedStringBattle, nickname); gender = GetMonGender(mon); diff --git a/src/battle_message.c b/src/battle_message.c index b88eedfb37..9d1b88ba7f 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -514,377 +514,377 @@ static const u8 sText_Trainer2WinText[]; static const u8 sText_TwoInGameTrainersDefeated[]; static const u8 sText_Trainer2LoseText[]; -const u8 * const gBattleStringsTable[BATTLESTRINGS_COUNT] = +const u8 * const gBattleStringsTable[BATTLESTRINGS_COUNT - BATTLESTRINGS_TABLE_START] = { - [STRINGID_TRAINER1LOSETEXT - 12] = sText_Trainer1LoseText, - [STRINGID_PKMNGAINEDEXP - 12] = sText_PkmnGainedEXP, - [STRINGID_PKMNGREWTOLV - 12] = sText_PkmnGrewToLv, - [STRINGID_PKMNLEARNEDMOVE - 12] = sText_PkmnLearnedMove, - [STRINGID_TRYTOLEARNMOVE1 - 12] = sText_TryToLearnMove1, - [STRINGID_TRYTOLEARNMOVE2 - 12] = sText_TryToLearnMove2, - [STRINGID_TRYTOLEARNMOVE3 - 12] = sText_TryToLearnMove3, - [STRINGID_PKMNFORGOTMOVE - 12] = sText_PkmnForgotMove, - [STRINGID_STOPLEARNINGMOVE - 12] = sText_StopLearningMove, - [STRINGID_DIDNOTLEARNMOVE - 12] = sText_DidNotLearnMove, - [STRINGID_PKMNLEARNEDMOVE2 - 12] = sText_PkmnLearnedMove2, - [STRINGID_ATTACKMISSED - 12] = sText_AttackMissed, - [STRINGID_PKMNPROTECTEDITSELF - 12] = sText_PkmnProtectedItself, - [STRINGID_STATSWONTINCREASE2 - 12] = sText_StatsWontIncrease2, - [STRINGID_AVOIDEDDAMAGE - 12] = sText_AvoidedDamage, - [STRINGID_ITDOESNTAFFECT - 12] = sText_ItDoesntAffect, - [STRINGID_ATTACKERFAINTED - 12] = sText_AttackerFainted, - [STRINGID_TARGETFAINTED - 12] = sText_TargetFainted, - [STRINGID_PLAYERGOTMONEY - 12] = sText_PlayerGotMoney, - [STRINGID_PLAYERWHITEOUT - 12] = sText_PlayerWhiteout, - [STRINGID_PLAYERWHITEOUT2 - 12] = sText_PlayerWhiteout2, - [STRINGID_PREVENTSESCAPE - 12] = sText_PreventsEscape, - [STRINGID_HITXTIMES - 12] = sText_HitXTimes, - [STRINGID_PKMNFELLASLEEP - 12] = sText_PkmnFellAsleep, - [STRINGID_PKMNMADESLEEP - 12] = sText_PkmnMadeSleep, - [STRINGID_PKMNALREADYASLEEP - 12] = sText_PkmnAlreadyAsleep, - [STRINGID_PKMNALREADYASLEEP2 - 12] = sText_PkmnAlreadyAsleep2, - [STRINGID_PKMNWASNTAFFECTED - 12] = sText_PkmnWasntAffected, - [STRINGID_PKMNWASPOISONED - 12] = sText_PkmnWasPoisoned, - [STRINGID_PKMNPOISONEDBY - 12] = sText_PkmnPoisonedBy, - [STRINGID_PKMNHURTBYPOISON - 12] = sText_PkmnHurtByPoison, - [STRINGID_PKMNALREADYPOISONED - 12] = sText_PkmnAlreadyPoisoned, - [STRINGID_PKMNBADLYPOISONED - 12] = sText_PkmnBadlyPoisoned, - [STRINGID_PKMNENERGYDRAINED - 12] = sText_PkmnEnergyDrained, - [STRINGID_PKMNWASBURNED - 12] = sText_PkmnWasBurned, - [STRINGID_PKMNBURNEDBY - 12] = sText_PkmnBurnedBy, - [STRINGID_PKMNHURTBYBURN - 12] = sText_PkmnHurtByBurn, - [STRINGID_PKMNWASFROZEN - 12] = sText_PkmnWasFrozen, - [STRINGID_PKMNFROZENBY - 12] = sText_PkmnFrozenBy, - [STRINGID_PKMNISFROZEN - 12] = sText_PkmnIsFrozen, - [STRINGID_PKMNWASDEFROSTED - 12] = sText_PkmnWasDefrosted, - [STRINGID_PKMNWASDEFROSTED2 - 12] = sText_PkmnWasDefrosted2, - [STRINGID_PKMNWASDEFROSTEDBY - 12] = sText_PkmnWasDefrostedBy, - [STRINGID_PKMNWASPARALYZED - 12] = sText_PkmnWasParalyzed, - [STRINGID_PKMNWASPARALYZEDBY - 12] = sText_PkmnWasParalyzedBy, - [STRINGID_PKMNISPARALYZED - 12] = sText_PkmnIsParalyzed, - [STRINGID_PKMNISALREADYPARALYZED - 12] = sText_PkmnIsAlreadyParalyzed, - [STRINGID_PKMNHEALEDPARALYSIS - 12] = sText_PkmnHealedParalysis, - [STRINGID_PKMNDREAMEATEN - 12] = sText_PkmnDreamEaten, - [STRINGID_STATSWONTINCREASE - 12] = sText_StatsWontIncrease, - [STRINGID_STATSWONTDECREASE - 12] = sText_StatsWontDecrease, - [STRINGID_TEAMSTOPPEDWORKING - 12] = sText_TeamStoppedWorking, - [STRINGID_FOESTOPPEDWORKING - 12] = sText_FoeStoppedWorking, - [STRINGID_PKMNISCONFUSED - 12] = sText_PkmnIsConfused, - [STRINGID_PKMNHEALEDCONFUSION - 12] = sText_PkmnHealedConfusion, - [STRINGID_PKMNWASCONFUSED - 12] = sText_PkmnWasConfused, - [STRINGID_PKMNALREADYCONFUSED - 12] = sText_PkmnAlreadyConfused, - [STRINGID_PKMNFELLINLOVE - 12] = sText_PkmnFellInLove, - [STRINGID_PKMNINLOVE - 12] = sText_PkmnInLove, - [STRINGID_PKMNIMMOBILIZEDBYLOVE - 12] = sText_PkmnImmobilizedByLove, - [STRINGID_PKMNBLOWNAWAY - 12] = sText_PkmnBlownAway, - [STRINGID_PKMNCHANGEDTYPE - 12] = sText_PkmnChangedType, - [STRINGID_PKMNFLINCHED - 12] = sText_PkmnFlinched, - [STRINGID_PKMNREGAINEDHEALTH - 12] = sText_PkmnRegainedHealth, - [STRINGID_PKMNHPFULL - 12] = sText_PkmnHPFull, - [STRINGID_PKMNRAISEDSPDEF - 12] = sText_PkmnRaisedSpDef, - [STRINGID_PKMNRAISEDDEF - 12] = sText_PkmnRaisedDef, - [STRINGID_PKMNCOVEREDBYVEIL - 12] = sText_PkmnCoveredByVeil, - [STRINGID_PKMNUSEDSAFEGUARD - 12] = sText_PkmnUsedSafeguard, - [STRINGID_PKMNSAFEGUARDEXPIRED - 12] = sText_PkmnSafeguardExpired, - [STRINGID_PKMNWENTTOSLEEP - 12] = sText_PkmnWentToSleep, - [STRINGID_PKMNSLEPTHEALTHY - 12] = sText_PkmnSleptHealthy, - [STRINGID_PKMNWHIPPEDWHIRLWIND - 12] = sText_PkmnWhippedWhirlwind, - [STRINGID_PKMNTOOKSUNLIGHT - 12] = sText_PkmnTookSunlight, - [STRINGID_PKMNLOWEREDHEAD - 12] = sText_PkmnLoweredHead, - [STRINGID_PKMNISGLOWING - 12] = sText_PkmnIsGlowing, - [STRINGID_PKMNFLEWHIGH - 12] = sText_PkmnFlewHigh, - [STRINGID_PKMNDUGHOLE - 12] = sText_PkmnDugHole, - [STRINGID_PKMNSQUEEZEDBYBIND - 12] = sText_PkmnSqueezedByBind, - [STRINGID_PKMNTRAPPEDINVORTEX - 12] = sText_PkmnTrappedInVortex, - [STRINGID_PKMNWRAPPEDBY - 12] = sText_PkmnWrappedBy, - [STRINGID_PKMNCLAMPED - 12] = sText_PkmnClamped, - [STRINGID_PKMNHURTBY - 12] = sText_PkmnHurtBy, - [STRINGID_PKMNFREEDFROM - 12] = sText_PkmnFreedFrom, - [STRINGID_PKMNCRASHED - 12] = sText_PkmnCrashed, - [STRINGID_PKMNSHROUDEDINMIST - 12] = gText_PkmnShroudedInMist, - [STRINGID_PKMNPROTECTEDBYMIST - 12] = sText_PkmnProtectedByMist, - [STRINGID_PKMNGETTINGPUMPED - 12] = gText_PkmnGettingPumped, - [STRINGID_PKMNHITWITHRECOIL - 12] = sText_PkmnHitWithRecoil, - [STRINGID_PKMNPROTECTEDITSELF2 - 12] = sText_PkmnProtectedItself2, - [STRINGID_PKMNBUFFETEDBYSANDSTORM - 12] = sText_PkmnBuffetedBySandstorm, - [STRINGID_PKMNPELTEDBYHAIL - 12] = sText_PkmnPeltedByHail, - [STRINGID_PKMNSEEDED - 12] = sText_PkmnSeeded, - [STRINGID_PKMNEVADEDATTACK - 12] = sText_PkmnEvadedAttack, - [STRINGID_PKMNSAPPEDBYLEECHSEED - 12] = sText_PkmnSappedByLeechSeed, - [STRINGID_PKMNFASTASLEEP - 12] = sText_PkmnFastAsleep, - [STRINGID_PKMNWOKEUP - 12] = sText_PkmnWokeUp, - [STRINGID_PKMNUPROARKEPTAWAKE - 12] = sText_PkmnUproarKeptAwake, - [STRINGID_PKMNWOKEUPINUPROAR - 12] = sText_PkmnWokeUpInUproar, - [STRINGID_PKMNCAUSEDUPROAR - 12] = sText_PkmnCausedUproar, - [STRINGID_PKMNMAKINGUPROAR - 12] = sText_PkmnMakingUproar, - [STRINGID_PKMNCALMEDDOWN - 12] = sText_PkmnCalmedDown, - [STRINGID_PKMNCANTSLEEPINUPROAR - 12] = sText_PkmnCantSleepInUproar, - [STRINGID_PKMNSTOCKPILED - 12] = sText_PkmnStockpiled, - [STRINGID_PKMNCANTSTOCKPILE - 12] = sText_PkmnCantStockpile, - [STRINGID_PKMNCANTSLEEPINUPROAR2 - 12] = sText_PkmnCantSleepInUproar2, - [STRINGID_UPROARKEPTPKMNAWAKE - 12] = sText_UproarKeptPkmnAwake, - [STRINGID_PKMNSTAYEDAWAKEUSING - 12] = sText_PkmnStayedAwakeUsing, - [STRINGID_PKMNSTORINGENERGY - 12] = sText_PkmnStoringEnergy, - [STRINGID_PKMNUNLEASHEDENERGY - 12] = sText_PkmnUnleashedEnergy, - [STRINGID_PKMNFATIGUECONFUSION - 12] = sText_PkmnFatigueConfusion, - [STRINGID_PLAYERPICKEDUPMONEY - 12] = sText_PlayerPickedUpMoney, - [STRINGID_PKMNUNAFFECTED - 12] = sText_PkmnUnaffected, - [STRINGID_PKMNTRANSFORMEDINTO - 12] = sText_PkmnTransformedInto, - [STRINGID_PKMNMADESUBSTITUTE - 12] = sText_PkmnMadeSubstitute, - [STRINGID_PKMNHASSUBSTITUTE - 12] = sText_PkmnHasSubstitute, - [STRINGID_SUBSTITUTEDAMAGED - 12] = sText_SubstituteDamaged, - [STRINGID_PKMNSUBSTITUTEFADED - 12] = sText_PkmnSubstituteFaded, - [STRINGID_PKMNMUSTRECHARGE - 12] = sText_PkmnMustRecharge, - [STRINGID_PKMNRAGEBUILDING - 12] = sText_PkmnRageBuilding, - [STRINGID_PKMNMOVEWASDISABLED - 12] = sText_PkmnMoveWasDisabled, - [STRINGID_PKMNMOVEISDISABLED - 12] = sText_PkmnMoveIsDisabled, - [STRINGID_PKMNMOVEDISABLEDNOMORE - 12] = sText_PkmnMoveDisabledNoMore, - [STRINGID_PKMNGOTENCORE - 12] = sText_PkmnGotEncore, - [STRINGID_PKMNENCOREENDED - 12] = sText_PkmnEncoreEnded, - [STRINGID_PKMNTOOKAIM - 12] = sText_PkmnTookAim, - [STRINGID_PKMNSKETCHEDMOVE - 12] = sText_PkmnSketchedMove, - [STRINGID_PKMNTRYINGTOTAKEFOE - 12] = sText_PkmnTryingToTakeFoe, - [STRINGID_PKMNTOOKFOE - 12] = sText_PkmnTookFoe, - [STRINGID_PKMNREDUCEDPP - 12] = sText_PkmnReducedPP, - [STRINGID_PKMNSTOLEITEM - 12] = sText_PkmnStoleItem, - [STRINGID_TARGETCANTESCAPENOW - 12] = sText_TargetCantEscapeNow, - [STRINGID_PKMNFELLINTONIGHTMARE - 12] = sText_PkmnFellIntoNightmare, - [STRINGID_PKMNLOCKEDINNIGHTMARE - 12] = sText_PkmnLockedInNightmare, - [STRINGID_PKMNLAIDCURSE - 12] = sText_PkmnLaidCurse, - [STRINGID_PKMNAFFLICTEDBYCURSE - 12] = sText_PkmnAfflictedByCurse, - [STRINGID_SPIKESSCATTERED - 12] = sText_SpikesScattered, - [STRINGID_PKMNHURTBYSPIKES - 12] = sText_PkmnHurtBySpikes, - [STRINGID_PKMNIDENTIFIED - 12] = sText_PkmnIdentified, - [STRINGID_PKMNPERISHCOUNTFELL - 12] = sText_PkmnPerishCountFell, - [STRINGID_PKMNBRACEDITSELF - 12] = sText_PkmnBracedItself, - [STRINGID_PKMNENDUREDHIT - 12] = sText_PkmnEnduredHit, - [STRINGID_MAGNITUDESTRENGTH - 12] = sText_MagnitudeStrength, - [STRINGID_PKMNCUTHPMAXEDATTACK - 12] = sText_PkmnCutHPMaxedAttack, - [STRINGID_PKMNCOPIEDSTATCHANGES - 12] = sText_PkmnCopiedStatChanges, - [STRINGID_PKMNGOTFREE - 12] = sText_PkmnGotFree, - [STRINGID_PKMNSHEDLEECHSEED - 12] = sText_PkmnShedLeechSeed, - [STRINGID_PKMNBLEWAWAYSPIKES - 12] = sText_PkmnBlewAwaySpikes, - [STRINGID_PKMNFLEDFROMBATTLE - 12] = sText_PkmnFledFromBattle, - [STRINGID_PKMNFORESAWATTACK - 12] = sText_PkmnForesawAttack, - [STRINGID_PKMNTOOKATTACK - 12] = sText_PkmnTookAttack, - [STRINGID_PKMNATTACK - 12] = sText_PkmnAttack, - [STRINGID_PKMNCENTERATTENTION - 12] = sText_PkmnCenterAttention, - [STRINGID_PKMNCHARGINGPOWER - 12] = sText_PkmnChargingPower, - [STRINGID_NATUREPOWERTURNEDINTO - 12] = sText_NaturePowerTurnedInto, - [STRINGID_PKMNSTATUSNORMAL - 12] = sText_PkmnStatusNormal, - [STRINGID_PKMNHASNOMOVESLEFT - 12] = sText_PkmnHasNoMovesLeft, - [STRINGID_PKMNSUBJECTEDTOTORMENT - 12] = sText_PkmnSubjectedToTorment, - [STRINGID_PKMNCANTUSEMOVETORMENT - 12] = sText_PkmnCantUseMoveTorment, - [STRINGID_PKMNTIGHTENINGFOCUS - 12] = sText_PkmnTighteningFocus, - [STRINGID_PKMNFELLFORTAUNT - 12] = sText_PkmnFellForTaunt, - [STRINGID_PKMNCANTUSEMOVETAUNT - 12] = sText_PkmnCantUseMoveTaunt, - [STRINGID_PKMNREADYTOHELP - 12] = sText_PkmnReadyToHelp, - [STRINGID_PKMNSWITCHEDITEMS - 12] = sText_PkmnSwitchedItems, - [STRINGID_PKMNCOPIEDFOE - 12] = sText_PkmnCopiedFoe, - [STRINGID_PKMNMADEWISH - 12] = sText_PkmnMadeWish, - [STRINGID_PKMNWISHCAMETRUE - 12] = sText_PkmnWishCameTrue, - [STRINGID_PKMNPLANTEDROOTS - 12] = sText_PkmnPlantedRoots, - [STRINGID_PKMNABSORBEDNUTRIENTS - 12] = sText_PkmnAbsorbedNutrients, - [STRINGID_PKMNANCHOREDITSELF - 12] = sText_PkmnAnchoredItself, - [STRINGID_PKMNWASMADEDROWSY - 12] = sText_PkmnWasMadeDrowsy, - [STRINGID_PKMNKNOCKEDOFF - 12] = sText_PkmnKnockedOff, - [STRINGID_PKMNSWAPPEDABILITIES - 12] = sText_PkmnSwappedAbilities, - [STRINGID_PKMNSEALEDOPPONENTMOVE - 12] = sText_PkmnSealedOpponentMove, - [STRINGID_PKMNCANTUSEMOVESEALED - 12] = sText_PkmnCantUseMoveSealed, - [STRINGID_PKMNWANTSGRUDGE - 12] = sText_PkmnWantsGrudge, - [STRINGID_PKMNLOSTPPGRUDGE - 12] = sText_PkmnLostPPGrudge, - [STRINGID_PKMNSHROUDEDITSELF - 12] = sText_PkmnShroudedItself, - [STRINGID_PKMNMOVEBOUNCED - 12] = sText_PkmnMoveBounced, - [STRINGID_PKMNWAITSFORTARGET - 12] = sText_PkmnWaitsForTarget, - [STRINGID_PKMNSNATCHEDMOVE - 12] = sText_PkmnSnatchedMove, - [STRINGID_PKMNMADEITRAIN - 12] = sText_PkmnMadeItRain, - [STRINGID_PKMNRAISEDSPEED - 12] = sText_PkmnRaisedSpeed, - [STRINGID_PKMNPROTECTEDBY - 12] = sText_PkmnProtectedBy, - [STRINGID_PKMNPREVENTSUSAGE - 12] = sText_PkmnPreventsUsage, - [STRINGID_PKMNRESTOREDHPUSING - 12] = sText_PkmnRestoredHPUsing, - [STRINGID_PKMNCHANGEDTYPEWITH - 12] = sText_PkmnChangedTypeWith, - [STRINGID_PKMNPREVENTSPARALYSISWITH - 12] = sText_PkmnPreventsParalysisWith, - [STRINGID_PKMNPREVENTSROMANCEWITH - 12] = sText_PkmnPreventsRomanceWith, - [STRINGID_PKMNPREVENTSPOISONINGWITH - 12] = sText_PkmnPreventsPoisoningWith, - [STRINGID_PKMNPREVENTSCONFUSIONWITH - 12] = sText_PkmnPreventsConfusionWith, - [STRINGID_PKMNRAISEDFIREPOWERWITH - 12] = sText_PkmnRaisedFirePowerWith, - [STRINGID_PKMNANCHORSITSELFWITH - 12] = sText_PkmnAnchorsItselfWith, - [STRINGID_PKMNCUTSATTACKWITH - 12] = sText_PkmnCutsAttackWith, - [STRINGID_PKMNPREVENTSSTATLOSSWITH - 12] = sText_PkmnPreventsStatLossWith, - [STRINGID_PKMNHURTSWITH - 12] = sText_PkmnHurtsWith, - [STRINGID_PKMNTRACED - 12] = sText_PkmnTraced, - [STRINGID_STATSHARPLY - 12] = sText_StatSharply, - [STRINGID_STATROSE - 12] = gText_StatRose, - [STRINGID_STATHARSHLY - 12] = sText_StatHarshly, - [STRINGID_STATFELL - 12] = sText_StatFell, - [STRINGID_ATTACKERSSTATROSE - 12] = sText_AttackersStatRose, - [STRINGID_DEFENDERSSTATROSE - 12] = gText_DefendersStatRose, - [STRINGID_ATTACKERSSTATFELL - 12] = sText_AttackersStatFell, - [STRINGID_DEFENDERSSTATFELL - 12] = sText_DefendersStatFell, - [STRINGID_CRITICALHIT - 12] = sText_CriticalHit, - [STRINGID_ONEHITKO - 12] = sText_OneHitKO, - [STRINGID_123POOF - 12] = sText_123Poof, - [STRINGID_ANDELLIPSIS - 12] = sText_AndEllipsis, - [STRINGID_NOTVERYEFFECTIVE - 12] = sText_NotVeryEffective, - [STRINGID_SUPEREFFECTIVE - 12] = sText_SuperEffective, - [STRINGID_GOTAWAYSAFELY - 12] = sText_GotAwaySafely, - [STRINGID_WILDPKMNFLED - 12] = sText_WildPkmnFled, - [STRINGID_NORUNNINGFROMTRAINERS - 12] = sText_NoRunningFromTrainers, - [STRINGID_CANTESCAPE - 12] = sText_CantEscape, - [STRINGID_DONTLEAVEBIRCH - 12] = sText_DontLeaveBirch, - [STRINGID_BUTNOTHINGHAPPENED - 12] = sText_ButNothingHappened, - [STRINGID_BUTITFAILED - 12] = sText_ButItFailed, - [STRINGID_ITHURTCONFUSION - 12] = sText_ItHurtConfusion, - [STRINGID_MIRRORMOVEFAILED - 12] = sText_MirrorMoveFailed, - [STRINGID_STARTEDTORAIN - 12] = sText_StartedToRain, - [STRINGID_DOWNPOURSTARTED - 12] = sText_DownpourStarted, - [STRINGID_RAINCONTINUES - 12] = sText_RainContinues, - [STRINGID_DOWNPOURCONTINUES - 12] = sText_DownpourContinues, - [STRINGID_RAINSTOPPED - 12] = sText_RainStopped, - [STRINGID_SANDSTORMBREWED - 12] = sText_SandstormBrewed, - [STRINGID_SANDSTORMRAGES - 12] = sText_SandstormRages, - [STRINGID_SANDSTORMSUBSIDED - 12] = sText_SandstormSubsided, - [STRINGID_SUNLIGHTGOTBRIGHT - 12] = sText_SunlightGotBright, - [STRINGID_SUNLIGHTSTRONG - 12] = sText_SunlightStrong, - [STRINGID_SUNLIGHTFADED - 12] = sText_SunlightFaded, - [STRINGID_STARTEDHAIL - 12] = sText_StartedHail, - [STRINGID_HAILCONTINUES - 12] = sText_HailContinues, - [STRINGID_HAILSTOPPED - 12] = sText_HailStopped, - [STRINGID_FAILEDTOSPITUP - 12] = sText_FailedToSpitUp, - [STRINGID_FAILEDTOSWALLOW - 12] = sText_FailedToSwallow, - [STRINGID_WINDBECAMEHEATWAVE - 12] = sText_WindBecameHeatWave, - [STRINGID_STATCHANGESGONE - 12] = sText_StatChangesGone, - [STRINGID_COINSSCATTERED - 12] = sText_CoinsScattered, - [STRINGID_TOOWEAKFORSUBSTITUTE - 12] = sText_TooWeakForSubstitute, - [STRINGID_SHAREDPAIN - 12] = sText_SharedPain, - [STRINGID_BELLCHIMED - 12] = sText_BellChimed, - [STRINGID_FAINTINTHREE - 12] = sText_FaintInThree, - [STRINGID_NOPPLEFT - 12] = sText_NoPPLeft, - [STRINGID_BUTNOPPLEFT - 12] = sText_ButNoPPLeft, - [STRINGID_PLAYERUSEDITEM - 12] = sText_PlayerUsedItem, - [STRINGID_WALLYUSEDITEM - 12] = sText_WallyUsedItem, - [STRINGID_TRAINERBLOCKEDBALL - 12] = sText_TrainerBlockedBall, - [STRINGID_DONTBEATHIEF - 12] = sText_DontBeAThief, - [STRINGID_ITDODGEDBALL - 12] = sText_ItDodgedBall, - [STRINGID_YOUMISSEDPKMN - 12] = sText_YouMissedPkmn, - [STRINGID_PKMNBROKEFREE - 12] = sText_PkmnBrokeFree, - [STRINGID_ITAPPEAREDCAUGHT - 12] = sText_ItAppearedCaught, - [STRINGID_AARGHALMOSTHADIT - 12] = sText_AarghAlmostHadIt, - [STRINGID_SHOOTSOCLOSE - 12] = sText_ShootSoClose, - [STRINGID_GOTCHAPKMNCAUGHT - 12] = sText_GotchaPkmnCaught, - [STRINGID_GOTCHAPKMNCAUGHT2 - 12] = sText_GotchaPkmnCaught2, - [STRINGID_GIVENICKNAMECAPTURED - 12] = sText_GiveNicknameCaptured, - [STRINGID_PKMNSENTTOPC - 12] = sText_PkmnSentToPC, - [STRINGID_PKMNDATAADDEDTODEX - 12] = sText_PkmnDataAddedToDex, - [STRINGID_ITISRAINING - 12] = sText_ItIsRaining, - [STRINGID_SANDSTORMISRAGING - 12] = sText_SandstormIsRaging, - [STRINGID_CANTESCAPE2 - 12] = sText_CantEscape2, - [STRINGID_PKMNIGNORESASLEEP - 12] = sText_PkmnIgnoresAsleep, - [STRINGID_PKMNIGNOREDORDERS - 12] = sText_PkmnIgnoredOrders, - [STRINGID_PKMNBEGANTONAP - 12] = sText_PkmnBeganToNap, - [STRINGID_PKMNLOAFING - 12] = sText_PkmnLoafing, - [STRINGID_PKMNWONTOBEY - 12] = sText_PkmnWontObey, - [STRINGID_PKMNTURNEDAWAY - 12] = sText_PkmnTurnedAway, - [STRINGID_PKMNPRETENDNOTNOTICE - 12] = sText_PkmnPretendNotNotice, - [STRINGID_ENEMYABOUTTOSWITCHPKMN - 12] = sText_EnemyAboutToSwitchPkmn, - [STRINGID_CREPTCLOSER - 12] = sText_CreptCloser, - [STRINGID_CANTGETCLOSER - 12] = sText_CantGetCloser, - [STRINGID_PKMNWATCHINGCAREFULLY - 12] = sText_PkmnWatchingCarefully, - [STRINGID_PKMNCURIOUSABOUTX - 12] = sText_PkmnCuriousAboutX, - [STRINGID_PKMNENTHRALLEDBYX - 12] = sText_PkmnEnthralledByX, - [STRINGID_PKMNIGNOREDX - 12] = sText_PkmnIgnoredX, - [STRINGID_THREWPOKEBLOCKATPKMN - 12] = sText_ThrewPokeblockAtPkmn, - [STRINGID_OUTOFSAFARIBALLS - 12] = sText_OutOfSafariBalls, - [STRINGID_PKMNSITEMCUREDPARALYSIS - 12] = sText_PkmnsItemCuredParalysis, - [STRINGID_PKMNSITEMCUREDPOISON - 12] = sText_PkmnsItemCuredPoison, - [STRINGID_PKMNSITEMHEALEDBURN - 12] = sText_PkmnsItemHealedBurn, - [STRINGID_PKMNSITEMDEFROSTEDIT - 12] = sText_PkmnsItemDefrostedIt, - [STRINGID_PKMNSITEMWOKEIT - 12] = sText_PkmnsItemWokeIt, - [STRINGID_PKMNSITEMSNAPPEDOUT - 12] = sText_PkmnsItemSnappedOut, - [STRINGID_PKMNSITEMCUREDPROBLEM - 12] = sText_PkmnsItemCuredProblem, - [STRINGID_PKMNSITEMRESTOREDHEALTH - 12] = sText_PkmnsItemRestoredHealth, - [STRINGID_PKMNSITEMRESTOREDPP - 12] = sText_PkmnsItemRestoredPP, - [STRINGID_PKMNSITEMRESTOREDSTATUS - 12] = sText_PkmnsItemRestoredStatus, - [STRINGID_PKMNSITEMRESTOREDHPALITTLE - 12] = sText_PkmnsItemRestoredHPALittle, - [STRINGID_ITEMALLOWSONLYYMOVE - 12] = sText_ItemAllowsOnlyYMove, - [STRINGID_PKMNHUNGONWITHX - 12] = sText_PkmnHungOnWithX, - [STRINGID_EMPTYSTRING3 - 12] = gText_EmptyString3, - [STRINGID_PKMNSXPREVENTSBURNS - 12] = sText_PkmnsXPreventsBurns, - [STRINGID_PKMNSXBLOCKSY - 12] = sText_PkmnsXBlocksY, - [STRINGID_PKMNSXRESTOREDHPALITTLE2 - 12] = sText_PkmnsXRestoredHPALittle2, - [STRINGID_PKMNSXWHIPPEDUPSANDSTORM - 12] = sText_PkmnsXWhippedUpSandstorm, - [STRINGID_PKMNSXPREVENTSYLOSS - 12] = sText_PkmnsXPreventsYLoss, - [STRINGID_PKMNSXINFATUATEDY - 12] = sText_PkmnsXInfatuatedY, - [STRINGID_PKMNSXMADEYINEFFECTIVE - 12] = sText_PkmnsXMadeYIneffective, - [STRINGID_PKMNSXCUREDYPROBLEM - 12] = sText_PkmnsXCuredYProblem, - [STRINGID_ITSUCKEDLIQUIDOOZE - 12] = sText_ItSuckedLiquidOoze, - [STRINGID_PKMNTRANSFORMED - 12] = sText_PkmnTransformed, - [STRINGID_ELECTRICITYWEAKENED - 12] = sText_ElectricityWeakened, - [STRINGID_FIREWEAKENED - 12] = sText_FireWeakened, - [STRINGID_PKMNHIDUNDERWATER - 12] = sText_PkmnHidUnderwater, - [STRINGID_PKMNSPRANGUP - 12] = sText_PkmnSprangUp, - [STRINGID_HMMOVESCANTBEFORGOTTEN - 12] = sText_HMMovesCantBeForgotten, - [STRINGID_XFOUNDONEY - 12] = sText_XFoundOneY, - [STRINGID_PLAYERDEFEATEDTRAINER1 - 12] = sText_PlayerDefeatedLinkTrainerTrainer1, - [STRINGID_SOOTHINGAROMA - 12] = sText_SoothingAroma, - [STRINGID_ITEMSCANTBEUSEDNOW - 12] = sText_ItemsCantBeUsedNow, - [STRINGID_FORXCOMMAYZ - 12] = sText_ForXCommaYZ, - [STRINGID_USINGITEMSTATOFPKMNROSE - 12] = sText_UsingItemTheStatOfPkmnRose, - [STRINGID_PKMNUSEDXTOGETPUMPED - 12] = sText_PkmnUsedXToGetPumped, - [STRINGID_PKMNSXMADEYUSELESS - 12] = sText_PkmnsXMadeYUseless, - [STRINGID_PKMNTRAPPEDBYSANDTOMB - 12] = sText_PkmnTrappedBySandTomb, - [STRINGID_EMPTYSTRING4 - 12] = sText_EmptyString4, - [STRINGID_ABOOSTED - 12] = sText_ABoosted, - [STRINGID_PKMNSXINTENSIFIEDSUN - 12] = sText_PkmnsXIntensifiedSun, - [STRINGID_PKMNMAKESGROUNDMISS - 12] = sText_PkmnMakesGroundMiss, - [STRINGID_YOUTHROWABALLNOWRIGHT - 12] = sText_YouThrowABallNowRight, - [STRINGID_PKMNSXTOOKATTACK - 12] = sText_PkmnsXTookAttack, - [STRINGID_PKMNCHOSEXASDESTINY - 12] = sText_PkmnChoseXAsDestiny, - [STRINGID_PKMNLOSTFOCUS - 12] = sText_PkmnLostFocus, - [STRINGID_USENEXTPKMN - 12] = sText_UseNextPkmn, - [STRINGID_PKMNFLEDUSINGITS - 12] = sText_PkmnFledUsingIts, - [STRINGID_PKMNFLEDUSING - 12] = sText_PkmnFledUsing, - [STRINGID_PKMNWASDRAGGEDOUT - 12] = sText_PkmnWasDraggedOut, - [STRINGID_PREVENTEDFROMWORKING - 12] = sText_PreventedFromWorking, - [STRINGID_PKMNSITEMNORMALIZEDSTATUS - 12] = sText_PkmnsItemNormalizedStatus, - [STRINGID_TRAINER1USEDITEM - 12] = sText_Trainer1UsedItem, - [STRINGID_BOXISFULL - 12] = sText_BoxIsFull, - [STRINGID_PKMNAVOIDEDATTACK - 12] = sText_PkmnAvoidedAttack, - [STRINGID_PKMNSXMADEITINEFFECTIVE - 12] = sText_PkmnsXMadeItIneffective, - [STRINGID_PKMNSXPREVENTSFLINCHING - 12] = sText_PkmnsXPreventsFlinching, - [STRINGID_PKMNALREADYHASBURN - 12] = sText_PkmnAlreadyHasBurn, - [STRINGID_STATSWONTDECREASE2 - 12] = sText_StatsWontDecrease2, - [STRINGID_PKMNSXBLOCKSY2 - 12] = sText_PkmnsXBlocksY2, - [STRINGID_PKMNSXWOREOFF - 12] = sText_PkmnsXWoreOff, - [STRINGID_PKMNRAISEDDEFALITTLE - 12] = sText_PkmnRaisedDefALittle, - [STRINGID_PKMNRAISEDSPDEFALITTLE - 12] = sText_PkmnRaisedSpDefALittle, - [STRINGID_THEWALLSHATTERED - 12] = sText_TheWallShattered, - [STRINGID_PKMNSXPREVENTSYSZ - 12] = sText_PkmnsXPreventsYsZ, - [STRINGID_PKMNSXCUREDITSYPROBLEM - 12] = sText_PkmnsXCuredItsYProblem, - [STRINGID_ATTACKERCANTESCAPE - 12] = sText_AttackerCantEscape, - [STRINGID_PKMNOBTAINEDX - 12] = sText_PkmnObtainedX, - [STRINGID_PKMNOBTAINEDX2 - 12] = sText_PkmnObtainedX2, - [STRINGID_PKMNOBTAINEDXYOBTAINEDZ - 12] = sText_PkmnObtainedXYObtainedZ, - [STRINGID_BUTNOEFFECT - 12] = sText_ButNoEffect, - [STRINGID_PKMNSXHADNOEFFECTONY - 12] = sText_PkmnsXHadNoEffectOnY, - [STRINGID_TWOENEMIESDEFEATED - 12] = sText_TwoInGameTrainersDefeated, - [STRINGID_TRAINER2LOSETEXT - 12] = sText_Trainer2LoseText, - [STRINGID_PKMNINCAPABLEOFPOWER - 12] = sText_PkmnIncapableOfPower, - [STRINGID_GLINTAPPEARSINEYE - 12] = sText_GlintAppearsInEye, - [STRINGID_PKMNGETTINGINTOPOSITION - 12] = sText_PkmnGettingIntoPosition, - [STRINGID_PKMNBEGANGROWLINGDEEPLY - 12] = sText_PkmnBeganGrowlingDeeply, - [STRINGID_PKMNEAGERFORMORE - 12] = sText_PkmnEagerForMore, - [STRINGID_DEFEATEDOPPONENTBYREFEREE - 12] = sText_DefeatedOpponentByReferee, - [STRINGID_LOSTTOOPPONENTBYREFEREE - 12] = sText_LostToOpponentByReferee, - [STRINGID_TIEDOPPONENTBYREFEREE - 12] = sText_TiedOpponentByReferee, - [STRINGID_QUESTIONFORFEITMATCH - 12] = sText_QuestionForfeitMatch, - [STRINGID_FORFEITEDMATCH - 12] = sText_ForfeitedMatch, - [STRINGID_PKMNTRANSFERREDSOMEONESPC - 12] = gText_PkmnTransferredSomeonesPC, - [STRINGID_PKMNTRANSFERREDLANETTESPC - 12] = gText_PkmnTransferredLanettesPC, - [STRINGID_PKMNBOXSOMEONESPCFULL - 12] = gText_PkmnTransferredSomeonesPCBoxFull, - [STRINGID_PKMNBOXLANETTESPCFULL - 12] = gText_PkmnTransferredLanettesPCBoxFull, - [STRINGID_TRAINER1WINTEXT - 12] = sText_Trainer1WinText, - [STRINGID_TRAINER2WINTEXT - 12] = sText_Trainer2WinText, + [STRINGID_TRAINER1LOSETEXT - BATTLESTRINGS_TABLE_START] = sText_Trainer1LoseText, + [STRINGID_PKMNGAINEDEXP - BATTLESTRINGS_TABLE_START] = sText_PkmnGainedEXP, + [STRINGID_PKMNGREWTOLV - BATTLESTRINGS_TABLE_START] = sText_PkmnGrewToLv, + [STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_TABLE_START] = sText_PkmnLearnedMove, + [STRINGID_TRYTOLEARNMOVE1 - BATTLESTRINGS_TABLE_START] = sText_TryToLearnMove1, + [STRINGID_TRYTOLEARNMOVE2 - BATTLESTRINGS_TABLE_START] = sText_TryToLearnMove2, + [STRINGID_TRYTOLEARNMOVE3 - BATTLESTRINGS_TABLE_START] = sText_TryToLearnMove3, + [STRINGID_PKMNFORGOTMOVE - BATTLESTRINGS_TABLE_START] = sText_PkmnForgotMove, + [STRINGID_STOPLEARNINGMOVE - BATTLESTRINGS_TABLE_START] = sText_StopLearningMove, + [STRINGID_DIDNOTLEARNMOVE - BATTLESTRINGS_TABLE_START] = sText_DidNotLearnMove, + [STRINGID_PKMNLEARNEDMOVE2 - BATTLESTRINGS_TABLE_START] = sText_PkmnLearnedMove2, + [STRINGID_ATTACKMISSED - BATTLESTRINGS_TABLE_START] = sText_AttackMissed, + [STRINGID_PKMNPROTECTEDITSELF - BATTLESTRINGS_TABLE_START] = sText_PkmnProtectedItself, + [STRINGID_STATSWONTINCREASE2 - BATTLESTRINGS_TABLE_START] = sText_StatsWontIncrease2, + [STRINGID_AVOIDEDDAMAGE - BATTLESTRINGS_TABLE_START] = sText_AvoidedDamage, + [STRINGID_ITDOESNTAFFECT - BATTLESTRINGS_TABLE_START] = sText_ItDoesntAffect, + [STRINGID_ATTACKERFAINTED - BATTLESTRINGS_TABLE_START] = sText_AttackerFainted, + [STRINGID_TARGETFAINTED - BATTLESTRINGS_TABLE_START] = sText_TargetFainted, + [STRINGID_PLAYERGOTMONEY - BATTLESTRINGS_TABLE_START] = sText_PlayerGotMoney, + [STRINGID_PLAYERWHITEOUT - BATTLESTRINGS_TABLE_START] = sText_PlayerWhiteout, + [STRINGID_PLAYERWHITEOUT2 - BATTLESTRINGS_TABLE_START] = sText_PlayerWhiteout2, + [STRINGID_PREVENTSESCAPE - BATTLESTRINGS_TABLE_START] = sText_PreventsEscape, + [STRINGID_HITXTIMES - BATTLESTRINGS_TABLE_START] = sText_HitXTimes, + [STRINGID_PKMNFELLASLEEP - BATTLESTRINGS_TABLE_START] = sText_PkmnFellAsleep, + [STRINGID_PKMNMADESLEEP - BATTLESTRINGS_TABLE_START] = sText_PkmnMadeSleep, + [STRINGID_PKMNALREADYASLEEP - BATTLESTRINGS_TABLE_START] = sText_PkmnAlreadyAsleep, + [STRINGID_PKMNALREADYASLEEP2 - BATTLESTRINGS_TABLE_START] = sText_PkmnAlreadyAsleep2, + [STRINGID_PKMNWASNTAFFECTED - BATTLESTRINGS_TABLE_START] = sText_PkmnWasntAffected, + [STRINGID_PKMNWASPOISONED - BATTLESTRINGS_TABLE_START] = sText_PkmnWasPoisoned, + [STRINGID_PKMNPOISONEDBY - BATTLESTRINGS_TABLE_START] = sText_PkmnPoisonedBy, + [STRINGID_PKMNHURTBYPOISON - BATTLESTRINGS_TABLE_START] = sText_PkmnHurtByPoison, + [STRINGID_PKMNALREADYPOISONED - BATTLESTRINGS_TABLE_START] = sText_PkmnAlreadyPoisoned, + [STRINGID_PKMNBADLYPOISONED - BATTLESTRINGS_TABLE_START] = sText_PkmnBadlyPoisoned, + [STRINGID_PKMNENERGYDRAINED - BATTLESTRINGS_TABLE_START] = sText_PkmnEnergyDrained, + [STRINGID_PKMNWASBURNED - BATTLESTRINGS_TABLE_START] = sText_PkmnWasBurned, + [STRINGID_PKMNBURNEDBY - BATTLESTRINGS_TABLE_START] = sText_PkmnBurnedBy, + [STRINGID_PKMNHURTBYBURN - BATTLESTRINGS_TABLE_START] = sText_PkmnHurtByBurn, + [STRINGID_PKMNWASFROZEN - BATTLESTRINGS_TABLE_START] = sText_PkmnWasFrozen, + [STRINGID_PKMNFROZENBY - BATTLESTRINGS_TABLE_START] = sText_PkmnFrozenBy, + [STRINGID_PKMNISFROZEN - BATTLESTRINGS_TABLE_START] = sText_PkmnIsFrozen, + [STRINGID_PKMNWASDEFROSTED - BATTLESTRINGS_TABLE_START] = sText_PkmnWasDefrosted, + [STRINGID_PKMNWASDEFROSTED2 - BATTLESTRINGS_TABLE_START] = sText_PkmnWasDefrosted2, + [STRINGID_PKMNWASDEFROSTEDBY - BATTLESTRINGS_TABLE_START] = sText_PkmnWasDefrostedBy, + [STRINGID_PKMNWASPARALYZED - BATTLESTRINGS_TABLE_START] = sText_PkmnWasParalyzed, + [STRINGID_PKMNWASPARALYZEDBY - BATTLESTRINGS_TABLE_START] = sText_PkmnWasParalyzedBy, + [STRINGID_PKMNISPARALYZED - BATTLESTRINGS_TABLE_START] = sText_PkmnIsParalyzed, + [STRINGID_PKMNISALREADYPARALYZED - BATTLESTRINGS_TABLE_START] = sText_PkmnIsAlreadyParalyzed, + [STRINGID_PKMNHEALEDPARALYSIS - BATTLESTRINGS_TABLE_START] = sText_PkmnHealedParalysis, + [STRINGID_PKMNDREAMEATEN - BATTLESTRINGS_TABLE_START] = sText_PkmnDreamEaten, + [STRINGID_STATSWONTINCREASE - BATTLESTRINGS_TABLE_START] = sText_StatsWontIncrease, + [STRINGID_STATSWONTDECREASE - BATTLESTRINGS_TABLE_START] = sText_StatsWontDecrease, + [STRINGID_TEAMSTOPPEDWORKING - BATTLESTRINGS_TABLE_START] = sText_TeamStoppedWorking, + [STRINGID_FOESTOPPEDWORKING - BATTLESTRINGS_TABLE_START] = sText_FoeStoppedWorking, + [STRINGID_PKMNISCONFUSED - BATTLESTRINGS_TABLE_START] = sText_PkmnIsConfused, + [STRINGID_PKMNHEALEDCONFUSION - BATTLESTRINGS_TABLE_START] = sText_PkmnHealedConfusion, + [STRINGID_PKMNWASCONFUSED - BATTLESTRINGS_TABLE_START] = sText_PkmnWasConfused, + [STRINGID_PKMNALREADYCONFUSED - BATTLESTRINGS_TABLE_START] = sText_PkmnAlreadyConfused, + [STRINGID_PKMNFELLINLOVE - BATTLESTRINGS_TABLE_START] = sText_PkmnFellInLove, + [STRINGID_PKMNINLOVE - BATTLESTRINGS_TABLE_START] = sText_PkmnInLove, + [STRINGID_PKMNIMMOBILIZEDBYLOVE - BATTLESTRINGS_TABLE_START] = sText_PkmnImmobilizedByLove, + [STRINGID_PKMNBLOWNAWAY - BATTLESTRINGS_TABLE_START] = sText_PkmnBlownAway, + [STRINGID_PKMNCHANGEDTYPE - BATTLESTRINGS_TABLE_START] = sText_PkmnChangedType, + [STRINGID_PKMNFLINCHED - BATTLESTRINGS_TABLE_START] = sText_PkmnFlinched, + [STRINGID_PKMNREGAINEDHEALTH - BATTLESTRINGS_TABLE_START] = sText_PkmnRegainedHealth, + [STRINGID_PKMNHPFULL - BATTLESTRINGS_TABLE_START] = sText_PkmnHPFull, + [STRINGID_PKMNRAISEDSPDEF - BATTLESTRINGS_TABLE_START] = sText_PkmnRaisedSpDef, + [STRINGID_PKMNRAISEDDEF - BATTLESTRINGS_TABLE_START] = sText_PkmnRaisedDef, + [STRINGID_PKMNCOVEREDBYVEIL - BATTLESTRINGS_TABLE_START] = sText_PkmnCoveredByVeil, + [STRINGID_PKMNUSEDSAFEGUARD - BATTLESTRINGS_TABLE_START] = sText_PkmnUsedSafeguard, + [STRINGID_PKMNSAFEGUARDEXPIRED - BATTLESTRINGS_TABLE_START] = sText_PkmnSafeguardExpired, + [STRINGID_PKMNWENTTOSLEEP - BATTLESTRINGS_TABLE_START] = sText_PkmnWentToSleep, + [STRINGID_PKMNSLEPTHEALTHY - BATTLESTRINGS_TABLE_START] = sText_PkmnSleptHealthy, + [STRINGID_PKMNWHIPPEDWHIRLWIND - BATTLESTRINGS_TABLE_START] = sText_PkmnWhippedWhirlwind, + [STRINGID_PKMNTOOKSUNLIGHT - BATTLESTRINGS_TABLE_START] = sText_PkmnTookSunlight, + [STRINGID_PKMNLOWEREDHEAD - BATTLESTRINGS_TABLE_START] = sText_PkmnLoweredHead, + [STRINGID_PKMNISGLOWING - BATTLESTRINGS_TABLE_START] = sText_PkmnIsGlowing, + [STRINGID_PKMNFLEWHIGH - BATTLESTRINGS_TABLE_START] = sText_PkmnFlewHigh, + [STRINGID_PKMNDUGHOLE - BATTLESTRINGS_TABLE_START] = sText_PkmnDugHole, + [STRINGID_PKMNSQUEEZEDBYBIND - BATTLESTRINGS_TABLE_START] = sText_PkmnSqueezedByBind, + [STRINGID_PKMNTRAPPEDINVORTEX - BATTLESTRINGS_TABLE_START] = sText_PkmnTrappedInVortex, + [STRINGID_PKMNWRAPPEDBY - BATTLESTRINGS_TABLE_START] = sText_PkmnWrappedBy, + [STRINGID_PKMNCLAMPED - BATTLESTRINGS_TABLE_START] = sText_PkmnClamped, + [STRINGID_PKMNHURTBY - BATTLESTRINGS_TABLE_START] = sText_PkmnHurtBy, + [STRINGID_PKMNFREEDFROM - BATTLESTRINGS_TABLE_START] = sText_PkmnFreedFrom, + [STRINGID_PKMNCRASHED - BATTLESTRINGS_TABLE_START] = sText_PkmnCrashed, + [STRINGID_PKMNSHROUDEDINMIST - BATTLESTRINGS_TABLE_START] = gText_PkmnShroudedInMist, + [STRINGID_PKMNPROTECTEDBYMIST - BATTLESTRINGS_TABLE_START] = sText_PkmnProtectedByMist, + [STRINGID_PKMNGETTINGPUMPED - BATTLESTRINGS_TABLE_START] = gText_PkmnGettingPumped, + [STRINGID_PKMNHITWITHRECOIL - BATTLESTRINGS_TABLE_START] = sText_PkmnHitWithRecoil, + [STRINGID_PKMNPROTECTEDITSELF2 - BATTLESTRINGS_TABLE_START] = sText_PkmnProtectedItself2, + [STRINGID_PKMNBUFFETEDBYSANDSTORM - BATTLESTRINGS_TABLE_START] = sText_PkmnBuffetedBySandstorm, + [STRINGID_PKMNPELTEDBYHAIL - BATTLESTRINGS_TABLE_START] = sText_PkmnPeltedByHail, + [STRINGID_PKMNSEEDED - BATTLESTRINGS_TABLE_START] = sText_PkmnSeeded, + [STRINGID_PKMNEVADEDATTACK - BATTLESTRINGS_TABLE_START] = sText_PkmnEvadedAttack, + [STRINGID_PKMNSAPPEDBYLEECHSEED - BATTLESTRINGS_TABLE_START] = sText_PkmnSappedByLeechSeed, + [STRINGID_PKMNFASTASLEEP - BATTLESTRINGS_TABLE_START] = sText_PkmnFastAsleep, + [STRINGID_PKMNWOKEUP - BATTLESTRINGS_TABLE_START] = sText_PkmnWokeUp, + [STRINGID_PKMNUPROARKEPTAWAKE - BATTLESTRINGS_TABLE_START] = sText_PkmnUproarKeptAwake, + [STRINGID_PKMNWOKEUPINUPROAR - BATTLESTRINGS_TABLE_START] = sText_PkmnWokeUpInUproar, + [STRINGID_PKMNCAUSEDUPROAR - BATTLESTRINGS_TABLE_START] = sText_PkmnCausedUproar, + [STRINGID_PKMNMAKINGUPROAR - BATTLESTRINGS_TABLE_START] = sText_PkmnMakingUproar, + [STRINGID_PKMNCALMEDDOWN - BATTLESTRINGS_TABLE_START] = sText_PkmnCalmedDown, + [STRINGID_PKMNCANTSLEEPINUPROAR - BATTLESTRINGS_TABLE_START] = sText_PkmnCantSleepInUproar, + [STRINGID_PKMNSTOCKPILED - BATTLESTRINGS_TABLE_START] = sText_PkmnStockpiled, + [STRINGID_PKMNCANTSTOCKPILE - BATTLESTRINGS_TABLE_START] = sText_PkmnCantStockpile, + [STRINGID_PKMNCANTSLEEPINUPROAR2 - BATTLESTRINGS_TABLE_START] = sText_PkmnCantSleepInUproar2, + [STRINGID_UPROARKEPTPKMNAWAKE - BATTLESTRINGS_TABLE_START] = sText_UproarKeptPkmnAwake, + [STRINGID_PKMNSTAYEDAWAKEUSING - BATTLESTRINGS_TABLE_START] = sText_PkmnStayedAwakeUsing, + [STRINGID_PKMNSTORINGENERGY - BATTLESTRINGS_TABLE_START] = sText_PkmnStoringEnergy, + [STRINGID_PKMNUNLEASHEDENERGY - BATTLESTRINGS_TABLE_START] = sText_PkmnUnleashedEnergy, + [STRINGID_PKMNFATIGUECONFUSION - BATTLESTRINGS_TABLE_START] = sText_PkmnFatigueConfusion, + [STRINGID_PLAYERPICKEDUPMONEY - BATTLESTRINGS_TABLE_START] = sText_PlayerPickedUpMoney, + [STRINGID_PKMNUNAFFECTED - BATTLESTRINGS_TABLE_START] = sText_PkmnUnaffected, + [STRINGID_PKMNTRANSFORMEDINTO - BATTLESTRINGS_TABLE_START] = sText_PkmnTransformedInto, + [STRINGID_PKMNMADESUBSTITUTE - BATTLESTRINGS_TABLE_START] = sText_PkmnMadeSubstitute, + [STRINGID_PKMNHASSUBSTITUTE - BATTLESTRINGS_TABLE_START] = sText_PkmnHasSubstitute, + [STRINGID_SUBSTITUTEDAMAGED - BATTLESTRINGS_TABLE_START] = sText_SubstituteDamaged, + [STRINGID_PKMNSUBSTITUTEFADED - BATTLESTRINGS_TABLE_START] = sText_PkmnSubstituteFaded, + [STRINGID_PKMNMUSTRECHARGE - BATTLESTRINGS_TABLE_START] = sText_PkmnMustRecharge, + [STRINGID_PKMNRAGEBUILDING - BATTLESTRINGS_TABLE_START] = sText_PkmnRageBuilding, + [STRINGID_PKMNMOVEWASDISABLED - BATTLESTRINGS_TABLE_START] = sText_PkmnMoveWasDisabled, + [STRINGID_PKMNMOVEISDISABLED - BATTLESTRINGS_TABLE_START] = sText_PkmnMoveIsDisabled, + [STRINGID_PKMNMOVEDISABLEDNOMORE - BATTLESTRINGS_TABLE_START] = sText_PkmnMoveDisabledNoMore, + [STRINGID_PKMNGOTENCORE - BATTLESTRINGS_TABLE_START] = sText_PkmnGotEncore, + [STRINGID_PKMNENCOREENDED - BATTLESTRINGS_TABLE_START] = sText_PkmnEncoreEnded, + [STRINGID_PKMNTOOKAIM - BATTLESTRINGS_TABLE_START] = sText_PkmnTookAim, + [STRINGID_PKMNSKETCHEDMOVE - BATTLESTRINGS_TABLE_START] = sText_PkmnSketchedMove, + [STRINGID_PKMNTRYINGTOTAKEFOE - BATTLESTRINGS_TABLE_START] = sText_PkmnTryingToTakeFoe, + [STRINGID_PKMNTOOKFOE - BATTLESTRINGS_TABLE_START] = sText_PkmnTookFoe, + [STRINGID_PKMNREDUCEDPP - BATTLESTRINGS_TABLE_START] = sText_PkmnReducedPP, + [STRINGID_PKMNSTOLEITEM - BATTLESTRINGS_TABLE_START] = sText_PkmnStoleItem, + [STRINGID_TARGETCANTESCAPENOW - BATTLESTRINGS_TABLE_START] = sText_TargetCantEscapeNow, + [STRINGID_PKMNFELLINTONIGHTMARE - BATTLESTRINGS_TABLE_START] = sText_PkmnFellIntoNightmare, + [STRINGID_PKMNLOCKEDINNIGHTMARE - BATTLESTRINGS_TABLE_START] = sText_PkmnLockedInNightmare, + [STRINGID_PKMNLAIDCURSE - BATTLESTRINGS_TABLE_START] = sText_PkmnLaidCurse, + [STRINGID_PKMNAFFLICTEDBYCURSE - BATTLESTRINGS_TABLE_START] = sText_PkmnAfflictedByCurse, + [STRINGID_SPIKESSCATTERED - BATTLESTRINGS_TABLE_START] = sText_SpikesScattered, + [STRINGID_PKMNHURTBYSPIKES - BATTLESTRINGS_TABLE_START] = sText_PkmnHurtBySpikes, + [STRINGID_PKMNIDENTIFIED - BATTLESTRINGS_TABLE_START] = sText_PkmnIdentified, + [STRINGID_PKMNPERISHCOUNTFELL - BATTLESTRINGS_TABLE_START] = sText_PkmnPerishCountFell, + [STRINGID_PKMNBRACEDITSELF - BATTLESTRINGS_TABLE_START] = sText_PkmnBracedItself, + [STRINGID_PKMNENDUREDHIT - BATTLESTRINGS_TABLE_START] = sText_PkmnEnduredHit, + [STRINGID_MAGNITUDESTRENGTH - BATTLESTRINGS_TABLE_START] = sText_MagnitudeStrength, + [STRINGID_PKMNCUTHPMAXEDATTACK - BATTLESTRINGS_TABLE_START] = sText_PkmnCutHPMaxedAttack, + [STRINGID_PKMNCOPIEDSTATCHANGES - BATTLESTRINGS_TABLE_START] = sText_PkmnCopiedStatChanges, + [STRINGID_PKMNGOTFREE - BATTLESTRINGS_TABLE_START] = sText_PkmnGotFree, + [STRINGID_PKMNSHEDLEECHSEED - BATTLESTRINGS_TABLE_START] = sText_PkmnShedLeechSeed, + [STRINGID_PKMNBLEWAWAYSPIKES - BATTLESTRINGS_TABLE_START] = sText_PkmnBlewAwaySpikes, + [STRINGID_PKMNFLEDFROMBATTLE - BATTLESTRINGS_TABLE_START] = sText_PkmnFledFromBattle, + [STRINGID_PKMNFORESAWATTACK - BATTLESTRINGS_TABLE_START] = sText_PkmnForesawAttack, + [STRINGID_PKMNTOOKATTACK - BATTLESTRINGS_TABLE_START] = sText_PkmnTookAttack, + [STRINGID_PKMNATTACK - BATTLESTRINGS_TABLE_START] = sText_PkmnAttack, + [STRINGID_PKMNCENTERATTENTION - BATTLESTRINGS_TABLE_START] = sText_PkmnCenterAttention, + [STRINGID_PKMNCHARGINGPOWER - BATTLESTRINGS_TABLE_START] = sText_PkmnChargingPower, + [STRINGID_NATUREPOWERTURNEDINTO - BATTLESTRINGS_TABLE_START] = sText_NaturePowerTurnedInto, + [STRINGID_PKMNSTATUSNORMAL - BATTLESTRINGS_TABLE_START] = sText_PkmnStatusNormal, + [STRINGID_PKMNHASNOMOVESLEFT - BATTLESTRINGS_TABLE_START] = sText_PkmnHasNoMovesLeft, + [STRINGID_PKMNSUBJECTEDTOTORMENT - BATTLESTRINGS_TABLE_START] = sText_PkmnSubjectedToTorment, + [STRINGID_PKMNCANTUSEMOVETORMENT - BATTLESTRINGS_TABLE_START] = sText_PkmnCantUseMoveTorment, + [STRINGID_PKMNTIGHTENINGFOCUS - BATTLESTRINGS_TABLE_START] = sText_PkmnTighteningFocus, + [STRINGID_PKMNFELLFORTAUNT - BATTLESTRINGS_TABLE_START] = sText_PkmnFellForTaunt, + [STRINGID_PKMNCANTUSEMOVETAUNT - BATTLESTRINGS_TABLE_START] = sText_PkmnCantUseMoveTaunt, + [STRINGID_PKMNREADYTOHELP - BATTLESTRINGS_TABLE_START] = sText_PkmnReadyToHelp, + [STRINGID_PKMNSWITCHEDITEMS - BATTLESTRINGS_TABLE_START] = sText_PkmnSwitchedItems, + [STRINGID_PKMNCOPIEDFOE - BATTLESTRINGS_TABLE_START] = sText_PkmnCopiedFoe, + [STRINGID_PKMNMADEWISH - BATTLESTRINGS_TABLE_START] = sText_PkmnMadeWish, + [STRINGID_PKMNWISHCAMETRUE - BATTLESTRINGS_TABLE_START] = sText_PkmnWishCameTrue, + [STRINGID_PKMNPLANTEDROOTS - BATTLESTRINGS_TABLE_START] = sText_PkmnPlantedRoots, + [STRINGID_PKMNABSORBEDNUTRIENTS - BATTLESTRINGS_TABLE_START] = sText_PkmnAbsorbedNutrients, + [STRINGID_PKMNANCHOREDITSELF - BATTLESTRINGS_TABLE_START] = sText_PkmnAnchoredItself, + [STRINGID_PKMNWASMADEDROWSY - BATTLESTRINGS_TABLE_START] = sText_PkmnWasMadeDrowsy, + [STRINGID_PKMNKNOCKEDOFF - BATTLESTRINGS_TABLE_START] = sText_PkmnKnockedOff, + [STRINGID_PKMNSWAPPEDABILITIES - BATTLESTRINGS_TABLE_START] = sText_PkmnSwappedAbilities, + [STRINGID_PKMNSEALEDOPPONENTMOVE - BATTLESTRINGS_TABLE_START] = sText_PkmnSealedOpponentMove, + [STRINGID_PKMNCANTUSEMOVESEALED - BATTLESTRINGS_TABLE_START] = sText_PkmnCantUseMoveSealed, + [STRINGID_PKMNWANTSGRUDGE - BATTLESTRINGS_TABLE_START] = sText_PkmnWantsGrudge, + [STRINGID_PKMNLOSTPPGRUDGE - BATTLESTRINGS_TABLE_START] = sText_PkmnLostPPGrudge, + [STRINGID_PKMNSHROUDEDITSELF - BATTLESTRINGS_TABLE_START] = sText_PkmnShroudedItself, + [STRINGID_PKMNMOVEBOUNCED - BATTLESTRINGS_TABLE_START] = sText_PkmnMoveBounced, + [STRINGID_PKMNWAITSFORTARGET - BATTLESTRINGS_TABLE_START] = sText_PkmnWaitsForTarget, + [STRINGID_PKMNSNATCHEDMOVE - BATTLESTRINGS_TABLE_START] = sText_PkmnSnatchedMove, + [STRINGID_PKMNMADEITRAIN - BATTLESTRINGS_TABLE_START] = sText_PkmnMadeItRain, + [STRINGID_PKMNRAISEDSPEED - BATTLESTRINGS_TABLE_START] = sText_PkmnRaisedSpeed, + [STRINGID_PKMNPROTECTEDBY - BATTLESTRINGS_TABLE_START] = sText_PkmnProtectedBy, + [STRINGID_PKMNPREVENTSUSAGE - BATTLESTRINGS_TABLE_START] = sText_PkmnPreventsUsage, + [STRINGID_PKMNRESTOREDHPUSING - BATTLESTRINGS_TABLE_START] = sText_PkmnRestoredHPUsing, + [STRINGID_PKMNCHANGEDTYPEWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnChangedTypeWith, + [STRINGID_PKMNPREVENTSPARALYSISWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnPreventsParalysisWith, + [STRINGID_PKMNPREVENTSROMANCEWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnPreventsRomanceWith, + [STRINGID_PKMNPREVENTSPOISONINGWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnPreventsPoisoningWith, + [STRINGID_PKMNPREVENTSCONFUSIONWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnPreventsConfusionWith, + [STRINGID_PKMNRAISEDFIREPOWERWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnRaisedFirePowerWith, + [STRINGID_PKMNANCHORSITSELFWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnAnchorsItselfWith, + [STRINGID_PKMNCUTSATTACKWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnCutsAttackWith, + [STRINGID_PKMNPREVENTSSTATLOSSWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnPreventsStatLossWith, + [STRINGID_PKMNHURTSWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnHurtsWith, + [STRINGID_PKMNTRACED - BATTLESTRINGS_TABLE_START] = sText_PkmnTraced, + [STRINGID_STATSHARPLY - BATTLESTRINGS_TABLE_START] = sText_StatSharply, + [STRINGID_STATROSE - BATTLESTRINGS_TABLE_START] = gText_StatRose, + [STRINGID_STATHARSHLY - BATTLESTRINGS_TABLE_START] = sText_StatHarshly, + [STRINGID_STATFELL - BATTLESTRINGS_TABLE_START] = sText_StatFell, + [STRINGID_ATTACKERSSTATROSE - BATTLESTRINGS_TABLE_START] = sText_AttackersStatRose, + [STRINGID_DEFENDERSSTATROSE - BATTLESTRINGS_TABLE_START] = gText_DefendersStatRose, + [STRINGID_ATTACKERSSTATFELL - BATTLESTRINGS_TABLE_START] = sText_AttackersStatFell, + [STRINGID_DEFENDERSSTATFELL - BATTLESTRINGS_TABLE_START] = sText_DefendersStatFell, + [STRINGID_CRITICALHIT - BATTLESTRINGS_TABLE_START] = sText_CriticalHit, + [STRINGID_ONEHITKO - BATTLESTRINGS_TABLE_START] = sText_OneHitKO, + [STRINGID_123POOF - BATTLESTRINGS_TABLE_START] = sText_123Poof, + [STRINGID_ANDELLIPSIS - BATTLESTRINGS_TABLE_START] = sText_AndEllipsis, + [STRINGID_NOTVERYEFFECTIVE - BATTLESTRINGS_TABLE_START] = sText_NotVeryEffective, + [STRINGID_SUPEREFFECTIVE - BATTLESTRINGS_TABLE_START] = sText_SuperEffective, + [STRINGID_GOTAWAYSAFELY - BATTLESTRINGS_TABLE_START] = sText_GotAwaySafely, + [STRINGID_WILDPKMNFLED - BATTLESTRINGS_TABLE_START] = sText_WildPkmnFled, + [STRINGID_NORUNNINGFROMTRAINERS - BATTLESTRINGS_TABLE_START] = sText_NoRunningFromTrainers, + [STRINGID_CANTESCAPE - BATTLESTRINGS_TABLE_START] = sText_CantEscape, + [STRINGID_DONTLEAVEBIRCH - BATTLESTRINGS_TABLE_START] = sText_DontLeaveBirch, + [STRINGID_BUTNOTHINGHAPPENED - BATTLESTRINGS_TABLE_START] = sText_ButNothingHappened, + [STRINGID_BUTITFAILED - BATTLESTRINGS_TABLE_START] = sText_ButItFailed, + [STRINGID_ITHURTCONFUSION - BATTLESTRINGS_TABLE_START] = sText_ItHurtConfusion, + [STRINGID_MIRRORMOVEFAILED - BATTLESTRINGS_TABLE_START] = sText_MirrorMoveFailed, + [STRINGID_STARTEDTORAIN - BATTLESTRINGS_TABLE_START] = sText_StartedToRain, + [STRINGID_DOWNPOURSTARTED - BATTLESTRINGS_TABLE_START] = sText_DownpourStarted, + [STRINGID_RAINCONTINUES - BATTLESTRINGS_TABLE_START] = sText_RainContinues, + [STRINGID_DOWNPOURCONTINUES - BATTLESTRINGS_TABLE_START] = sText_DownpourContinues, + [STRINGID_RAINSTOPPED - BATTLESTRINGS_TABLE_START] = sText_RainStopped, + [STRINGID_SANDSTORMBREWED - BATTLESTRINGS_TABLE_START] = sText_SandstormBrewed, + [STRINGID_SANDSTORMRAGES - BATTLESTRINGS_TABLE_START] = sText_SandstormRages, + [STRINGID_SANDSTORMSUBSIDED - BATTLESTRINGS_TABLE_START] = sText_SandstormSubsided, + [STRINGID_SUNLIGHTGOTBRIGHT - BATTLESTRINGS_TABLE_START] = sText_SunlightGotBright, + [STRINGID_SUNLIGHTSTRONG - BATTLESTRINGS_TABLE_START] = sText_SunlightStrong, + [STRINGID_SUNLIGHTFADED - BATTLESTRINGS_TABLE_START] = sText_SunlightFaded, + [STRINGID_STARTEDHAIL - BATTLESTRINGS_TABLE_START] = sText_StartedHail, + [STRINGID_HAILCONTINUES - BATTLESTRINGS_TABLE_START] = sText_HailContinues, + [STRINGID_HAILSTOPPED - BATTLESTRINGS_TABLE_START] = sText_HailStopped, + [STRINGID_FAILEDTOSPITUP - BATTLESTRINGS_TABLE_START] = sText_FailedToSpitUp, + [STRINGID_FAILEDTOSWALLOW - BATTLESTRINGS_TABLE_START] = sText_FailedToSwallow, + [STRINGID_WINDBECAMEHEATWAVE - BATTLESTRINGS_TABLE_START] = sText_WindBecameHeatWave, + [STRINGID_STATCHANGESGONE - BATTLESTRINGS_TABLE_START] = sText_StatChangesGone, + [STRINGID_COINSSCATTERED - BATTLESTRINGS_TABLE_START] = sText_CoinsScattered, + [STRINGID_TOOWEAKFORSUBSTITUTE - BATTLESTRINGS_TABLE_START] = sText_TooWeakForSubstitute, + [STRINGID_SHAREDPAIN - BATTLESTRINGS_TABLE_START] = sText_SharedPain, + [STRINGID_BELLCHIMED - BATTLESTRINGS_TABLE_START] = sText_BellChimed, + [STRINGID_FAINTINTHREE - BATTLESTRINGS_TABLE_START] = sText_FaintInThree, + [STRINGID_NOPPLEFT - BATTLESTRINGS_TABLE_START] = sText_NoPPLeft, + [STRINGID_BUTNOPPLEFT - BATTLESTRINGS_TABLE_START] = sText_ButNoPPLeft, + [STRINGID_PLAYERUSEDITEM - BATTLESTRINGS_TABLE_START] = sText_PlayerUsedItem, + [STRINGID_WALLYUSEDITEM - BATTLESTRINGS_TABLE_START] = sText_WallyUsedItem, + [STRINGID_TRAINERBLOCKEDBALL - BATTLESTRINGS_TABLE_START] = sText_TrainerBlockedBall, + [STRINGID_DONTBEATHIEF - BATTLESTRINGS_TABLE_START] = sText_DontBeAThief, + [STRINGID_ITDODGEDBALL - BATTLESTRINGS_TABLE_START] = sText_ItDodgedBall, + [STRINGID_YOUMISSEDPKMN - BATTLESTRINGS_TABLE_START] = sText_YouMissedPkmn, + [STRINGID_PKMNBROKEFREE - BATTLESTRINGS_TABLE_START] = sText_PkmnBrokeFree, + [STRINGID_ITAPPEAREDCAUGHT - BATTLESTRINGS_TABLE_START] = sText_ItAppearedCaught, + [STRINGID_AARGHALMOSTHADIT - BATTLESTRINGS_TABLE_START] = sText_AarghAlmostHadIt, + [STRINGID_SHOOTSOCLOSE - BATTLESTRINGS_TABLE_START] = sText_ShootSoClose, + [STRINGID_GOTCHAPKMNCAUGHT - BATTLESTRINGS_TABLE_START] = sText_GotchaPkmnCaught, + [STRINGID_GOTCHAPKMNCAUGHT2 - BATTLESTRINGS_TABLE_START] = sText_GotchaPkmnCaught2, + [STRINGID_GIVENICKNAMECAPTURED - BATTLESTRINGS_TABLE_START] = sText_GiveNicknameCaptured, + [STRINGID_PKMNSENTTOPC - BATTLESTRINGS_TABLE_START] = sText_PkmnSentToPC, + [STRINGID_PKMNDATAADDEDTODEX - BATTLESTRINGS_TABLE_START] = sText_PkmnDataAddedToDex, + [STRINGID_ITISRAINING - BATTLESTRINGS_TABLE_START] = sText_ItIsRaining, + [STRINGID_SANDSTORMISRAGING - BATTLESTRINGS_TABLE_START] = sText_SandstormIsRaging, + [STRINGID_CANTESCAPE2 - BATTLESTRINGS_TABLE_START] = sText_CantEscape2, + [STRINGID_PKMNIGNORESASLEEP - BATTLESTRINGS_TABLE_START] = sText_PkmnIgnoresAsleep, + [STRINGID_PKMNIGNOREDORDERS - BATTLESTRINGS_TABLE_START] = sText_PkmnIgnoredOrders, + [STRINGID_PKMNBEGANTONAP - BATTLESTRINGS_TABLE_START] = sText_PkmnBeganToNap, + [STRINGID_PKMNLOAFING - BATTLESTRINGS_TABLE_START] = sText_PkmnLoafing, + [STRINGID_PKMNWONTOBEY - BATTLESTRINGS_TABLE_START] = sText_PkmnWontObey, + [STRINGID_PKMNTURNEDAWAY - BATTLESTRINGS_TABLE_START] = sText_PkmnTurnedAway, + [STRINGID_PKMNPRETENDNOTNOTICE - BATTLESTRINGS_TABLE_START] = sText_PkmnPretendNotNotice, + [STRINGID_ENEMYABOUTTOSWITCHPKMN - BATTLESTRINGS_TABLE_START] = sText_EnemyAboutToSwitchPkmn, + [STRINGID_CREPTCLOSER - BATTLESTRINGS_TABLE_START] = sText_CreptCloser, + [STRINGID_CANTGETCLOSER - BATTLESTRINGS_TABLE_START] = sText_CantGetCloser, + [STRINGID_PKMNWATCHINGCAREFULLY - BATTLESTRINGS_TABLE_START] = sText_PkmnWatchingCarefully, + [STRINGID_PKMNCURIOUSABOUTX - BATTLESTRINGS_TABLE_START] = sText_PkmnCuriousAboutX, + [STRINGID_PKMNENTHRALLEDBYX - BATTLESTRINGS_TABLE_START] = sText_PkmnEnthralledByX, + [STRINGID_PKMNIGNOREDX - BATTLESTRINGS_TABLE_START] = sText_PkmnIgnoredX, + [STRINGID_THREWPOKEBLOCKATPKMN - BATTLESTRINGS_TABLE_START] = sText_ThrewPokeblockAtPkmn, + [STRINGID_OUTOFSAFARIBALLS - BATTLESTRINGS_TABLE_START] = sText_OutOfSafariBalls, + [STRINGID_PKMNSITEMCUREDPARALYSIS - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemCuredParalysis, + [STRINGID_PKMNSITEMCUREDPOISON - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemCuredPoison, + [STRINGID_PKMNSITEMHEALEDBURN - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemHealedBurn, + [STRINGID_PKMNSITEMDEFROSTEDIT - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemDefrostedIt, + [STRINGID_PKMNSITEMWOKEIT - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemWokeIt, + [STRINGID_PKMNSITEMSNAPPEDOUT - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemSnappedOut, + [STRINGID_PKMNSITEMCUREDPROBLEM - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemCuredProblem, + [STRINGID_PKMNSITEMRESTOREDHEALTH - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemRestoredHealth, + [STRINGID_PKMNSITEMRESTOREDPP - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemRestoredPP, + [STRINGID_PKMNSITEMRESTOREDSTATUS - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemRestoredStatus, + [STRINGID_PKMNSITEMRESTOREDHPALITTLE - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemRestoredHPALittle, + [STRINGID_ITEMALLOWSONLYYMOVE - BATTLESTRINGS_TABLE_START] = sText_ItemAllowsOnlyYMove, + [STRINGID_PKMNHUNGONWITHX - BATTLESTRINGS_TABLE_START] = sText_PkmnHungOnWithX, + [STRINGID_EMPTYSTRING3 - BATTLESTRINGS_TABLE_START] = gText_EmptyString3, + [STRINGID_PKMNSXPREVENTSBURNS - BATTLESTRINGS_TABLE_START] = sText_PkmnsXPreventsBurns, + [STRINGID_PKMNSXBLOCKSY - BATTLESTRINGS_TABLE_START] = sText_PkmnsXBlocksY, + [STRINGID_PKMNSXRESTOREDHPALITTLE2 - BATTLESTRINGS_TABLE_START] = sText_PkmnsXRestoredHPALittle2, + [STRINGID_PKMNSXWHIPPEDUPSANDSTORM - BATTLESTRINGS_TABLE_START] = sText_PkmnsXWhippedUpSandstorm, + [STRINGID_PKMNSXPREVENTSYLOSS - BATTLESTRINGS_TABLE_START] = sText_PkmnsXPreventsYLoss, + [STRINGID_PKMNSXINFATUATEDY - BATTLESTRINGS_TABLE_START] = sText_PkmnsXInfatuatedY, + [STRINGID_PKMNSXMADEYINEFFECTIVE - BATTLESTRINGS_TABLE_START] = sText_PkmnsXMadeYIneffective, + [STRINGID_PKMNSXCUREDYPROBLEM - BATTLESTRINGS_TABLE_START] = sText_PkmnsXCuredYProblem, + [STRINGID_ITSUCKEDLIQUIDOOZE - BATTLESTRINGS_TABLE_START] = sText_ItSuckedLiquidOoze, + [STRINGID_PKMNTRANSFORMED - BATTLESTRINGS_TABLE_START] = sText_PkmnTransformed, + [STRINGID_ELECTRICITYWEAKENED - BATTLESTRINGS_TABLE_START] = sText_ElectricityWeakened, + [STRINGID_FIREWEAKENED - BATTLESTRINGS_TABLE_START] = sText_FireWeakened, + [STRINGID_PKMNHIDUNDERWATER - BATTLESTRINGS_TABLE_START] = sText_PkmnHidUnderwater, + [STRINGID_PKMNSPRANGUP - BATTLESTRINGS_TABLE_START] = sText_PkmnSprangUp, + [STRINGID_HMMOVESCANTBEFORGOTTEN - BATTLESTRINGS_TABLE_START] = sText_HMMovesCantBeForgotten, + [STRINGID_XFOUNDONEY - BATTLESTRINGS_TABLE_START] = sText_XFoundOneY, + [STRINGID_PLAYERDEFEATEDTRAINER1 - BATTLESTRINGS_TABLE_START] = sText_PlayerDefeatedLinkTrainerTrainer1, + [STRINGID_SOOTHINGAROMA - BATTLESTRINGS_TABLE_START] = sText_SoothingAroma, + [STRINGID_ITEMSCANTBEUSEDNOW - BATTLESTRINGS_TABLE_START] = sText_ItemsCantBeUsedNow, + [STRINGID_FORXCOMMAYZ - BATTLESTRINGS_TABLE_START] = sText_ForXCommaYZ, + [STRINGID_USINGITEMSTATOFPKMNROSE - BATTLESTRINGS_TABLE_START] = sText_UsingItemTheStatOfPkmnRose, + [STRINGID_PKMNUSEDXTOGETPUMPED - BATTLESTRINGS_TABLE_START] = sText_PkmnUsedXToGetPumped, + [STRINGID_PKMNSXMADEYUSELESS - BATTLESTRINGS_TABLE_START] = sText_PkmnsXMadeYUseless, + [STRINGID_PKMNTRAPPEDBYSANDTOMB - BATTLESTRINGS_TABLE_START] = sText_PkmnTrappedBySandTomb, + [STRINGID_EMPTYSTRING4 - BATTLESTRINGS_TABLE_START] = sText_EmptyString4, + [STRINGID_ABOOSTED - BATTLESTRINGS_TABLE_START] = sText_ABoosted, + [STRINGID_PKMNSXINTENSIFIEDSUN - BATTLESTRINGS_TABLE_START] = sText_PkmnsXIntensifiedSun, + [STRINGID_PKMNMAKESGROUNDMISS - BATTLESTRINGS_TABLE_START] = sText_PkmnMakesGroundMiss, + [STRINGID_YOUTHROWABALLNOWRIGHT - BATTLESTRINGS_TABLE_START] = sText_YouThrowABallNowRight, + [STRINGID_PKMNSXTOOKATTACK - BATTLESTRINGS_TABLE_START] = sText_PkmnsXTookAttack, + [STRINGID_PKMNCHOSEXASDESTINY - BATTLESTRINGS_TABLE_START] = sText_PkmnChoseXAsDestiny, + [STRINGID_PKMNLOSTFOCUS - BATTLESTRINGS_TABLE_START] = sText_PkmnLostFocus, + [STRINGID_USENEXTPKMN - BATTLESTRINGS_TABLE_START] = sText_UseNextPkmn, + [STRINGID_PKMNFLEDUSINGITS - BATTLESTRINGS_TABLE_START] = sText_PkmnFledUsingIts, + [STRINGID_PKMNFLEDUSING - BATTLESTRINGS_TABLE_START] = sText_PkmnFledUsing, + [STRINGID_PKMNWASDRAGGEDOUT - BATTLESTRINGS_TABLE_START] = sText_PkmnWasDraggedOut, + [STRINGID_PREVENTEDFROMWORKING - BATTLESTRINGS_TABLE_START] = sText_PreventedFromWorking, + [STRINGID_PKMNSITEMNORMALIZEDSTATUS - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemNormalizedStatus, + [STRINGID_TRAINER1USEDITEM - BATTLESTRINGS_TABLE_START] = sText_Trainer1UsedItem, + [STRINGID_BOXISFULL - BATTLESTRINGS_TABLE_START] = sText_BoxIsFull, + [STRINGID_PKMNAVOIDEDATTACK - BATTLESTRINGS_TABLE_START] = sText_PkmnAvoidedAttack, + [STRINGID_PKMNSXMADEITINEFFECTIVE - BATTLESTRINGS_TABLE_START] = sText_PkmnsXMadeItIneffective, + [STRINGID_PKMNSXPREVENTSFLINCHING - BATTLESTRINGS_TABLE_START] = sText_PkmnsXPreventsFlinching, + [STRINGID_PKMNALREADYHASBURN - BATTLESTRINGS_TABLE_START] = sText_PkmnAlreadyHasBurn, + [STRINGID_STATSWONTDECREASE2 - BATTLESTRINGS_TABLE_START] = sText_StatsWontDecrease2, + [STRINGID_PKMNSXBLOCKSY2 - BATTLESTRINGS_TABLE_START] = sText_PkmnsXBlocksY2, + [STRINGID_PKMNSXWOREOFF - BATTLESTRINGS_TABLE_START] = sText_PkmnsXWoreOff, + [STRINGID_PKMNRAISEDDEFALITTLE - BATTLESTRINGS_TABLE_START] = sText_PkmnRaisedDefALittle, + [STRINGID_PKMNRAISEDSPDEFALITTLE - BATTLESTRINGS_TABLE_START] = sText_PkmnRaisedSpDefALittle, + [STRINGID_THEWALLSHATTERED - BATTLESTRINGS_TABLE_START] = sText_TheWallShattered, + [STRINGID_PKMNSXPREVENTSYSZ - BATTLESTRINGS_TABLE_START] = sText_PkmnsXPreventsYsZ, + [STRINGID_PKMNSXCUREDITSYPROBLEM - BATTLESTRINGS_TABLE_START] = sText_PkmnsXCuredItsYProblem, + [STRINGID_ATTACKERCANTESCAPE - BATTLESTRINGS_TABLE_START] = sText_AttackerCantEscape, + [STRINGID_PKMNOBTAINEDX - BATTLESTRINGS_TABLE_START] = sText_PkmnObtainedX, + [STRINGID_PKMNOBTAINEDX2 - BATTLESTRINGS_TABLE_START] = sText_PkmnObtainedX2, + [STRINGID_PKMNOBTAINEDXYOBTAINEDZ - BATTLESTRINGS_TABLE_START] = sText_PkmnObtainedXYObtainedZ, + [STRINGID_BUTNOEFFECT - BATTLESTRINGS_TABLE_START] = sText_ButNoEffect, + [STRINGID_PKMNSXHADNOEFFECTONY - BATTLESTRINGS_TABLE_START] = sText_PkmnsXHadNoEffectOnY, + [STRINGID_TWOENEMIESDEFEATED - BATTLESTRINGS_TABLE_START] = sText_TwoInGameTrainersDefeated, + [STRINGID_TRAINER2LOSETEXT - BATTLESTRINGS_TABLE_START] = sText_Trainer2LoseText, + [STRINGID_PKMNINCAPABLEOFPOWER - BATTLESTRINGS_TABLE_START] = sText_PkmnIncapableOfPower, + [STRINGID_GLINTAPPEARSINEYE - BATTLESTRINGS_TABLE_START] = sText_GlintAppearsInEye, + [STRINGID_PKMNGETTINGINTOPOSITION - BATTLESTRINGS_TABLE_START] = sText_PkmnGettingIntoPosition, + [STRINGID_PKMNBEGANGROWLINGDEEPLY - BATTLESTRINGS_TABLE_START] = sText_PkmnBeganGrowlingDeeply, + [STRINGID_PKMNEAGERFORMORE - BATTLESTRINGS_TABLE_START] = sText_PkmnEagerForMore, + [STRINGID_DEFEATEDOPPONENTBYREFEREE - BATTLESTRINGS_TABLE_START] = sText_DefeatedOpponentByReferee, + [STRINGID_LOSTTOOPPONENTBYREFEREE - BATTLESTRINGS_TABLE_START] = sText_LostToOpponentByReferee, + [STRINGID_TIEDOPPONENTBYREFEREE - BATTLESTRINGS_TABLE_START] = sText_TiedOpponentByReferee, + [STRINGID_QUESTIONFORFEITMATCH - BATTLESTRINGS_TABLE_START] = sText_QuestionForfeitMatch, + [STRINGID_FORFEITEDMATCH - BATTLESTRINGS_TABLE_START] = sText_ForfeitedMatch, + [STRINGID_PKMNTRANSFERREDSOMEONESPC - BATTLESTRINGS_TABLE_START] = gText_PkmnTransferredSomeonesPC, + [STRINGID_PKMNTRANSFERREDLANETTESPC - BATTLESTRINGS_TABLE_START] = gText_PkmnTransferredLanettesPC, + [STRINGID_PKMNBOXSOMEONESPCFULL - BATTLESTRINGS_TABLE_START] = gText_PkmnTransferredSomeonesPCBoxFull, + [STRINGID_PKMNBOXLANETTESPCFULL - BATTLESTRINGS_TABLE_START] = gText_PkmnTransferredLanettesPCBoxFull, + [STRINGID_TRAINER1WINTEXT - BATTLESTRINGS_TABLE_START] = sText_Trainer1WinText, + [STRINGID_TRAINER2WINTEXT - BATTLESTRINGS_TABLE_START] = sText_Trainer2WinText, }; const u16 gMissStringIds[] = @@ -2331,14 +2331,14 @@ void BufferStringBattle(u16 stringID) } break; default: // load a string from the table - if (stringID >= BATTLESTRINGS_COUNT + BATTLESTRINGS_ID_ADDER) + if (stringID >= BATTLESTRINGS_COUNT) { gDisplayedStringBattle[0] = EOS; return; } else { - stringPtr = gBattleStringsTable[stringID - BATTLESTRINGS_ID_ADDER]; + stringPtr = gBattleStringsTable[stringID - BATTLESTRINGS_TABLE_START]; } break; } @@ -2400,7 +2400,7 @@ static const u8* TryGetStatusString(u8 *src) { \ GetMonData(&gPlayerParty[monIndex], MON_DATA_NICKNAME, text); \ } \ - StringGetEnd10(text); \ + StringGet_Nickname(text); \ toCpy = text; u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) @@ -2466,49 +2466,49 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) case B_TXT_PLAYER_MON1_NAME: // first player poke name GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_OPPONENT_MON1_NAME: // first enemy poke name GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_PLAYER_MON2_NAME: // second player poke name GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_OPPONENT_MON2_NAME: // second enemy poke name GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_LINK_PLAYER_MON1_NAME: // link first player poke name GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerId].id]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_LINK_OPPONENT_MON1_NAME: // link first opponent poke name GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerId].id ^ 1]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_LINK_PLAYER_MON2_NAME: // link second player poke name GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerId].id ^ 2]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_LINK_OPPONENT_MON2_NAME: // link second opponent poke name GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerId].id ^ 3]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_ATK_NAME_WITH_PREFIX_MON1: // attacker name with prefix, only battlerId 0/1 @@ -2521,7 +2521,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) else GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattlerAttacker)) + 2]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_ATK_NAME_WITH_PREFIX: // attacker name with prefix @@ -2862,7 +2862,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst) { case B_BUFF_STRING: // battle string hword = T1_READ_16(&src[srcID + 1]); - StringAppend(dst, gBattleStringsTable[hword - BATTLESTRINGS_ID_ADDER]); + StringAppend(dst, gBattleStringsTable[hword - BATTLESTRINGS_TABLE_START]); srcID += 3; break; case B_BUFF_NUMBER: // int to string @@ -2903,7 +2903,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst) GetMonData(&gEnemyParty[src[srcID + 2]], MON_DATA_NICKNAME, text); } - StringGetEnd10(text); + StringGet_Nickname(text); StringAppend(dst, text); srcID += 3; break; @@ -2920,7 +2920,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst) GetMonData(&gPlayerParty[src[srcID + 2]], MON_DATA_NICKNAME, dst); else GetMonData(&gEnemyParty[src[srcID + 2]], MON_DATA_NICKNAME, dst); - StringGetEnd10(dst); + StringGet_Nickname(dst); srcID += 3; break; case B_BUFF_NEGATIVE_FLAVOR: // flavor table diff --git a/src/battle_palace.c b/src/battle_palace.c index c4e48a4b2b..0fa65200a6 100644 --- a/src/battle_palace.c +++ b/src/battle_palace.c @@ -93,7 +93,7 @@ static void InitPalaceChallenge(void) if (!(gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode])) gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] = 0; - SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); + SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, WARP_ID_NONE); gTrainerBattleOpponent_A = 0; } diff --git a/src/battle_pike.c b/src/battle_pike.c index d889d7cddf..2b0cf64205 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -17,7 +17,6 @@ #include "constants/battle_frontier.h" #include "constants/frontier_util.h" #include "constants/abilities.h" -#include "constants/easy_chat.h" #include "constants/layouts.h" #include "constants/rgb.h" #include "constants/trainers.h" diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index 48155c8339..9039f60f2c 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -34,7 +34,6 @@ #include "constants/frontier_util.h" #include "constants/items.h" #include "constants/layouts.h" -#include "constants/maps.h" #include "constants/metatile_labels.h" #include "constants/moves.h" #include "constants/trainers.h" @@ -1240,7 +1239,7 @@ static u8 GetPostBattleDirectionHintTextIndex(int *hintType, u8 minDistanceForEx { for (x = 0; x < 32; x++) { - if ((map[x] & METATILE_ID_MASK) == METATILE_BattlePyramid_Exit) + if ((map[x] & MAPGRID_METATILE_ID_MASK) == METATILE_BattlePyramid_Exit) { x += MAP_OFFSET - gObjectEvents[gSelectedObjectEvent].initialCoords.x; y += MAP_OFFSET - gObjectEvents[gSelectedObjectEvent].initialCoords.y; @@ -1466,7 +1465,7 @@ void CopyPyramidTrainerLoseSpeech(u16 trainerId) FrontierSpeechToString(gFacilityTrainers[trainerId].speechLose); } -u8 GetBattlePyramindTrainerEncounterMusicId(u16 trainerId) +u8 GetTrainerEncounterMusicIdInBattlePyramid(u16 trainerId) { int i; @@ -1546,7 +1545,7 @@ void GenerateBattlePyramidFloorLayout(u16 *backupMapData, bool8 setPlayerPositio { for (x = 0; x < mapLayout->width; x++) { - if ((layoutMap[x] & METATILE_ID_MASK) != METATILE_BattlePyramid_Exit) + if ((layoutMap[x] & MAPGRID_METATILE_ID_MASK) != METATILE_BattlePyramid_Exit) { map[x] = layoutMap[x]; } @@ -1557,7 +1556,7 @@ void GenerateBattlePyramidFloorLayout(u16 *backupMapData, bool8 setPlayerPositio gSaveBlock1Ptr->pos.x = (mapLayout->width * (i % 4)) + x; gSaveBlock1Ptr->pos.y = (mapLayout->height * (i / 4)) + y; } - map[x] = (layoutMap[x] & (METATILE_ELEVATION_MASK | METATILE_COLLISION_MASK)) | METATILE_BattlePyramid_Floor; + map[x] = (layoutMap[x] & (MAPGRID_ELEVATION_MASK | MAPGRID_COLLISION_MASK)) | METATILE_BattlePyramid_Floor; } else { diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 391e828502..3c8bbfdee4 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -4009,7 +4009,7 @@ static void Cmd_playanimation(void) } } -// Same as playanimation, expect it takes a pointer to some animation id, instead of taking the value directly +// Same as playanimation, except it takes a pointer to some animation id, instead of taking the value directly static void Cmd_playanimation_var(void) { const u16* argumentPtr; diff --git a/src/battle_setup.c b/src/battle_setup.c index a9d4eeddf5..f928cf3f94 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -43,7 +43,6 @@ #include "constants/items.h" #include "constants/songs.h" #include "constants/map_types.h" -#include "constants/maps.h" #include "constants/trainers.h" #include "constants/trainer_hill.h" #include "constants/weather.h" @@ -687,7 +686,7 @@ u8 BattleSetup_GetTerrainId(void) } if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE113) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE113)) return BATTLE_TERRAIN_SAND; - if (GetSav1Weather() == WEATHER_SANDSTORM) + if (GetSavedWeather() == WEATHER_SANDSTORM) return BATTLE_TERRAIN_SAND; return BATTLE_TERRAIN_PLAIN; @@ -700,7 +699,7 @@ static u8 GetBattleTransitionTypeByMap(void) PlayerGetDestCoords(&x, &y); tileBehavior = MapGridGetMetatileBehaviorAt(x, y); - if (Overworld_GetFlashLevel()) + if (GetFlashLevel()) return TRANSITION_TYPE_FLASH; if (!MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior)) { diff --git a/src/battle_tent.c b/src/battle_tent.c index 26b2e8bb11..53c91c8713 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -114,7 +114,7 @@ static void InitVerdanturfTentChallenge(void) gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; gSaveBlock2Ptr->frontier.challengePaused = FALSE; - SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); + SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, WARP_ID_NONE); } static void GetVerdanturfTentPrize(void) @@ -176,7 +176,7 @@ static void InitFallarborTentChallenge(void) gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; gSaveBlock2Ptr->frontier.challengePaused = FALSE; - SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); + SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, WARP_ID_NONE); } static void GetFallarborTentPrize(void) @@ -231,7 +231,7 @@ static void InitSlateportTentChallenge(void) gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; gSaveBlock2Ptr->frontier.challengePaused = FALSE; - SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); + SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, WARP_ID_NONE); } static void GetSlateportTentPrize(void) diff --git a/src/battle_tower.c b/src/battle_tower.c index d9bd18bf73..989412e9e6 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -35,7 +35,6 @@ #include "constants/trainers.h" #include "constants/event_objects.h" #include "constants/moves.h" -#include "constants/easy_chat.h" extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_MaxieTrainer[]; extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_TabithaTrainer[]; @@ -918,7 +917,7 @@ static void InitTowerChallenge(void) gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] = 0; ValidateBattleTowerRecordChecksums(); - SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); + SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, WARP_ID_NONE); gTrainerBattleOpponent_A = 0; } @@ -1007,7 +1006,7 @@ static bool8 ChooseSpecialBattleTowerTrainer(void) validMons = 0; for (j = 0; j < MAX_FRONTIER_PARTY_SIZE; j++) { - if (gSaveBlock2Ptr->frontier.towerRecords[i].party[j].species != 0 + if (gSaveBlock2Ptr->frontier.towerRecords[i].party[j].species != SPECIES_NONE && gSaveBlock2Ptr->frontier.towerRecords[i].party[j].level <= GetFrontierEnemyMonLevel(lvlMode)) validMons++; } @@ -1665,7 +1664,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount) // Record mixed player. for (j = 0, i = firstMonId; i < firstMonId + monCount; j++, i++) { - if (gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[j].species != 0 + if (gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[j].species != SPECIES_NONE && gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[j].level <= level) { CreateBattleTowerMon_HandleLevel(&gEnemyParty[i], &gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[j], FALSE); @@ -1707,7 +1706,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount) // Ensure this Pokemon's held item isn't a duplicate. for (j = 0; j < i + firstMonId; j++) { - if (GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) != 0 + if (GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) != ITEM_NONE && GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) == gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]) break; } @@ -1828,13 +1827,18 @@ static void FillFactoryFrontierTrainerParty(u16 trainerId, u8 firstMonId) if (trainerId < FRONTIER_TRAINERS_COUNT) { - u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; // Unused variable. + u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); + // By mistake Battle Tower's Level 50 challenge number is used to determine the IVs for Battle Factory. + #ifdef BUGFIX + u8 challengeNum = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] / 7; + #else u8 challengeNum = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][FRONTIER_LVL_50] / 7; + #endif if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < 6) - fixedIV = GetFactoryMonFixedIV(challengeNum, 0); + fixedIV = GetFactoryMonFixedIV(challengeNum, FALSE); else - fixedIV = GetFactoryMonFixedIV(challengeNum, 1); + fixedIV = GetFactoryMonFixedIV(challengeNum, TRUE); // Last trainer in challenge uses higher IVs } else if (trainerId == TRAINER_EREADER) { @@ -2160,7 +2164,7 @@ static void SaveBattleTowerRecord(void) playerRecord->lvlMode = lvlMode; playerRecord->facilityClass = class; CopyTrainerId(playerRecord->trainerId, gSaveBlock2Ptr->playerTrainerId); - StringCopy7(playerRecord->name, gSaveBlock2Ptr->playerName); + StringCopy_PlayerName(playerRecord->name, gSaveBlock2Ptr->playerName); playerRecord->winStreak = GetCurrentBattleTowerWinStreak(lvlMode, battleMode); for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) @@ -2245,7 +2249,7 @@ static void GetRecordMixFriendMultiPartnerParty(u16 trainerId) if (gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[i].species != species1 && gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[i].species != species2 && gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[i].level <= GetFrontierEnemyMonLevel(lvlMode) - && gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[i].species != 0) + && gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[i].species != SPECIES_NONE) { validSpecies[count] = i; count++; @@ -2384,7 +2388,7 @@ static void LoadMultiPartnerCandidatesData(void) if (species1 != gSaveBlock2Ptr->frontier.towerRecords[i].party[j].species && species2 != gSaveBlock2Ptr->frontier.towerRecords[i].party[j].species && gSaveBlock2Ptr->frontier.towerRecords[i].party[j].level <= GetFrontierEnemyMonLevel(lvlMode) - && gSaveBlock2Ptr->frontier.towerRecords[i].party[j].species != 0) + && gSaveBlock2Ptr->frontier.towerRecords[i].party[j].species != SPECIES_NONE) { k++; } @@ -2831,7 +2835,7 @@ static void FillEReaderTrainerWithPlayerData(void) } CopyTrainerId(ereaderTrainer->trainerId, gSaveBlock2Ptr->playerTrainerId); - StringCopy7(ereaderTrainer->name, gSaveBlock2Ptr->playerName); + StringCopy_PlayerName(ereaderTrainer->name, gSaveBlock2Ptr->playerName); ereaderTrainer->winStreak = 1; @@ -3411,7 +3415,7 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount) // Ensure this Pokemon's held item isn't a duplicate. for (j = 0; j < i + firstMonId; j++) { - if (GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) != 0 + if (GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) != ITEM_NONE && GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) == gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]) break; } diff --git a/src/battle_tv.c b/src/battle_tv.c index f65bf73ea0..b9008b47a7 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -570,7 +570,7 @@ void BattleTv_SetDataBasedOnString(u16 stringId) moveSlot = GetBattlerMoveSlotId(gBattlerAttacker, gBattleMsgDataPtr->currentMove); - if (moveSlot >= MAX_MON_MOVES && IsNotSpecialBattleString(stringId) && stringId > BATTLESTRINGS_ID_ADDER) + if (moveSlot >= MAX_MON_MOVES && IsNotSpecialBattleString(stringId) && stringId > BATTLESTRINGS_TABLE_START) { tvPtr->side[atkSide].faintCause = FNT_OTHER; return; diff --git a/src/berry_crush.c b/src/berry_crush.c index 9b8323e2d7..e7a5df951c 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -1947,15 +1947,15 @@ static void DrawPlayerNameWindows(struct BerryCrushGame *game) static void CopyPlayerNameWindowGfxToBg(struct BerryCrushGame *game) { u8 i = 0; - u8 * crusherGfx; + u8 * windowGfx; - LZ77UnCompWram(gBerryCrush_Crusher_Tilemap, gDecompressionBuffer); + LZ77UnCompWram(gBerryCrush_TextWindows_Tilemap, gDecompressionBuffer); - for (crusherGfx = gDecompressionBuffer; i < game->playerCount; i++) + for (windowGfx = gDecompressionBuffer; i < game->playerCount; i++) { CopyToBgTilemapBufferRect( 3, - &crusherGfx[game->gfx.playerCoords[i]->playerId * 40], + &windowGfx[game->gfx.playerCoords[i]->playerId * 40], game->gfx.playerCoords[i]->windowGfxX, game->gfx.playerCoords[i]->windowGfxY, 10, diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 92b1f65d1b..219454ab26 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -92,7 +92,7 @@ static const struct BgTemplate sBackgroundTemplates[] = } }; -static const u16 sFontPalette[] = INCBIN_U16("graphics/interface/berry_tag_screen.gbapal"); +static const u16 sFontPalette[] = INCBIN_U16("graphics/bag/berry_tag_screen.gbapal"); static const u8 sTextColors[2][3] = { diff --git a/src/bike.c b/src/bike.c index 20166392e9..ae30ce288b 100644 --- a/src/bike.c +++ b/src/bike.c @@ -108,7 +108,7 @@ static u8 (*const sAcroBikeInputHandlers[])(u8 *, u16, u16) = }; // used with bikeFrameCounter from mach bike -static const u16 sMachBikeSpeeds[] = {BIKE_SPEED_NORMAL, BIKE_SPEED_FAST, BIKE_SPEED_FASTEST}; +static const u16 sMachBikeSpeeds[] = {PLAYER_SPEED_NORMAL, PLAYER_SPEED_FAST, PLAYER_SPEED_FASTEST}; // this is a list of timers to compare against later, terminated with 0. the only timer being compared against is 4 frames in this list. static const u8 sAcroBikeJumpTimerList[] = {4, 0}; @@ -147,7 +147,7 @@ static u8 GetMachBikeTransition(u8 *dirTraveling) if (*dirTraveling == 0) { *dirTraveling = direction; // update the direction, since below we either faced a direction or we started moving. - if (gPlayerAvatar.bikeSpeed == BIKE_SPEED_STANDING) + if (gPlayerAvatar.bikeSpeed == PLAYER_SPEED_STANDING) { gPlayerAvatar.runningState = NOT_MOVING; return MACH_TRANS_FACE_DIRECTION; @@ -159,7 +159,7 @@ static u8 GetMachBikeTransition(u8 *dirTraveling) // we need to check if the last traveled direction changed from the new direction as well as ensuring that we dont update the state while the player is moving: see the else check. if (*dirTraveling != direction && gPlayerAvatar.runningState != MOVING) { - if (gPlayerAvatar.bikeSpeed != BIKE_SPEED_STANDING) + if (gPlayerAvatar.bikeSpeed != PLAYER_SPEED_STANDING) { *dirTraveling = direction; // implement the new direction gPlayerAvatar.runningState = MOVING; @@ -246,7 +246,7 @@ static void MachBikeTransition_TrySlowDown(u8 direction) { u8 collision; - if (gPlayerAvatar.bikeSpeed != BIKE_SPEED_STANDING) + if (gPlayerAvatar.bikeSpeed != PLAYER_SPEED_STANDING) gPlayerAvatar.bikeFrameCounter = --gPlayerAvatar.bikeSpeed; collision = GetBikeCollision(direction); @@ -306,7 +306,7 @@ static u8 AcroBikeHandleInputNormal(u8 *newDirection, u16 newKeys, u16 heldKeys) return ACRO_TRANS_FACE_DIRECTION; } } - if (*newDirection == direction && (heldKeys & B_BUTTON) && gPlayerAvatar.bikeSpeed == BIKE_SPEED_STANDING) + if (*newDirection == direction && (heldKeys & B_BUTTON) && gPlayerAvatar.bikeSpeed == PLAYER_SPEED_STANDING) { gPlayerAvatar.bikeSpeed++; gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_MOVING; @@ -342,7 +342,7 @@ static u8 AcroBikeHandleInputTurning(u8 *newDirection, u16 newKeys, u16 heldKeys if (*newDirection == AcroBike_GetJumpDirection()) { Bike_SetBikeStill(); // Bike_SetBikeStill sets speed to standing, but the next line immediately overrides it. could have just reset acroBikeState to 0 here instead of wasting a jump. - gPlayerAvatar.bikeSpeed = BIKE_SPEED_NORMAL; + gPlayerAvatar.bikeSpeed = PLAYER_SPEED_NORMAL; if (*newDirection == GetOppositeDirection(direction)) { // do a turn jump. @@ -775,7 +775,7 @@ static void AcroBike_TryHistoryUpdate(u16 newKeys, u16 heldKeys) // newKeys is u else { Bike_UpdateDirTimerHistory(direction); - gPlayerAvatar.bikeSpeed = BIKE_SPEED_STANDING; + gPlayerAvatar.bikeSpeed = PLAYER_SPEED_STANDING; } direction = heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON); // directions is reused for some reason. @@ -787,7 +787,7 @@ static void AcroBike_TryHistoryUpdate(u16 newKeys, u16 heldKeys) // newKeys is u else { Bike_UpdateABStartSelectHistory(direction); - gPlayerAvatar.bikeSpeed = BIKE_SPEED_STANDING; + gPlayerAvatar.bikeSpeed = PLAYER_SPEED_STANDING; } } @@ -900,7 +900,7 @@ static bool8 IsRunningDisallowedByMetatile(u8 tile) { if (MetatileBehavior_IsRunningDisallowed(tile)) return TRUE; - if (MetatileBehavior_IsFortreeBridge(tile) && (PlayerGetZCoord() & 1) == 0) + if (MetatileBehavior_IsFortreeBridge(tile) && (PlayerGetElevation() & 1) == 0) return TRUE; return FALSE; } @@ -994,7 +994,7 @@ void BikeClearState(int newDirHistory, int newAbStartHistory) gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL; gPlayerAvatar.newDirBackup = DIR_NONE; gPlayerAvatar.bikeFrameCounter = 0; - gPlayerAvatar.bikeSpeed = BIKE_SPEED_STANDING; + gPlayerAvatar.bikeSpeed = PLAYER_SPEED_STANDING; gPlayerAvatar.directionHistory = newDirHistory; gPlayerAvatar.abStartSelectHistory = newAbStartHistory; @@ -1014,7 +1014,7 @@ void Bike_UpdateBikeCounterSpeed(u8 counter) static void Bike_SetBikeStill(void) { gPlayerAvatar.bikeFrameCounter = 0; - gPlayerAvatar.bikeSpeed = BIKE_SPEED_STANDING; + gPlayerAvatar.bikeSpeed = PLAYER_SPEED_STANDING; } s16 GetPlayerSpeed(void) @@ -1027,11 +1027,11 @@ s16 GetPlayerSpeed(void) if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_MACH_BIKE) return machSpeeds[gPlayerAvatar.bikeFrameCounter]; else if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_ACRO_BIKE) - return BIKE_SPEED_FASTER; + return PLAYER_SPEED_FASTER; else if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_SURFING | PLAYER_AVATAR_FLAG_DASH)) - return BIKE_SPEED_FAST; + return PLAYER_SPEED_FAST; else - return BIKE_SPEED_NORMAL; + return PLAYER_SPEED_NORMAL; } void Bike_HandleBumpySlopeJump(void) diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index 61fab39e28..876e6b4a73 100644 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -6,7 +6,6 @@ #include "sound.h" #include "task.h" #include "constants/field_effects.h" -#include "constants/maps.h" #include "constants/songs.h" #include "constants/metatile_labels.h" #include "fieldmap.h" @@ -81,9 +80,9 @@ void DoBrailleDigEffect(void) MapGridSetMetatileIdAt( 9 + MAP_OFFSET, 1 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_TopLeft); MapGridSetMetatileIdAt(10 + MAP_OFFSET, 1 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_TopMid); MapGridSetMetatileIdAt(11 + MAP_OFFSET, 1 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_TopRight); - MapGridSetMetatileIdAt( 9 + MAP_OFFSET, 2 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_BottomLeft | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt( 9 + MAP_OFFSET, 2 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_BottomLeft | MAPGRID_COLLISION_MASK); MapGridSetMetatileIdAt(10 + MAP_OFFSET, 2 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_BottomMid); - MapGridSetMetatileIdAt(11 + MAP_OFFSET, 2 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_BottomRight | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(11 + MAP_OFFSET, 2 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_BottomRight | MAPGRID_COLLISION_MASK); DrawWholeMapView(); PlaySE(SE_BANG); FlagSet(FLAG_SYS_BRAILLE_DIG); @@ -208,9 +207,9 @@ static void DoBrailleRegirockEffect(void) MapGridSetMetatileIdAt(7 + MAP_OFFSET, 19 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_TopLeft); MapGridSetMetatileIdAt(8 + MAP_OFFSET, 19 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_TopMid); MapGridSetMetatileIdAt(9 + MAP_OFFSET, 19 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_TopRight); - MapGridSetMetatileIdAt(7 + MAP_OFFSET, 20 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_BottomLeft | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(7 + MAP_OFFSET, 20 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_BottomLeft | MAPGRID_COLLISION_MASK); MapGridSetMetatileIdAt(8 + MAP_OFFSET, 20 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_BottomMid); - MapGridSetMetatileIdAt(9 + MAP_OFFSET, 20 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_BottomRight | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(9 + MAP_OFFSET, 20 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_BottomRight | MAPGRID_COLLISION_MASK); DrawWholeMapView(); PlaySE(SE_BANG); FlagSet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETED); @@ -247,9 +246,9 @@ static void DoBrailleRegisteelEffect(void) MapGridSetMetatileIdAt(7 + MAP_OFFSET, 19 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_TopLeft); MapGridSetMetatileIdAt(8 + MAP_OFFSET, 19 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_TopMid); MapGridSetMetatileIdAt(9 + MAP_OFFSET, 19 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_TopRight); - MapGridSetMetatileIdAt(7 + MAP_OFFSET, 20 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_BottomLeft | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(7 + MAP_OFFSET, 20 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_BottomLeft | MAPGRID_COLLISION_MASK); MapGridSetMetatileIdAt(8 + MAP_OFFSET, 20 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_BottomMid); - MapGridSetMetatileIdAt(9 + MAP_OFFSET, 20 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_BottomRight | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(9 + MAP_OFFSET, 20 + MAP_OFFSET, METATILE_Cave_SealedChamberEntrance_BottomRight | MAPGRID_COLLISION_MASK); DrawWholeMapView(); PlaySE(SE_BANG); FlagSet(FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED); diff --git a/src/cable_car.c b/src/cable_car.c index c3e6564f8d..c81764728b 100644 --- a/src/cable_car.c +++ b/src/cable_car.c @@ -826,7 +826,7 @@ static void CreateCableCarSprites(void) case FALSE: default: // Create player sprite - spriteId = AddPseudoObjectEvent(playerGraphicsIds[gSaveBlock2Ptr->playerGender], SpriteCB_Player, 200, 73, 102); + spriteId = CreateObjectGraphicsSprite(playerGraphicsIds[gSaveBlock2Ptr->playerGender], SpriteCB_Player, 200, 73, 102); if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.priority = 2; @@ -854,7 +854,7 @@ static void CreateCableCarSprites(void) case TRUE: CopyToBgTilemapBufferRect_ChangePalette(0, sCableCar->groundTilemap + 0x24, 24, 26, 12, 3, 17); // Create player sprite - spriteId = AddPseudoObjectEvent(playerGraphicsIds[gSaveBlock2Ptr->playerGender], SpriteCB_Player, 128, 39, 102); + spriteId = CreateObjectGraphicsSprite(playerGraphicsIds[gSaveBlock2Ptr->playerGender], SpriteCB_Player, 128, 39, 102); if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.priority = 2; @@ -891,7 +891,7 @@ static void CreateCableCarSprites(void) if ((rval % 64) == 0) { // Unclear if this was intentional, but the - 1 in the below ARRAY_COUNT means the Zigzagoon is never used - spriteId = AddPseudoObjectEvent(hikerGraphicsIds[rval % (ARRAY_COUNT(hikerGraphicsIds) - 1)], hikerCallbacks[GOING_DOWN], hikerCoords[GOING_DOWN][0], hikerCoords[GOING_DOWN][1], 106); + spriteId = CreateObjectGraphicsSprite(hikerGraphicsIds[rval % (ARRAY_COUNT(hikerGraphicsIds) - 1)], hikerCallbacks[GOING_DOWN], hikerCoords[GOING_DOWN][0], hikerCoords[GOING_DOWN][1], 106); if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.priority = 2; diff --git a/src/cable_club.c b/src/cable_club.c index 1f943b03ab..4ee2797f4d 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -1031,7 +1031,7 @@ void CleanupLinkRoomState(void) LoadPlayerParty(); SavePlayerBag(); } - SetWarpDestinationToDynamicWarp(0x7F); + SetWarpDestinationToDynamicWarp(WARP_ID_DYNAMIC); } void ExitLinkRoom(void) diff --git a/src/contest.c b/src/contest.c index b5a035ff85..ced9f90cde 100644 --- a/src/contest.c +++ b/src/contest.c @@ -2794,7 +2794,7 @@ void CreateContestMonFromParty(u8 partyIndex) gContestMons[gContestPlayerMonIndex].highestRank = 0; gContestMons[gContestPlayerMonIndex].species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES); GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, name); - StringGetEnd10(name); + StringGet_Nickname(name); if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { StripMonNameForLinkContest(name, GetMonData(&gPlayerParty[partyIndex], MON_DATA_LANGUAGE)); diff --git a/src/contest_util.c b/src/contest_util.c index 6fd74a68aa..1ca2175265 100644 --- a/src/contest_util.c +++ b/src/contest_util.c @@ -2253,10 +2253,10 @@ void Task_LinkContest_FinalizeConnection(u8 taskId) { // Succesfully connected for (i = 0; i < CONTESTANT_COUNT; i++) - StringGetEnd10(gContestMons[i].nickname); + StringGet_Nickname(gContestMons[i].nickname); DestroyTask(taskId); - SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); + SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, WARP_ID_NONE); ScriptContext2_Disable(); EnableBothScriptContexts(); } diff --git a/src/crt0.s b/src/crt0.s index 7c679c13b5..523061f52d 100644 --- a/src/crt0.s +++ b/src/crt0.s @@ -6,7 +6,7 @@ .align 2, 0 .global Init -Init: @ 8000204 +Init: mov r0, #PSR_IRQ_MODE msr cpsr_cf, r0 ldr sp, sp_irq @@ -34,7 +34,7 @@ sp_irq: .word IWRAM_END - 0x60 .arm .align 2, 0 .global IntrMain -IntrMain: @ 8000248 +IntrMain: mov r3, #REG_BASE add r3, r3, #OFFSET_REG_IE ldr r2, [r3] diff --git a/src/data/easy_chat/easy_chat_words_by_letter.h b/src/data/easy_chat/easy_chat_words_by_letter.h index a56e3184f7..235afbb786 100755 --- a/src/data/easy_chat/easy_chat_words_by_letter.h +++ b/src/data/easy_chat/easy_chat_words_by_letter.h @@ -1,5 +1,4 @@ #include "easy_chat.h" -#include "constants/easy_chat.h" #define DOUBLE_SPECIES_NAME EC_EMPTY_WORD, 2, diff --git a/src/data/graphics/berries.h b/src/data/graphics/berries.h index eb3f9f4dc7..e33384a846 100644 --- a/src/data/graphics/berries.h +++ b/src/data/graphics/berries.h @@ -1,10 +1,10 @@ -const u32 gBerryCheck_Gfx[] = INCBIN_U32("graphics/interface/check_berry.4bpp.lz"); -const u32 gBerryCheck_Pal[] = INCBIN_U32("graphics/interface/check_berry.gbapal.lz"); +const u32 gBerryCheck_Gfx[] = INCBIN_U32("graphics/bag/check_berry.4bpp.lz"); +const u32 gBerryCheck_Pal[] = INCBIN_U32("graphics/bag/check_berry.gbapal.lz"); -const u32 gBerryTag_Gfx[] = INCBIN_U32("graphics/interface/berry_tag.bin.lz"); -const u32 gBerryTag_Pal[] = INCBIN_U32("graphics/interface/berry_tag_title.bin.lz"); +const u32 gBerryTag_Gfx[] = INCBIN_U32("graphics/bag/berry_tag.bin.lz"); +const u32 gBerryTag_Pal[] = INCBIN_U32("graphics/bag/berry_tag_title.bin.lz"); -const u32 gBerryCheckCircle_Gfx[] = INCBIN_U32("graphics/interface/check_berry_circle.4bpp.lz"); +const u32 gBerryCheckCircle_Gfx[] = INCBIN_U32("graphics/bag/check_berry_circle.4bpp.lz"); const u32 gBerryPic_Cheri[] = INCBIN_U32("graphics/berries/cheri.4bpp.lz"); const u32 gBerryPic_Oran[] = INCBIN_U32("graphics/berries/oran.4bpp.lz"); diff --git a/src/data/graphics/interface_pokeballs.h b/src/data/graphics/interface_pokeballs.h deleted file mode 100644 index fe9a4e5be3..0000000000 --- a/src/data/graphics/interface_pokeballs.h +++ /dev/null @@ -1,37 +0,0 @@ -const u32 gInterfaceGfx_PokeBall[] = INCBIN_U32("graphics/interface/ball/poke.4bpp.lz"); -const u32 gInterfacePal_PokeBall[] = INCBIN_U32("graphics/interface/ball/poke.gbapal.lz"); - -const u32 gInterfaceGfx_GreatBall[] = INCBIN_U32("graphics/interface/ball/great.4bpp.lz"); -const u32 gInterfacePal_GreatBall[] = INCBIN_U32("graphics/interface/ball/great.gbapal.lz"); - -const u32 gInterfaceGfx_SafariBall[] = INCBIN_U32("graphics/interface/ball/safari.4bpp.lz"); -const u32 gInterfacePal_SafariBall[] = INCBIN_U32("graphics/interface/ball/safari.gbapal.lz"); - -const u32 gInterfaceGfx_UltraBall[] = INCBIN_U32("graphics/interface/ball/ultra.4bpp.lz"); -const u32 gInterfacePal_UltraBall[] = INCBIN_U32("graphics/interface/ball/ultra.gbapal.lz"); - -const u32 gInterfaceGfx_MasterBall[] = INCBIN_U32("graphics/interface/ball/master.4bpp.lz"); -const u32 gInterfacePal_MasterBall[] = INCBIN_U32("graphics/interface/ball/master.gbapal.lz"); - -const u32 gInterfaceGfx_NetBall[] = INCBIN_U32("graphics/interface/ball/net.4bpp.lz"); -const u32 gInterfacePal_NetBall[] = INCBIN_U32("graphics/interface/ball/net.gbapal.lz"); - -const u32 gInterfaceGfx_DiveBall[] = INCBIN_U32("graphics/interface/ball/dive.4bpp.lz"); -const u32 gInterfacePal_DiveBall[] = INCBIN_U32("graphics/interface/ball/dive.gbapal.lz"); - -const u32 gInterfaceGfx_NestBall[] = INCBIN_U32("graphics/interface/ball/nest.4bpp.lz"); -const u32 gInterfacePal_NestBall[] = INCBIN_U32("graphics/interface/ball/nest.gbapal.lz"); - -const u32 gInterfaceGfx_RepeatBall[] = INCBIN_U32("graphics/interface/ball/repeat.4bpp.lz"); -const u32 gInterfacePal_RepeatBall[] = INCBIN_U32("graphics/interface/ball/repeat.gbapal.lz"); - -const u32 gInterfaceGfx_TimerBall[] = INCBIN_U32("graphics/interface/ball/timer.4bpp.lz"); -const u32 gInterfacePal_TimerBall[] = INCBIN_U32("graphics/interface/ball/timer.gbapal.lz"); - -const u32 gInterfaceGfx_LuxuryBall[] = INCBIN_U32("graphics/interface/ball/luxury.4bpp.lz"); -const u32 gInterfacePal_LuxuryBall[] = INCBIN_U32("graphics/interface/ball/luxury.gbapal.lz"); - -const u32 gInterfaceGfx_PremierBall[] = INCBIN_U32("graphics/interface/ball/premier.4bpp.lz"); -const u32 gInterfacePal_PremierBall[] = INCBIN_U32("graphics/interface/ball/premier.gbapal.lz"); - -const u32 gOpenPokeballGfx[] = INCBIN_U32("graphics/interface/ball_open.4bpp.lz"); diff --git a/src/data/graphics/pokeballs.h b/src/data/graphics/pokeballs.h new file mode 100644 index 0000000000..8203fca538 --- /dev/null +++ b/src/data/graphics/pokeballs.h @@ -0,0 +1,37 @@ +const u32 gBallGfx_Poke[] = INCBIN_U32("graphics/balls/poke.4bpp.lz"); +const u32 gBallPal_Poke[] = INCBIN_U32("graphics/balls/poke.gbapal.lz"); + +const u32 gBallGfx_Great[] = INCBIN_U32("graphics/balls/great.4bpp.lz"); +const u32 gBallPal_Great[] = INCBIN_U32("graphics/balls/great.gbapal.lz"); + +const u32 gBallGfx_Safari[] = INCBIN_U32("graphics/balls/safari.4bpp.lz"); +const u32 gBallPal_Safari[] = INCBIN_U32("graphics/balls/safari.gbapal.lz"); + +const u32 gBallGfx_Ultra[] = INCBIN_U32("graphics/balls/ultra.4bpp.lz"); +const u32 gBallPal_Ultra[] = INCBIN_U32("graphics/balls/ultra.gbapal.lz"); + +const u32 gBallGfx_Master[] = INCBIN_U32("graphics/balls/master.4bpp.lz"); +const u32 gBallPal_Master[] = INCBIN_U32("graphics/balls/master.gbapal.lz"); + +const u32 gBallGfx_Net[] = INCBIN_U32("graphics/balls/net.4bpp.lz"); +const u32 gBallPal_Net[] = INCBIN_U32("graphics/balls/net.gbapal.lz"); + +const u32 gBallGfx_Dive[] = INCBIN_U32("graphics/balls/dive.4bpp.lz"); +const u32 gBallPal_Dive[] = INCBIN_U32("graphics/balls/dive.gbapal.lz"); + +const u32 gBallGfx_Nest[] = INCBIN_U32("graphics/balls/nest.4bpp.lz"); +const u32 gBallPal_Nest[] = INCBIN_U32("graphics/balls/nest.gbapal.lz"); + +const u32 gBallGfx_Repeat[] = INCBIN_U32("graphics/balls/repeat.4bpp.lz"); +const u32 gBallPal_Repeat[] = INCBIN_U32("graphics/balls/repeat.gbapal.lz"); + +const u32 gBallGfx_Timer[] = INCBIN_U32("graphics/balls/timer.4bpp.lz"); +const u32 gBallPal_Timer[] = INCBIN_U32("graphics/balls/timer.gbapal.lz"); + +const u32 gBallGfx_Luxury[] = INCBIN_U32("graphics/balls/luxury.4bpp.lz"); +const u32 gBallPal_Luxury[] = INCBIN_U32("graphics/balls/luxury.gbapal.lz"); + +const u32 gBallGfx_Premier[] = INCBIN_U32("graphics/balls/premier.4bpp.lz"); +const u32 gBallPal_Premier[] = INCBIN_U32("graphics/balls/premier.gbapal.lz"); + +const u32 gOpenPokeballGfx[] = INCBIN_U32("graphics/balls/open.4bpp.lz"); diff --git a/src/data/items.h b/src/data/items.h index 20ee057da8..072ec1bf5e 100644 --- a/src/data/items.h +++ b/src/data/items.h @@ -3146,7 +3146,7 @@ const struct Item gItems[] = .price = 0, .description = sMachBikeDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_Bike, @@ -3172,7 +3172,7 @@ const struct Item gItems[] = .price = 0, .description = sItemfinderDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_Itemfinder, @@ -3185,7 +3185,7 @@ const struct Item gItems[] = .price = 0, .description = sOldRodDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_Rod, @@ -3199,7 +3199,7 @@ const struct Item gItems[] = .price = 0, .description = sGoodRodDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_Rod, @@ -3213,7 +3213,7 @@ const struct Item gItems[] = .price = 0, .description = sSuperRodDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_Rod, @@ -3310,7 +3310,7 @@ const struct Item gItems[] = .price = 0, .description = sAcroBikeDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_Bike, @@ -3324,7 +3324,7 @@ const struct Item gItems[] = .price = 0, .description = sPokeblockCaseDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_PBLOCK_CASE, .fieldUseFunc = ItemUseOutOfBattle_PokeblockCase, @@ -4322,7 +4322,7 @@ const struct Item gItems[] = .price = 0, .description = sBicycleDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4335,7 +4335,7 @@ const struct Item gItems[] = .price = 0, .description = sTownMapDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4348,7 +4348,7 @@ const struct Item gItems[] = .price = 0, .description = sVSSeekerDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4361,7 +4361,7 @@ const struct Item gItems[] = .price = 0, .description = sFameCheckerDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4374,7 +4374,7 @@ const struct Item gItems[] = .price = 0, .description = sTMCaseDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4387,7 +4387,7 @@ const struct Item gItems[] = .price = 0, .description = sBerryPouchDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4400,7 +4400,7 @@ const struct Item gItems[] = .price = 0, .description = sTeachyTVDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4413,7 +4413,7 @@ const struct Item gItems[] = .price = 0, .description = sTriPassDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4426,7 +4426,7 @@ const struct Item gItems[] = .price = 0, .description = sRainbowPassDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4439,7 +4439,7 @@ const struct Item gItems[] = .price = 0, .description = sTeaDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4452,7 +4452,7 @@ const struct Item gItems[] = .price = 0, .description = sMysticTicketDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4465,7 +4465,7 @@ const struct Item gItems[] = .price = 0, .description = sAuroraTicketDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4478,7 +4478,7 @@ const struct Item gItems[] = .price = 0, .description = sPowderJarDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_PowderJar, @@ -4491,7 +4491,7 @@ const struct Item gItems[] = .price = 0, .description = sRubyDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4504,7 +4504,7 @@ const struct Item gItems[] = .price = 0, .description = sSapphireDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4519,7 +4519,7 @@ const struct Item gItems[] = .price = 0, .description = sMagmaEmblemDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4532,7 +4532,7 @@ const struct Item gItems[] = .price = 0, .description = sOldSeaMapDesc, .importance = 1, - .unk19 = 1, + .registrability = TRUE, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, diff --git a/src/data/lilycove_lady.h b/src/data/lilycove_lady.h index 1f1caa35f3..4a3a7a7194 100644 --- a/src/data/lilycove_lady.h +++ b/src/data/lilycove_lady.h @@ -1,15 +1,14 @@ -#include "constants/easy_chat.h" #include "constants/event_objects.h" #include "constants/items.h" #include "constants/moves.h" static const u16 sContestLadyMonGfxId[] = { - OBJ_EVENT_GFX_ZIGZAGOON_1, - OBJ_EVENT_GFX_SKITTY, - OBJ_EVENT_GFX_POOCHYENA, - OBJ_EVENT_GFX_KECLEON, - OBJ_EVENT_GFX_PIKACHU + [CONTEST_CATEGORY_COOL] = OBJ_EVENT_GFX_ZIGZAGOON_1, + [CONTEST_CATEGORY_BEAUTY] = OBJ_EVENT_GFX_SKITTY, + [CONTEST_CATEGORY_CUTE] = OBJ_EVENT_GFX_POOCHYENA, + [CONTEST_CATEGORY_SMART] = OBJ_EVENT_GFX_KECLEON, + [CONTEST_CATEGORY_TOUGH] = OBJ_EVENT_GFX_PIKACHU }; static const u16 sLilycoveLadyGfxId[] = @@ -434,36 +433,36 @@ static const u16 sFavorLadyPrizes[] = static const u8 *const sContestLadyMonNames[] = { - gText_ContestLady_Handsome, - gText_ContestLady_Vinny, - gText_ContestLady_Moreme, - gText_ContestLady_Ironhard, - gText_ContestLady_Muscle + [CONTEST_CATEGORY_COOL] = gText_ContestLady_Handsome, + [CONTEST_CATEGORY_BEAUTY] = gText_ContestLady_Vinny, + [CONTEST_CATEGORY_CUTE] = gText_ContestLady_Moreme, + [CONTEST_CATEGORY_SMART] = gText_ContestLady_Ironhard, + [CONTEST_CATEGORY_TOUGH] = gText_ContestLady_Muscle }; static const u8 *const sContestLadyCategoryNames[] = { - gText_ContestLady_Coolness, - gText_ContestLady_Beauty, - gText_ContestLady_Cuteness, - gText_ContestLady_Smartness, - gText_ContestLady_Toughness + [CONTEST_CATEGORY_COOL] = gText_ContestLady_Coolness, + [CONTEST_CATEGORY_BEAUTY] = gText_ContestLady_Beauty, + [CONTEST_CATEGORY_CUTE] = gText_ContestLady_Cuteness, + [CONTEST_CATEGORY_SMART] = gText_ContestLady_Smartness, + [CONTEST_CATEGORY_TOUGH] = gText_ContestLady_Toughness }; static const u8 *const sContestNames[] = { - gText_CoolnessContest, - gText_BeautyContest, - gText_CutenessContest, - gText_SmartnessContest, - gText_ToughnessContest + [CONTEST_CATEGORY_COOL] = gText_CoolnessContest, + [CONTEST_CATEGORY_BEAUTY] = gText_BeautyContest, + [CONTEST_CATEGORY_CUTE] = gText_CutenessContest, + [CONTEST_CATEGORY_SMART] = gText_SmartnessContest, + [CONTEST_CATEGORY_TOUGH] = gText_ToughnessContest }; static const u16 sContestLadyMonSpecies[] = { - SPECIES_ZIGZAGOON, - SPECIES_SKITTY, - SPECIES_POOCHYENA, - SPECIES_KECLEON, - SPECIES_PIKACHU + [CONTEST_CATEGORY_COOL] = SPECIES_ZIGZAGOON, + [CONTEST_CATEGORY_BEAUTY] = SPECIES_SKITTY, + [CONTEST_CATEGORY_CUTE] = SPECIES_POOCHYENA, + [CONTEST_CATEGORY_SMART] = SPECIES_KECLEON, + [CONTEST_CATEGORY_TOUGH] = SPECIES_PIKACHU }; diff --git a/src/data/object_events/movement_action_func_tables.h b/src/data/object_events/movement_action_func_tables.h index f601cf82b6..8070e98774 100755 --- a/src/data/object_events/movement_action_func_tables.h +++ b/src/data/object_events/movement_action_func_tables.h @@ -706,8 +706,16 @@ u8 (*const gMovementActionFuncs_WalkNormalRight[])(struct ObjectEvent *, struct MovementAction_PauseSpriteAnim, }; -static const s16 sJumpInitDisplacements[] = {0, 1, 1}; -static const s16 sJumpDisplacements[] = {0, 0, 1}; +static const s16 sJumpInitDisplacements[] = { + [JUMP_DISTANCE_IN_PLACE] = 0, + [JUMP_DISTANCE_NORMAL] = 1, + [JUMP_DISTANCE_FAR] = 1, +}; +static const s16 sJumpDisplacements[] = { + [JUMP_DISTANCE_IN_PLACE] = 0, + [JUMP_DISTANCE_NORMAL] = 0, + [JUMP_DISTANCE_FAR] = 1, +}; u8 (*const gMovementActionFuncs_Jump2Down[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Jump2Down_Step0, diff --git a/src/data/object_events/object_event_anims.h b/src/data/object_events/object_event_anims.h index a5fb414628..f96e52de53 100755 --- a/src/data/object_events/object_event_anims.h +++ b/src/data/object_events/object_event_anims.h @@ -413,56 +413,56 @@ static const union AnimCmd sAnim_GetOnOffSurfBlobEast[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd sAnim_BunnyHoppyBackWheelSouth[] = +static const union AnimCmd sAnim_BunnyHopBackWheelSouth[] = { ANIMCMD_FRAME(9, 4), ANIMCMD_FRAME(10, 4), ANIMCMD_END, }; -static const union AnimCmd sAnim_BunnyHoppyBackWheelNorth[] = +static const union AnimCmd sAnim_BunnyHopBackWheelNorth[] = { ANIMCMD_FRAME(13, 4), ANIMCMD_FRAME(14, 4), ANIMCMD_END, }; -static const union AnimCmd sAnim_BunnyHoppyBackWheelWest[] = +static const union AnimCmd sAnim_BunnyHopBackWheelWest[] = { ANIMCMD_FRAME(17, 4), ANIMCMD_FRAME(18, 4), ANIMCMD_END, }; -static const union AnimCmd sAnim_BunnyHoppyBackWheelEast[] = +static const union AnimCmd sAnim_BunnyHopBackWheelEast[] = { ANIMCMD_FRAME(17, 4, .hFlip = TRUE), ANIMCMD_FRAME(18, 4, .hFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd sAnim_BunnyHoppyFrontWheelSouth[] = +static const union AnimCmd sAnim_BunnyHopFrontWheelSouth[] = { ANIMCMD_FRAME(11, 4), ANIMCMD_FRAME(12, 4), ANIMCMD_END, }; -static const union AnimCmd sAnim_BunnyHoppyFrontWheelNorth[] = +static const union AnimCmd sAnim_BunnyHopFrontWheelNorth[] = { ANIMCMD_FRAME(15, 4), ANIMCMD_FRAME(16, 4), ANIMCMD_END, }; -static const union AnimCmd sAnim_BunnyHoppyFrontWheelWest[] = +static const union AnimCmd sAnim_BunnyHopFrontWheelWest[] = { ANIMCMD_FRAME(19, 4), ANIMCMD_FRAME(20, 4), ANIMCMD_END, }; -static const union AnimCmd sAnim_BunnyHoppyFrontWheelEast[] = +static const union AnimCmd sAnim_BunnyHopFrontWheelEast[] = { ANIMCMD_FRAME(19, 4, .hFlip = TRUE), ANIMCMD_FRAME(20, 4, .hFlip = TRUE), @@ -1024,14 +1024,14 @@ static const union AnimCmd *const sAnimTable_AcroBike[] = { [ANIM_STD_GO_FASTEST_NORTH] = sAnim_GoFastestNorth, [ANIM_STD_GO_FASTEST_WEST] = sAnim_GoFastestWest, [ANIM_STD_GO_FASTEST_EAST] = sAnim_GoFastestEast, - [ANIM_BUNNY_HOPPY_BACK_WHEEL_SOUTH] = sAnim_BunnyHoppyBackWheelSouth, - [ANIM_BUNNY_HOPPY_BACK_WHEEL_NORTH] = sAnim_BunnyHoppyBackWheelNorth, - [ANIM_BUNNY_HOPPY_BACK_WHEEL_WEST] = sAnim_BunnyHoppyBackWheelWest, - [ANIM_BUNNY_HOPPY_BACK_WHEEL_EAST] = sAnim_BunnyHoppyBackWheelEast, - [ANIM_BUNNY_HOPPY_FRONT_WHEEL_SOUTH] = sAnim_BunnyHoppyFrontWheelSouth, - [ANIM_BUNNY_HOPPY_FRONT_WHEEL_NORTH] = sAnim_BunnyHoppyFrontWheelNorth, - [ANIM_BUNNY_HOPPY_FRONT_WHEEL_WEST] = sAnim_BunnyHoppyFrontWheelWest, - [ANIM_BUNNY_HOPPY_FRONT_WHEEL_EAST] = sAnim_BunnyHoppyFrontWheelEast, + [ANIM_BUNNY_HOP_BACK_WHEEL_SOUTH] = sAnim_BunnyHopBackWheelSouth, + [ANIM_BUNNY_HOP_BACK_WHEEL_NORTH] = sAnim_BunnyHopBackWheelNorth, + [ANIM_BUNNY_HOP_BACK_WHEEL_WEST] = sAnim_BunnyHopBackWheelWest, + [ANIM_BUNNY_HOP_BACK_WHEEL_EAST] = sAnim_BunnyHopBackWheelEast, + [ANIM_BUNNY_HOP_FRONT_WHEEL_SOUTH] = sAnim_BunnyHopFrontWheelSouth, + [ANIM_BUNNY_HOP_FRONT_WHEEL_NORTH] = sAnim_BunnyHopFrontWheelNorth, + [ANIM_BUNNY_HOP_FRONT_WHEEL_WEST] = sAnim_BunnyHopFrontWheelWest, + [ANIM_BUNNY_HOP_FRONT_WHEEL_EAST] = sAnim_BunnyHopFrontWheelEast, [ANIM_STANDING_WHEELIE_BACK_WHEEL_SOUTH] = sAnim_StandingWheelieBackWheelSouth, [ANIM_STANDING_WHEELIE_BACK_WHEEL_NORTH] = sAnim_StandingWheelieBackWheelNorth, [ANIM_STANDING_WHEELIE_BACK_WHEEL_WEST] = sAnim_StandingWheelieBackWheelWest, diff --git a/src/data/object_events/object_event_graphics.h b/src/data/object_events/object_event_graphics.h index 81d83a8563..6ee56cc78e 100755 --- a/src/data/object_events/object_event_graphics.h +++ b/src/data/object_events/object_event_graphics.h @@ -305,7 +305,7 @@ const u16 gFieldEffectObjectPalette1[] = INCBIN_U16("graphics/field_effects/pale const u32 gFieldEffectObjectPic_GroundImpactDust[] = INCBIN_U32("graphics/field_effects/pics/ground_impact_dust.4bpp"); const u32 gFieldEffectObjectPic_JumpTallGrass[] = INCBIN_U32("graphics/field_effects/pics/jump_tall_grass.4bpp"); const u32 gUnusedGrass3[] = INCBIN_U32("graphics/field_effects/pics/unused_grass_3.4bpp"); -const u32 gFieldEffectObjectPic_JumpLongGrass[] = INCBIN_U32("graphics/field_effects/pics/unknown_16.4bpp"); +const u32 gFieldEffectObjectPic_JumpLongGrass[] = INCBIN_U32("graphics/field_effects/pics/jump_long_grass.4bpp"); const u32 gFieldEffectObjectPic_Unknown17[] = INCBIN_U32("graphics/field_effects/pics/unknown_17.4bpp"); const u32 gFieldEffectObjectPic_UnusedGrass2[] = INCBIN_U32("graphics/field_effects/pics/unused_grass_2.4bpp"); const u32 gFieldEffectObjectPic_LongGrass[] = INCBIN_U32("graphics/field_effects/pics/long_grass.4bpp"); diff --git a/src/data/object_events/object_event_subsprites.h b/src/data/object_events/object_event_subsprites.h index b508509cad..8084919927 100755 --- a/src/data/object_events/object_event_subsprites.h +++ b/src/data/object_events/object_event_subsprites.h @@ -78,12 +78,12 @@ static const struct Subsprite sOamTable_16x16_4[] = { }; static const struct SubspriteTable sOamTables_16x16[] = { - {0, NULL}, - {1, sOamTable_16x16_0}, - {1, sOamTable_16x16_1}, - {2, sOamTable_16x16_2}, - {2, sOamTable_16x16_3}, - {2, sOamTable_16x16_4} + {}, + {ARRAY_COUNT(sOamTable_16x16_0), sOamTable_16x16_0}, + {ARRAY_COUNT(sOamTable_16x16_1), sOamTable_16x16_1}, + {ARRAY_COUNT(sOamTable_16x16_2), sOamTable_16x16_2}, + {ARRAY_COUNT(sOamTable_16x16_3), sOamTable_16x16_3}, + {ARRAY_COUNT(sOamTable_16x16_4), sOamTable_16x16_4} }; static const struct Subsprite sOamTable_16x32_0[] = { @@ -174,12 +174,12 @@ static const struct Subsprite sOamTable_16x32_4[] = { }; static const struct SubspriteTable sOamTables_16x32[] = { - {0, NULL}, - {1, sOamTable_16x32_0}, - {1, sOamTable_16x32_1}, - {3, sOamTable_16x32_2}, - {2, sOamTable_16x32_3}, - {2, sOamTable_16x32_4} + {}, + {ARRAY_COUNT(sOamTable_16x32_0), sOamTable_16x32_0}, + {ARRAY_COUNT(sOamTable_16x32_1), sOamTable_16x32_1}, + {ARRAY_COUNT(sOamTable_16x32_2), sOamTable_16x32_2}, + {ARRAY_COUNT(sOamTable_16x32_3), sOamTable_16x32_3}, + {ARRAY_COUNT(sOamTable_16x32_4), sOamTable_16x32_4} }; static const struct Subsprite sOamTable_32x32_0[] = { @@ -270,12 +270,12 @@ static const struct Subsprite sOamTable_32x32_4[] = { }; static const struct SubspriteTable sOamTables_32x32[] = { - {0, NULL}, - {1, sOamTable_32x32_0}, - {1, sOamTable_32x32_1}, - {3, sOamTable_32x32_2}, - {2, sOamTable_32x32_3}, - {2, sOamTable_32x32_4} + {}, + {ARRAY_COUNT(sOamTable_32x32_0), sOamTable_32x32_0}, + {ARRAY_COUNT(sOamTable_32x32_1), sOamTable_32x32_1}, + {ARRAY_COUNT(sOamTable_32x32_2), sOamTable_32x32_2}, + {ARRAY_COUNT(sOamTable_32x32_3), sOamTable_32x32_3}, + {ARRAY_COUNT(sOamTable_32x32_4), sOamTable_32x32_4} }; static const struct Subsprite sOamTable_48x48[] = { @@ -378,12 +378,12 @@ static const struct Subsprite sOamTable_48x48[] = { }; static const struct SubspriteTable sOamTables_48x48[] = { - {12, sOamTable_48x48}, - {12, sOamTable_48x48}, - {12, sOamTable_48x48}, - {12, sOamTable_48x48}, - {12, sOamTable_48x48}, - {12, sOamTable_48x48} + {ARRAY_COUNT(sOamTable_48x48), sOamTable_48x48}, + {ARRAY_COUNT(sOamTable_48x48), sOamTable_48x48}, + {ARRAY_COUNT(sOamTable_48x48), sOamTable_48x48}, + {ARRAY_COUNT(sOamTable_48x48), sOamTable_48x48}, + {ARRAY_COUNT(sOamTable_48x48), sOamTable_48x48}, + {ARRAY_COUNT(sOamTable_48x48), sOamTable_48x48} }; static const struct Subsprite sOamTable_64x32_0[] = { @@ -432,12 +432,12 @@ static const struct Subsprite sOamTable_64x32_3[] = { // Unused static const struct SubspriteTable sOamTables_64x32[] = { - {0, NULL}, - {1, sOamTable_64x32_0}, - {1, sOamTable_64x32_1}, - {1, sOamTable_64x32_2}, - {1, sOamTable_64x32_3}, - {1, sOamTable_64x32_3} + {}, + {ARRAY_COUNT(sOamTable_64x32_0), sOamTable_64x32_0}, + {ARRAY_COUNT(sOamTable_64x32_1), sOamTable_64x32_1}, + {ARRAY_COUNT(sOamTable_64x32_2), sOamTable_64x32_2}, + {ARRAY_COUNT(sOamTable_64x32_3), sOamTable_64x32_3}, + {ARRAY_COUNT(sOamTable_64x32_3), sOamTable_64x32_3} }; static const struct Subsprite sOamTable_64x64_0[] = { @@ -485,12 +485,12 @@ static const struct Subsprite sOamTable_64x64_3[] = { }; static const struct SubspriteTable sOamTables_64x64[] = { - {0, NULL}, - {1, sOamTable_64x64_0}, - {1, sOamTable_64x64_1}, - {1, sOamTable_64x64_2}, - {1, sOamTable_64x64_3}, - {1, sOamTable_64x64_3} + {}, + {ARRAY_COUNT(sOamTable_64x64_0), sOamTable_64x64_0}, + {ARRAY_COUNT(sOamTable_64x64_1), sOamTable_64x64_1}, + {ARRAY_COUNT(sOamTable_64x64_2), sOamTable_64x64_2}, + {ARRAY_COUNT(sOamTable_64x64_3), sOamTable_64x64_3}, + {ARRAY_COUNT(sOamTable_64x64_3), sOamTable_64x64_3} }; static const struct Subsprite sOamTable_96x40_0[] = { @@ -987,12 +987,12 @@ static const struct Subsprite sOamTable_96x40_3[] = { // Used by SS Tidal static const struct SubspriteTable sOamTables_96x40[] = { - {15, sOamTable_96x40_0}, - {15, sOamTable_96x40_0}, - {15, sOamTable_96x40_1}, - {15, sOamTable_96x40_2}, - {15, sOamTable_96x40_3}, - {15, sOamTable_96x40_3} + {ARRAY_COUNT(sOamTable_96x40_0), sOamTable_96x40_0}, + {ARRAY_COUNT(sOamTable_96x40_0), sOamTable_96x40_0}, + {ARRAY_COUNT(sOamTable_96x40_1), sOamTable_96x40_1}, + {ARRAY_COUNT(sOamTable_96x40_2), sOamTable_96x40_2}, + {ARRAY_COUNT(sOamTable_96x40_3), sOamTable_96x40_3}, + {ARRAY_COUNT(sOamTable_96x40_3), sOamTable_96x40_3} }; static const struct Subsprite sOamTable_88x32_0[] = { @@ -1521,10 +1521,10 @@ static const struct Subsprite sOamTable_88x32_3[] = { // Used by Submarine Shadow static const struct SubspriteTable sOamTables_88x32[] = { - {16, sOamTable_88x32_0}, - {16, sOamTable_88x32_0}, - {16, sOamTable_88x32_1}, - {16, sOamTable_88x32_2}, - {16, sOamTable_88x32_3}, - {16, sOamTable_88x32_3} + {ARRAY_COUNT(sOamTable_88x32_0), sOamTable_88x32_0}, + {ARRAY_COUNT(sOamTable_88x32_0), sOamTable_88x32_0}, + {ARRAY_COUNT(sOamTable_88x32_1), sOamTable_88x32_1}, + {ARRAY_COUNT(sOamTable_88x32_2), sOamTable_88x32_2}, + {ARRAY_COUNT(sOamTable_88x32_3), sOamTable_88x32_3}, + {ARRAY_COUNT(sOamTable_88x32_3), sOamTable_88x32_3} }; diff --git a/src/data/party_menu.h b/src/data/party_menu.h index f3a8a50ec0..7735dae58d 100644 --- a/src/data/party_menu.h +++ b/src/data/party_menu.h @@ -1,3 +1,9 @@ +enum { + TAG_POKEBALL = 1200, + TAG_POKEBALL_SMALL, + TAG_STATUS_ICONS, +}; + static const struct BgTemplate sPartyMenuBgTemplates[] = { { @@ -112,8 +118,8 @@ static const u8 sPartyMenuSpriteCoords[PARTY_LAYOUT_COUNT][PARTY_SIZE][4 * 2] = }; // Used only when both Cancel and Confirm are present -static const u32 sConfirmButton_Tilemap[] = INCBIN_U32("graphics/interface/party_menu_confirm_button.bin"); -static const u32 sCancelButton_Tilemap[] = INCBIN_U32("graphics/interface/party_menu_cancel_button.bin"); +static const u32 sConfirmButton_Tilemap[] = INCBIN_U32("graphics/party_menu/confirm_button.bin"); +static const u32 sCancelButton_Tilemap[] = INCBIN_U32("graphics/party_menu/cancel_button.bin"); // Text colors for BG, FG, and Shadow in that order static const u8 sFontColorTable[][3] = @@ -565,34 +571,14 @@ static const struct WindowTemplate sUnusedWindowTemplate2 = .baseBlock = 0x39D, }; -// Tile nums -static const u8 sMainSlotTileNums[] = {24, 25, 25, 25, 25, 25, 25, 25, 25, 26, - 32, 33, 33, 33, 33, 33, 33, 33, 33, 34, - 32, 33, 33, 33, 33, 33, 33, 33, 33, 34, - 32, 33, 33, 33, 33, 33, 33, 33, 33, 34, - 40, 59, 60, 58, 58, 58, 58, 58, 58, 61, - 15, 16, 16, 16, 16, 16, 16, 16, 16, 17, - 46, 47, 47, 47, 47, 47, 47, 47, 47, 48}; - -static const u8 sMainSlotTileNums_Egg[] = {24, 25, 25, 25, 25, 25, 25, 25, 25, 26, - 32, 33, 33, 33, 33, 33, 33, 33, 33, 34, - 32, 33, 33, 33, 33, 33, 33, 33, 33, 34, - 32, 33, 33, 33, 33, 33, 33, 33, 33, 34, - 40, 41, 41, 41, 41, 41, 41, 41, 41, 42, - 15, 16, 16, 16, 16, 16, 16, 16, 16, 17, - 46, 47, 47, 47, 47, 47, 47, 47, 47, 48}; - -static const u8 sOtherSlotsTileNums[] = {43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, - 49, 33, 33, 33, 33, 33, 33, 33, 33, 52, 53, 51, 51, 51, 51, 51, 51, 54, - 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57}; - -static const u8 sOtherSlotsTileNums_Egg[] = {43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, - 49, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 50, - 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57}; - -static const u8 sEmptySlotTileNums[] = {21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, - 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, - 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39}; +// Plain tilemaps for party menu slots. +// The versions with no HP bar are used by eggs, and in certain displays like registering at a battle facility. +// There is no empty version of the main slot because it shouldn't ever be empty. +static const u8 sSlotTilemap_Main[] = INCBIN_U8("graphics/party_menu/slot_main.bin"); +static const u8 sSlotTilemap_MainNoHP[] = INCBIN_U8("graphics/party_menu/slot_main_no_hp.bin"); +static const u8 sSlotTilemap_Wide[] = INCBIN_U8("graphics/party_menu/slot_wide.bin"); +static const u8 sSlotTilemap_WideNoHP[] = INCBIN_U8("graphics/party_menu/slot_wide_no_hp.bin"); +static const u8 sSlotTilemap_WideEmpty[] = INCBIN_U8("graphics/party_menu/slot_wide_empty.bin"); // Palette offsets static const u8 sGenderPalOffsets[] = {11, 12}; @@ -873,8 +859,8 @@ static const u8 *const sUnionRoomTradeMessages[] = [UR_TRADE_MSG_CANT_TRADE_WITH_PARTNER_2 - 1] = gText_CantTradeWithTrainer, }; -static const u32 sHeldItemGfx[] = INCBIN_U32("graphics/interface/hold_icons.4bpp"); -static const u16 sHeldItemPalette[] = INCBIN_U16("graphics/interface/hold_icons.gbapal"); +static const u32 sHeldItemGfx[] = INCBIN_U32("graphics/party_menu/hold_icons.4bpp"); +static const u16 sHeldItemPalette[] = INCBIN_U16("graphics/party_menu/hold_icons.gbapal"); static const struct OamData sOamData_HeldItem = { @@ -969,19 +955,19 @@ static const union AnimCmd *const sSpriteAnimTable_MenuPokeball[] = static const struct CompressedSpriteSheet sSpriteSheet_MenuPokeball = { - gPartyMenuPokeball_Gfx, 0x400, 0x04b0 + gPartyMenuPokeball_Gfx, 0x400, TAG_POKEBALL }; static const struct CompressedSpritePalette sSpritePalette_MenuPokeball = { - gPartyMenuPokeball_Pal, 0x04b0 + gPartyMenuPokeball_Pal, TAG_POKEBALL }; // Used for the pokeball sprite on each party slot / Cancel button static const struct SpriteTemplate sSpriteTemplate_MenuPokeball = { - .tileTag = 0x04b0, - .paletteTag = 0x04b0, + .tileTag = TAG_POKEBALL, + .paletteTag = TAG_POKEBALL, .oam = &sOamData_MenuPokeball, .anims = sSpriteAnimTable_MenuPokeball, .images = NULL, @@ -1055,14 +1041,14 @@ static const union AnimCmd *const sSpriteAnimTable_MenuPokeballSmall[] = static const struct CompressedSpriteSheet sSpriteSheet_MenuPokeballSmall = { - gPartyMenuPokeballSmall_Gfx, 0x0300, 0x04b1 + gPartyMenuPokeballSmall_Gfx, 0x0300, TAG_POKEBALL_SMALL }; // Used for the pokeball sprite next to Cancel and Confirm when both are present, otherwise sSpriteTemplate_MenuPokeball is used static const struct SpriteTemplate sSpriteTemplate_MenuPokeballSmall = { - .tileTag = 1201, - .paletteTag = 1200, + .tileTag = TAG_POKEBALL_SMALL, + .paletteTag = TAG_POKEBALL, .oam = &sOamData_MenuPokeballSmall, .anims = sSpriteAnimTable_MenuPokeballSmall, .images = NULL, @@ -1149,18 +1135,18 @@ static const union AnimCmd *const sSpriteTemplate_StatusCondition[] = static const struct CompressedSpriteSheet sSpriteSheet_StatusIcons = { - gStatusGfx_Icons, 0x400, 1202 + gStatusGfx_Icons, 0x400, TAG_STATUS_ICONS }; static const struct CompressedSpritePalette sSpritePalette_StatusIcons = { - gStatusPal_Icons, 1202 + gStatusPal_Icons, TAG_STATUS_ICONS }; static const struct SpriteTemplate sSpriteTemplate_StatusIcons = { - .tileTag = 1202, - .paletteTag = 1202, + .tileTag = TAG_STATUS_ICONS, + .paletteTag = TAG_STATUS_ICONS, .oam = &sOamData_StatusCondition, .anims = sSpriteTemplate_StatusCondition, .images = NULL, diff --git a/src/data/pokedex_area_glow.h b/src/data/pokedex_area_glow.h new file mode 100644 index 0000000000..ff24d8d6c0 --- /dev/null +++ b/src/data/pokedex_area_glow.h @@ -0,0 +1,315 @@ +// These tile numbers correspond to the 8x8 tiles in graphics/pokedex/area_glow.png +// Left/Right/Top/Bottom are shortened to L/R/T/B +enum { + GLOW_TILE_EMPTY, + GLOW_TILE_EDGE_R, + GLOW_TILE_EDGE_L, + GLOW_TILE_EDGE_L_R, + GLOW_TILE_EDGE_B, + GLOW_TILE_EDGE_B_R, + GLOW_TILE_EDGE_B_L, + GLOW_TILE_EDGE_B_L_R, + GLOW_TILE_EDGE_T, + GLOW_TILE_EDGE_T_R, + GLOW_TILE_EDGE_T_L, + GLOW_TILE_EDGE_T_L_R, + GLOW_TILE_EDGE_T_B, + GLOW_TILE_EDGE_T_B_R, + GLOW_TILE_EDGE_T_B_L, + GLOW_TILE_EDGE_T_B_L_R, // This tile has a misplaced pixel in the top-left corner + GLOW_TILE_FULL, + GLOW_TILE_CORNER_TL, + GLOW_TILE_CORNER_BL, + GLOW_TILE_CORNER_BL_TL, + GLOW_TILE_CORNER_TR, + GLOW_TILE_CORNER_TR_TL, + GLOW_TILE_CORNER_TR_BL, + GLOW_TILE_CORNER_TR_BL_TL, + GLOW_TILE_CORNER_BR, + GLOW_TILE_CORNER_BR_TL, + GLOW_TILE_CORNER_BR_BL, + GLOW_TILE_CORNER_BR_BL_TL, + GLOW_TILE_CORNER_BR_TR, + GLOW_TILE_CORNER_BR_TR_TL, + GLOW_TILE_CORNER_BR_TR_BL, + GLOW_TILE_CORNER_BR_TR_BL_TL, + GLOW_TILE_EDGE_R_CORNER_TL, + GLOW_TILE_EDGE_R_CORNER_BL, + GLOW_TILE_EDGE_R_CORNER_BL_TL, + GLOW_TILE_EDGE_L_CORNER_TR, + GLOW_TILE_EDGE_L_CORNER_BR, + GLOW_TILE_EDGE_L_CORNER_BR_TR, + GLOW_TILE_EDGE_B_CORNER_TR, + GLOW_TILE_EDGE_B_CORNER_TL, + GLOW_TILE_EDGE_B_CORNER_TL_TR, + GLOW_TILE_EDGE_T_CORNER_BR, + GLOW_TILE_EDGE_T_CORNER_BL, + GLOW_TILE_EDGE_T_CORNER_BL_BR, + GLOW_TILE_EDGE_B_L_CORNER_TR, + GLOW_TILE_EDGE_B_R_CORNER_TL, + GLOW_TILE_EDGE_T_R_CORNER_BL, + GLOW_TILE_EDGE_T_L_CORNER_BR +}; + +// This array converts a set of glow position flags to one of the above tile values. +// Only some parts of this array are actually used, because corner flags that overlap +// with edge flags are cancelled out before lookup. For example, GLOW_CORNER_TL | GLOW_EDGE_L +// will never be read, and has the same value as GLOW_EDGE_L. +static const u8 sAreaGlowTilemapMapping[] = { + [0] = GLOW_TILE_EMPTY, + [GLOW_EDGE_R] = GLOW_TILE_EDGE_R, + [GLOW_EDGE_L] = GLOW_TILE_EDGE_L, + [GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_L_R, + [GLOW_EDGE_B] = GLOW_TILE_EDGE_B, + [GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_R, + [GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_B_L, + [GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_L_R, + [GLOW_EDGE_T] = GLOW_TILE_EDGE_T, + [GLOW_EDGE_T | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_R, + [GLOW_EDGE_T | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_L, + [GLOW_EDGE_T | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_L_R, + [GLOW_EDGE_T | GLOW_EDGE_B] = GLOW_TILE_EDGE_T_B, + [GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_R, + [GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_B_L, + [GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_L_R, + [GLOW_CORNER_TL] = GLOW_TILE_CORNER_TL, + [GLOW_CORNER_TL | GLOW_EDGE_R] = GLOW_TILE_EDGE_R_CORNER_TL, + [GLOW_CORNER_TL | GLOW_EDGE_L] = GLOW_TILE_EDGE_L, + [GLOW_CORNER_TL | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_L_R, + [GLOW_CORNER_TL | GLOW_EDGE_B] = GLOW_TILE_EDGE_B_CORNER_TL, + [GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_R_CORNER_TL, + [GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_B_L, + [GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_L_R, + [GLOW_CORNER_TL | GLOW_EDGE_T] = GLOW_TILE_EDGE_T, + [GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_R, + [GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_L, + [GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_L_R, + [GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B] = GLOW_TILE_EDGE_T_B, + [GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_R, + [GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_B_L, + [GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_L_R, + [GLOW_CORNER_BL] = GLOW_TILE_CORNER_BL, + [GLOW_CORNER_BL | GLOW_EDGE_R] = GLOW_TILE_EDGE_R_CORNER_BL, + [GLOW_CORNER_BL | GLOW_EDGE_L] = GLOW_TILE_EDGE_L, + [GLOW_CORNER_BL | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_L_R, + [GLOW_CORNER_BL | GLOW_EDGE_B] = GLOW_TILE_EDGE_B, + [GLOW_CORNER_BL | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_R, + [GLOW_CORNER_BL | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_B_L, + [GLOW_CORNER_BL | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_L_R, + [GLOW_CORNER_BL | GLOW_EDGE_T] = GLOW_TILE_EDGE_T_CORNER_BL, + [GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_R_CORNER_BL, + [GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_L, + [GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_L_R, + [GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_B] = GLOW_TILE_EDGE_T_B, + [GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_R, + [GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_B_L, + [GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_L_R, + [GLOW_CORNER_BL | GLOW_CORNER_TL] = GLOW_TILE_CORNER_BL_TL, + [GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_R] = GLOW_TILE_EDGE_R_CORNER_BL_TL, + [GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_L] = GLOW_TILE_EDGE_L, + [GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_L_R, + [GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_B] = GLOW_TILE_EDGE_B_CORNER_TL, + [GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_R_CORNER_TL, + [GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_B_L, + [GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_L_R, + [GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T] = GLOW_TILE_EDGE_T_CORNER_BL, + [GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_R_CORNER_BL, + [GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_L, + [GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_L_R, + [GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B] = GLOW_TILE_EDGE_T_B, + [GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_R, + [GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_B_L, + [GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_L_R, + [GLOW_CORNER_TR] = GLOW_TILE_CORNER_TR, + [GLOW_CORNER_TR | GLOW_EDGE_R] = GLOW_TILE_EDGE_R, + [GLOW_CORNER_TR | GLOW_EDGE_L] = GLOW_TILE_EDGE_L_CORNER_TR, + [GLOW_CORNER_TR | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_L_R, + [GLOW_CORNER_TR | GLOW_EDGE_B] = GLOW_TILE_EDGE_B_CORNER_TR, + [GLOW_CORNER_TR | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_R, + [GLOW_CORNER_TR | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_B_L_CORNER_TR, + [GLOW_CORNER_TR | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_L_R, + [GLOW_CORNER_TR | GLOW_EDGE_T] = GLOW_TILE_EDGE_T, + [GLOW_CORNER_TR | GLOW_EDGE_T | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_R, + [GLOW_CORNER_TR | GLOW_EDGE_T | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_L, + [GLOW_CORNER_TR | GLOW_EDGE_T | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_L_R, + [GLOW_CORNER_TR | GLOW_EDGE_T | GLOW_EDGE_B] = GLOW_TILE_EDGE_T_B, + [GLOW_CORNER_TR | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_R, + [GLOW_CORNER_TR | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_B_L, + [GLOW_CORNER_TR | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_L_R, + [GLOW_CORNER_TR | GLOW_CORNER_TL] = GLOW_TILE_CORNER_TR_TL, + [GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_R] = GLOW_TILE_EDGE_R_CORNER_TL, + [GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_L] = GLOW_TILE_EDGE_L_CORNER_TR, + [GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_L_R, + [GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_B] = GLOW_TILE_EDGE_B_CORNER_TL_TR, + [GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_R_CORNER_TL, + [GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_B_L_CORNER_TR, + [GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_L_R, + [GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_T] = GLOW_TILE_EDGE_T, + [GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_R, + [GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_L, + [GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_L_R, + [GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B] = GLOW_TILE_EDGE_T_B, + [GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_R, + [GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_B_L, + [GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_L_R, + [GLOW_CORNER_TR | GLOW_CORNER_BL] = GLOW_TILE_CORNER_TR_BL, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_R] = GLOW_TILE_EDGE_R_CORNER_BL, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_L] = GLOW_TILE_EDGE_L_CORNER_TR, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_L_R, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_B] = GLOW_TILE_EDGE_B_CORNER_TR, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_R, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_B_L_CORNER_TR, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_L_R, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_T] = GLOW_TILE_EDGE_T_CORNER_BL, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_R_CORNER_BL, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_L, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_L_R, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_B] = GLOW_TILE_EDGE_T_B, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_R, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_B_L, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_L_R, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL] = GLOW_TILE_CORNER_TR_BL_TL, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_R] = GLOW_TILE_EDGE_R_CORNER_BL_TL, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_L] = GLOW_TILE_EDGE_L_CORNER_TR, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_L_R, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_B] = GLOW_TILE_EDGE_B_CORNER_TL_TR, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_R_CORNER_TL, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_B_L_CORNER_TR, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_L_R, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T] = GLOW_TILE_EDGE_T_CORNER_BL, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_R_CORNER_BL, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_L, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_L_R, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B] = GLOW_TILE_EDGE_T_B, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_R, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_B_L, + [GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_L_R, + [GLOW_CORNER_BR] = GLOW_TILE_CORNER_BR, + [GLOW_CORNER_BR | GLOW_EDGE_R] = GLOW_TILE_EDGE_R, + [GLOW_CORNER_BR | GLOW_EDGE_L] = GLOW_TILE_EDGE_L_CORNER_BR, + [GLOW_CORNER_BR | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_L_R, + [GLOW_CORNER_BR | GLOW_EDGE_B] = GLOW_TILE_EDGE_B, + [GLOW_CORNER_BR | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_R, + [GLOW_CORNER_BR | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_B_L, + [GLOW_CORNER_BR | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_L_R, + [GLOW_CORNER_BR | GLOW_EDGE_T] = GLOW_TILE_EDGE_T_CORNER_BR, + [GLOW_CORNER_BR | GLOW_EDGE_T | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_R, + [GLOW_CORNER_BR | GLOW_EDGE_T | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_L_CORNER_BR, + [GLOW_CORNER_BR | GLOW_EDGE_T | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_L_R, + [GLOW_CORNER_BR | GLOW_EDGE_T | GLOW_EDGE_B] = GLOW_TILE_EDGE_T_B, + [GLOW_CORNER_BR | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_R, + [GLOW_CORNER_BR | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_B_L, + [GLOW_CORNER_BR | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TL] = GLOW_TILE_CORNER_BR_TL, + [GLOW_CORNER_BR | GLOW_CORNER_TL | GLOW_EDGE_R] = GLOW_TILE_EDGE_R_CORNER_TL, + [GLOW_CORNER_BR | GLOW_CORNER_TL | GLOW_EDGE_L] = GLOW_TILE_EDGE_L_CORNER_BR, + [GLOW_CORNER_BR | GLOW_CORNER_TL | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TL | GLOW_EDGE_B] = GLOW_TILE_EDGE_B_CORNER_TL, + [GLOW_CORNER_BR | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_R_CORNER_TL, + [GLOW_CORNER_BR | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_B_L, + [GLOW_CORNER_BR | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TL | GLOW_EDGE_T] = GLOW_TILE_EDGE_T_CORNER_BR, + [GLOW_CORNER_BR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_R, + [GLOW_CORNER_BR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_L_CORNER_BR, + [GLOW_CORNER_BR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B] = GLOW_TILE_EDGE_T_B, + [GLOW_CORNER_BR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_R, + [GLOW_CORNER_BR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_B_L, + [GLOW_CORNER_BR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_BL] = GLOW_TILE_CORNER_BR_BL, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_EDGE_R] = GLOW_TILE_EDGE_R_CORNER_BL, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_EDGE_L] = GLOW_TILE_EDGE_L_CORNER_BR, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_EDGE_B] = GLOW_TILE_EDGE_B, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_R, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_B_L, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_EDGE_T] = GLOW_TILE_EDGE_T_CORNER_BL_BR, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_R_CORNER_BL, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_L_CORNER_BR, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_B] = GLOW_TILE_EDGE_T_B, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_R, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_B_L, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_CORNER_TL] = GLOW_TILE_CORNER_BR_BL_TL, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_R] = GLOW_TILE_EDGE_R_CORNER_BL_TL, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_L] = GLOW_TILE_EDGE_L_CORNER_BR, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_B] = GLOW_TILE_EDGE_B_CORNER_TL, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_R_CORNER_TL, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_B_L, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T] = GLOW_TILE_EDGE_T_CORNER_BL_BR, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_R_CORNER_BL, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_L_CORNER_BR, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B] = GLOW_TILE_EDGE_T_B, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_R, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_B_L, + [GLOW_CORNER_BR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR] = GLOW_TILE_CORNER_BR_TR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_EDGE_R] = GLOW_TILE_EDGE_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_EDGE_L] = GLOW_TILE_EDGE_L_CORNER_BR_TR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_EDGE_B] = GLOW_TILE_EDGE_B_CORNER_TR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_B_L_CORNER_TR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_EDGE_T] = GLOW_TILE_EDGE_T_CORNER_BR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_EDGE_T | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_EDGE_T | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_L_CORNER_BR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_EDGE_T | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_EDGE_T | GLOW_EDGE_B] = GLOW_TILE_EDGE_T_B, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_B_L, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_TL] = GLOW_TILE_CORNER_BR_TR_TL, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_R] = GLOW_TILE_EDGE_R_CORNER_TL, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_L] = GLOW_TILE_EDGE_L_CORNER_BR_TR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_B] = GLOW_TILE_EDGE_B_CORNER_TL_TR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_R_CORNER_TL, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_B_L_CORNER_TR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_T] = GLOW_TILE_EDGE_T_CORNER_BR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_L_CORNER_BR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B] = GLOW_TILE_EDGE_T_B, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_B_L, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL] = GLOW_TILE_CORNER_BR_TR_BL, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_R] = GLOW_TILE_EDGE_R_CORNER_BL, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_L] = GLOW_TILE_EDGE_L_CORNER_BR_TR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_B] = GLOW_TILE_EDGE_B_CORNER_TR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_B_L_CORNER_TR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_T] = GLOW_TILE_EDGE_T_CORNER_BL_BR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_R_CORNER_BL, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_L_CORNER_BR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_B] = GLOW_TILE_EDGE_T_B, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_B_L, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL] = GLOW_TILE_CORNER_BR_TR_BL_TL, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_R] = GLOW_TILE_EDGE_R_CORNER_BL_TL, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_L] = GLOW_TILE_EDGE_L_CORNER_BR_TR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_B] = GLOW_TILE_EDGE_B_CORNER_TL_TR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_R_CORNER_TL, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_B_L_CORNER_TR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_B_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T] = GLOW_TILE_EDGE_T_CORNER_BL_BR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_R_CORNER_BL, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_L_CORNER_BR, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_L_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B] = GLOW_TILE_EDGE_T_B, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_R, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L] = GLOW_TILE_EDGE_T_B_L, + [GLOW_CORNER_BR | GLOW_CORNER_TR | GLOW_CORNER_BL | GLOW_CORNER_TL | GLOW_EDGE_T | GLOW_EDGE_B | GLOW_EDGE_L | GLOW_EDGE_R] = GLOW_TILE_EDGE_T_B_L_R, +}; diff --git a/src/daycare.c b/src/daycare.c index c900e34933..ebbab762ad 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -96,7 +96,7 @@ u8 *GetMonNickname2(struct Pokemon *mon, u8 *dest) u8 nickname[POKEMON_NAME_LENGTH * 2]; GetMonData(mon, MON_DATA_NICKNAME, nickname); - return StringCopy10(dest, nickname); + return StringCopy_Nickname(dest, nickname); } u8 *GetBoxMonNickname(struct BoxPokemon *mon, u8 *dest) @@ -104,7 +104,7 @@ u8 *GetBoxMonNickname(struct BoxPokemon *mon, u8 *dest) u8 nickname[POKEMON_NAME_LENGTH * 2]; GetBoxMonData(mon, MON_DATA_NICKNAME, nickname); - return StringCopy10(dest, nickname); + return StringCopy_Nickname(dest, nickname); } u8 CountPokemonInDaycare(struct DayCare *daycare) diff --git a/src/decoration.c b/src/decoration.c index bb2dea7f97..7e102251a4 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -41,7 +41,7 @@ #define PLACE_DECORATION_SELECTOR_TAG 0xbe5 #define PLACE_DECORATION_PLAYER_TAG 0x008 -#define NUM_DECORATION_FLAGS (FLAG_DECORATION_14 - FLAG_DECORATION_0) +#define NUM_DECORATION_FLAGS (FLAG_DECORATION_14 - FLAG_DECORATION_1 + 1) #define tCursorX data[0] #define tCursorY data[1] @@ -440,7 +440,7 @@ static const struct YesNoFuncTable sStopPuttingAwayDecorationsYesNoFunctions = .noFunc = ContinuePuttingAwayDecorations, }; -static const u8 sDecorationPuttingAwayCursor[] = INCBIN_U8("graphics/misc/decoration_putting_away_cursor.4bpp"); +static const u8 sDecorationPuttingAwayCursor[] = INCBIN_U8("graphics/decorations/put_away_cursor.4bpp"); static const struct SpritePalette sSpritePal_PuttingAwayCursorBrendan = { @@ -1175,7 +1175,7 @@ static void SetInitialPositions(u8 taskId) static void WarpToInitialPosition(u8 taskId) { DrawWholeMapView(); - SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, gTasks[taskId].tInitialX, gTasks[taskId].tInitialY); + SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, WARP_ID_NONE, gTasks[taskId].tInitialX, gTasks[taskId].tInitialY); WarpIntoMap(); } @@ -1185,10 +1185,10 @@ static u16 GetDecorationElevation(u8 decoration, u8 tileIndex) switch (decoration) { case DECOR_STAND: - elevation = sDecorationStandElevations[tileIndex] << METATILE_ELEVATION_SHIFT; + elevation = sDecorationStandElevations[tileIndex] << MAPGRID_ELEVATION_SHIFT; return elevation; case DECOR_SLIDE: - elevation = sDecorationSlideElevation[tileIndex] << METATILE_ELEVATION_SHIFT; + elevation = sDecorationSlideElevation[tileIndex] << MAPGRID_ELEVATION_SHIFT; return elevation; default: return elevation; @@ -1199,7 +1199,7 @@ static void ShowDecorationOnMap_(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, { u16 i, j; s16 x, y; - u16 behavior; + u16 attributes; u16 impassableFlag; u16 overlapsWall; u16 elevation; @@ -1210,9 +1210,10 @@ static void ShowDecorationOnMap_(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, for (i = 0; i < decWidth; i++) { x = mapX + i; - behavior = GetBehaviorByMetatileId(NUM_TILES_IN_PRIMARY + gDecorations[decoration].tiles[j * decWidth + i]); - if (MetatileBehavior_IsSecretBaseImpassable(behavior) == TRUE || (gDecorations[decoration].permission != DECORPERM_PASS_FLOOR && (behavior >> METATILE_ELEVATION_SHIFT))) - impassableFlag = METATILE_COLLISION_MASK; + attributes = GetMetatileAttributesById(NUM_TILES_IN_PRIMARY + gDecorations[decoration].tiles[j * decWidth + i]); + if (MetatileBehavior_IsSecretBaseImpassable(attributes & METATILE_ATTR_BEHAVIOR_MASK) == TRUE + || (gDecorations[decoration].permission != DECORPERM_PASS_FLOOR && (attributes >> METATILE_ATTR_LAYER_SHIFT) != METATILE_LAYER_TYPE_NORMAL)) + impassableFlag = MAPGRID_COLLISION_MASK; else impassableFlag = 0; @@ -1395,9 +1396,9 @@ static void SetUpPlacingDecorationPlayerAvatar(u8 taskId, struct PlaceDecoration x -= 8; if (gSaveBlock2Ptr->playerGender == MALE) - sDecor_CameraSpriteObjectIdx2 = AddPseudoObjectEvent(OBJ_EVENT_GFX_BRENDAN_DECORATING, SpriteCallbackDummy, x, 72, 0); + sDecor_CameraSpriteObjectIdx2 = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_BRENDAN_DECORATING, SpriteCallbackDummy, x, 72, 0); else - sDecor_CameraSpriteObjectIdx2 = AddPseudoObjectEvent(OBJ_EVENT_GFX_MAY_DECORATING, SpriteCallbackDummy, x, 72, 0); + sDecor_CameraSpriteObjectIdx2 = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_MAY_DECORATING, SpriteCallbackDummy, x, 72, 0); gSprites[sDecor_CameraSpriteObjectIdx2].oam.priority = 1; DestroySprite(&gSprites[sDecor_CameraSpriteObjectIdx1]); @@ -1471,24 +1472,26 @@ static void AttemptCancelPlaceDecoration(u8 taskId) DisplayItemMessageOnField(taskId, gStringVar4, CancelDecoratingPrompt); } -// Note: behaviorBy is pre-anded with METATILE_ELEVATION_MASK. -static bool8 IsNonBlockNonElevated(u8 behaviorAt, u16 behaviorBy) +static bool8 IsSecretBaseTrainerSpot(u8 behaviorAt, u16 layerType) { - if (MetatileBehavior_IsBlockDecoration(behaviorAt) != TRUE || behaviorBy != 0) + if (!(MetatileBehavior_IsSecretBaseTrainerSpot(behaviorAt) == TRUE && layerType == METATILE_LAYER_TYPE_NORMAL)) return FALSE; return TRUE; } -static bool8 IsntInitialPosition(u8 taskId, s16 x, s16 y, u16 behaviorBy) +// Can't place decoration where the player was standing when they interacted with the PC +static bool8 IsntInitialPosition(u8 taskId, s16 x, s16 y, u16 layerType) { - if (x == gTasks[taskId].tInitialX + MAP_OFFSET && y == gTasks[taskId].tInitialY + MAP_OFFSET && behaviorBy != 0) + if (x == gTasks[taskId].tInitialX + MAP_OFFSET + && y == gTasks[taskId].tInitialY + MAP_OFFSET + && layerType != METATILE_LAYER_TYPE_NORMAL) return FALSE; return TRUE; } static bool8 IsFloorOrBoardAndHole(u16 behaviorAt, const struct Decoration *decoration) { - if (MetatileBehavior_IsBlockDecoration(behaviorAt) != TRUE) + if (MetatileBehavior_IsSecretBaseTrainerSpot(behaviorAt) != TRUE) { if (decoration->id == DECOR_SOLID_BOARD && MetatileBehavior_IsSecretBaseHole(behaviorAt) == TRUE) return TRUE; @@ -1505,7 +1508,7 @@ static bool8 CanPlaceDecoration(u8 taskId, const struct Decoration *decoration) u8 i; u8 j; u8 behaviorAt; - u16 behaviorBy; + u16 layerType; u8 mapY; u8 mapX; s16 curY; @@ -1524,14 +1527,14 @@ static bool8 CanPlaceDecoration(u8 taskId, const struct Decoration *decoration) { curX = gTasks[taskId].tCursorX + j; behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); - behaviorBy = GetBehaviorByMetatileId(NUM_TILES_IN_PRIMARY + decoration->tiles[(mapY - 1 - i) * mapX + j]) & METATILE_ELEVATION_MASK; + layerType = GetMetatileAttributesById(NUM_TILES_IN_PRIMARY + decoration->tiles[(mapY - 1 - i) * mapX + j]) & METATILE_ATTR_LAYER_MASK; if (!IsFloorOrBoardAndHole(behaviorAt, decoration)) return FALSE; - if (!IsntInitialPosition(taskId, curX, curY, behaviorBy)) + if (!IsntInitialPosition(taskId, curX, curY, layerType)) return FALSE; - behaviorAt = GetObjectEventIdByXYZ(curX, curY, 0); + behaviorAt = GetObjectEventIdByPosition(curX, curY, 0); if (behaviorAt != 0 && behaviorAt != OBJECT_EVENTS_COUNT) return FALSE; } @@ -1545,14 +1548,14 @@ static bool8 CanPlaceDecoration(u8 taskId, const struct Decoration *decoration) { curX = gTasks[taskId].tCursorX + j; behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); - behaviorBy = GetBehaviorByMetatileId(NUM_TILES_IN_PRIMARY + decoration->tiles[(mapY - 1 - i) * mapX + j]) & METATILE_ELEVATION_MASK; - if (!MetatileBehavior_IsNormal(behaviorAt) && !IsNonBlockNonElevated(behaviorAt, behaviorBy)) + layerType = GetMetatileAttributesById(NUM_TILES_IN_PRIMARY + decoration->tiles[(mapY - 1 - i) * mapX + j]) & METATILE_ATTR_LAYER_MASK; + if (!MetatileBehavior_IsNormal(behaviorAt) && !IsSecretBaseTrainerSpot(behaviorAt, layerType)) return FALSE; - if (!IsntInitialPosition(taskId, curX, curY, behaviorBy)) + if (!IsntInitialPosition(taskId, curX, curY, layerType)) return FALSE; - if (GetObjectEventIdByXYZ(curX, curY, 0) != OBJECT_EVENTS_COUNT) + if (GetObjectEventIdByPosition(curX, curY, 0) != OBJECT_EVENTS_COUNT) return FALSE; } } @@ -1562,14 +1565,14 @@ static bool8 CanPlaceDecoration(u8 taskId, const struct Decoration *decoration) { curX = gTasks[taskId].tCursorX + j; behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); - behaviorBy = GetBehaviorByMetatileId(NUM_TILES_IN_PRIMARY + decoration->tiles[j]) & METATILE_ELEVATION_MASK; + layerType = GetMetatileAttributesById(NUM_TILES_IN_PRIMARY + decoration->tiles[j]) & METATILE_ATTR_LAYER_MASK; if (!MetatileBehavior_IsNormal(behaviorAt) && !MetatileBehavior_IsSecretBaseNorthWall(behaviorAt)) return FALSE; - if (!IsntInitialPosition(taskId, curX, curY, behaviorBy)) + if (!IsntInitialPosition(taskId, curX, curY, layerType)) return FALSE; - behaviorAt = GetObjectEventIdByXYZ(curX, curY, 0); + behaviorAt = GetObjectEventIdByPosition(curX, curY, 0); if (behaviorAt != 0 && behaviorAt != OBJECT_EVENTS_COUNT) return FALSE; } @@ -1606,7 +1609,7 @@ static bool8 CanPlaceDecoration(u8 taskId, const struct Decoration *decoration) return FALSE; } - if (GetObjectEventIdByXYZ(curX, curY, 0) != OBJECT_EVENTS_COUNT) + if (GetObjectEventIdByPosition(curX, curY, 0) != OBJECT_EVENTS_COUNT) return FALSE; } break; @@ -2027,7 +2030,7 @@ static u8 gpu_pal_decompress_alloc_tag_and_upload(struct PlaceDecorationGraphics ClearPlaceDecorationGraphicsDataBuffer(data); data->decoration = &gDecorations[decor]; if (data->decoration->permission == DECORPERM_SPRITE) - return AddPseudoObjectEvent(data->decoration->tiles[0], SpriteCallbackDummy, 0, 0, 1); + return CreateObjectGraphicsSprite(data->decoration->tiles[0], SpriteCallbackDummy, 0, 0, 1); FreeSpritePaletteByTag(PLACE_DECORATION_SELECTOR_TAG); SetDecorSelectionMetatiles(data); @@ -2106,7 +2109,7 @@ static u8 AddDecorationIconObjectFromObjectEvent(u16 tilesTag, u16 paletteTag, u } else { - spriteId = AddPseudoObjectEvent(sPlaceDecorationGraphicsDataBuffer.decoration->tiles[0], SpriteCallbackDummy, 0, 0, 1); + spriteId = CreateObjectGraphicsSprite(sPlaceDecorationGraphicsDataBuffer.decoration->tiles[0], SpriteCallbackDummy, 0, 0, 1); } return spriteId; } @@ -2285,9 +2288,9 @@ static void SetUpPuttingAwayDecorationPlayerAvatar(void) LoadPlayerSpritePalette(); gFieldCamera.spriteId = CreateSprite(&sPuttingAwayCursorSpriteTemplate, 120, 80, 0); if (gSaveBlock2Ptr->playerGender == MALE) - sDecor_CameraSpriteObjectIdx2 = AddPseudoObjectEvent(OBJ_EVENT_GFX_BRENDAN_DECORATING, SpriteCallbackDummy, 136, 72, 0); + sDecor_CameraSpriteObjectIdx2 = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_BRENDAN_DECORATING, SpriteCallbackDummy, 136, 72, 0); else - sDecor_CameraSpriteObjectIdx2 = AddPseudoObjectEvent(OBJ_EVENT_GFX_MAY_DECORATING, SpriteCallbackDummy, 136, 72, 0); + sDecor_CameraSpriteObjectIdx2 = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_MAY_DECORATING, SpriteCallbackDummy, 136, 72, 0); gSprites[sDecor_CameraSpriteObjectIdx2].oam.priority = 1; DestroySprite(&gSprites[sDecor_CameraSpriteObjectIdx1]); diff --git a/src/decoration_inventory.c b/src/decoration_inventory.c index af1071b1b1..c84ee69a46 100644 --- a/src/decoration_inventory.c +++ b/src/decoration_inventory.c @@ -33,7 +33,7 @@ static void ClearDecorationInventory(u8 category) void ClearDecorationInventories(void) { u8 category; - for (category = 0; category < 8; category++) + for (category = 0; category < DECORCAT_COUNT; category++) ClearDecorationInventory(category); } diff --git a/src/dewford_trend.c b/src/dewford_trend.c index bba2085e8b..08dd9afe0b 100644 --- a/src/dewford_trend.c +++ b/src/dewford_trend.c @@ -8,7 +8,6 @@ #include "text.h" #include "tv.h" #include "string_util.h" -#include "constants/easy_chat.h" /* ## Overview ## diff --git a/src/diploma.c b/src/diploma.c index 76b4ae65c5..ce31578dcb 100644 --- a/src/diploma.c +++ b/src/diploma.c @@ -40,12 +40,12 @@ static void VBlankCB(void) static const u16 sDiplomaPalettes[][16] = { - INCBIN_U16("graphics/misc/diploma_national.gbapal"), - INCBIN_U16("graphics/misc/diploma_hoenn.gbapal"), + INCBIN_U16("graphics/diploma/national.gbapal"), + INCBIN_U16("graphics/diploma/hoenn.gbapal"), }; -static const u32 sDiplomaTilemap[] = INCBIN_U32("graphics/misc/diploma_map.bin.lz"); -static const u32 sDiplomaTiles[] = INCBIN_U32("graphics/misc/diploma.4bpp.lz"); +static const u32 sDiplomaTilemap[] = INCBIN_U32("graphics/diploma/tilemap.bin.lz"); +static const u32 sDiplomaTiles[] = INCBIN_U32("graphics/diploma/tiles.4bpp.lz"); void CB2_ShowDiploma(void) { diff --git a/src/easy_chat.c b/src/easy_chat.c index 1b992caf2d..734fd4f18b 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -27,7 +27,6 @@ #include "task.h" #include "text_window.h" #include "window.h" -#include "constants/easy_chat.h" #include "constants/event_objects.h" #include "constants/lilycove_lady.h" #include "constants/mauville_old_man.h" @@ -5011,7 +5010,7 @@ static void TryAddInterviewObjectEvents(void) return; // Add object for reporter/interviewing fan (facing left) - spriteId = AddPseudoObjectEvent(graphicsId, SpriteCallbackDummy, 76, 40, 0); + spriteId = CreateObjectGraphicsSprite(graphicsId, SpriteCallbackDummy, 76, 40, 0); if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.priority = 0; @@ -5019,7 +5018,7 @@ static void TryAddInterviewObjectEvents(void) } // Add object for player (facing right) - spriteId = AddPseudoObjectEvent( + spriteId = CreateObjectGraphicsSprite( gSaveBlock2Ptr->playerGender == MALE ? OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL : OBJ_EVENT_GFX_RIVAL_MAY_NORMAL, SpriteCallbackDummy, 52, diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 283ec753af..5dd83c9b1f 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -37,16 +37,24 @@ #include "battle.h" // to get rid of later #include "constants/rgb.h" +#define GFXTAG_EGG 12345 +#define GFXTAG_EGG_SHARD 23456 + +#define PALTAG_EGG 54321 + +#define EGG_X (DISPLAY_WIDTH / 2) +#define EGG_Y (DISPLAY_HEIGHT / 2 - 5) + struct EggHatchData { - u8 eggSpriteID; - u8 pokeSpriteID; - u8 CB2_state; - u8 CB2_PalCounter; - u8 eggPartyID; + u8 eggSpriteId; + u8 monSpriteId; + u8 state; + u8 delayTimer; + u8 eggPartyId; u8 unused_5; u8 unused_6; - u8 eggShardVelocityID; + u8 eggShardVelocityId; u8 windowId; u8 unused_9; u8 unused_A; @@ -58,29 +66,27 @@ extern const u32 gTradePlatform_Tilemap[]; extern const u8 gText_HatchedFromEgg[]; extern const u8 gText_NicknameHatchPrompt[]; -static void Task_EggHatch(u8 taskID); -static void CB2_EggHatch_0(void); -static void CB2_EggHatch_1(void); -static void SpriteCB_Egg_0(struct Sprite* sprite); -static void SpriteCB_Egg_1(struct Sprite* sprite); -static void SpriteCB_Egg_2(struct Sprite* sprite); -static void SpriteCB_Egg_3(struct Sprite* sprite); -static void SpriteCB_Egg_4(struct Sprite* sprite); -static void SpriteCB_Egg_5(struct Sprite* sprite); -static void SpriteCB_EggShard(struct Sprite* sprite); -static void EggHatchPrintMessage(u8 windowId, u8* string, u8 x, u8 y, u8 speed); +static void Task_EggHatch(u8); +static void CB2_LoadEggHatch(void); +static void CB2_EggHatch(void); +static void SpriteCB_Egg_Shake1(struct Sprite*); +static void SpriteCB_Egg_Shake2(struct Sprite*); +static void SpriteCB_Egg_Shake3(struct Sprite*); +static void SpriteCB_Egg_WaitHatch(struct Sprite*); +static void SpriteCB_Egg_Hatch(struct Sprite*); +static void SpriteCB_Egg_Reveal(struct Sprite*); +static void SpriteCB_EggShard(struct Sprite*); +static void EggHatchPrintMessage(u8, u8*, u8, u8, u8); static void CreateRandomEggShardSprite(void); -static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 spriteAnimIndex); +static void CreateEggShardSprite(u8, u8, s16, s16, s16, u8); -// IWRAM bss static struct EggHatchData *sEggHatchData; -// rom data -static const u16 sEggPalette[] = INCBIN_U16("graphics/pokemon/egg/normal.gbapal"); -static const u8 sEggHatchTiles[] = INCBIN_U8("graphics/misc/egg_hatch.4bpp"); -static const u8 sEggShardTiles[] = INCBIN_U8("graphics/misc/egg_shard.4bpp"); +static const u16 sEggPalette[] = INCBIN_U16("graphics/pokemon/egg/normal.gbapal"); +static const u8 sEggHatchTiles[] = INCBIN_U8("graphics/pokemon/egg/hatch.4bpp"); +static const u8 sEggShardTiles[] = INCBIN_U8("graphics/pokemon/egg/shard.4bpp"); -static const struct OamData sOamData_EggHatch = +static const struct OamData sOamData_Egg = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -97,64 +103,71 @@ static const struct OamData sOamData_EggHatch = .affineParam = 0, }; -static const union AnimCmd sSpriteAnim_EggHatch0[] = +static const union AnimCmd sSpriteAnim_Egg_Normal[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_EggHatch1[] = +static const union AnimCmd sSpriteAnim_Egg_Cracked1[] = { ANIMCMD_FRAME(16, 5), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_EggHatch2[] = +static const union AnimCmd sSpriteAnim_Egg_Cracked2[] = { ANIMCMD_FRAME(32, 5), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_EggHatch3[] = +static const union AnimCmd sSpriteAnim_Egg_Cracked3[] = { ANIMCMD_FRAME(48, 5), ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_EggHatch[] = +enum { + EGG_ANIM_NORMAL, + EGG_ANIM_CRACKED_1, + EGG_ANIM_CRACKED_2, + EGG_ANIM_CRACKED_3, +}; + +static const union AnimCmd *const sSpriteAnimTable_Egg[] = { - sSpriteAnim_EggHatch0, - sSpriteAnim_EggHatch1, - sSpriteAnim_EggHatch2, - sSpriteAnim_EggHatch3, + [EGG_ANIM_NORMAL] = sSpriteAnim_Egg_Normal, + [EGG_ANIM_CRACKED_1] = sSpriteAnim_Egg_Cracked1, + [EGG_ANIM_CRACKED_2] = sSpriteAnim_Egg_Cracked2, + [EGG_ANIM_CRACKED_3] = sSpriteAnim_Egg_Cracked3, }; static const struct SpriteSheet sEggHatch_Sheet = { .data = sEggHatchTiles, - .size = 2048, - .tag = 12345, + .size = 0x800, + .tag = GFXTAG_EGG, }; static const struct SpriteSheet sEggShards_Sheet = { .data = sEggShardTiles, - .size = 128, - .tag = 23456, + .size = 0x80, + .tag = GFXTAG_EGG_SHARD, }; static const struct SpritePalette sEgg_SpritePalette = { .data = sEggPalette, - .tag = 54321 + .tag = PALTAG_EGG }; -static const struct SpriteTemplate sSpriteTemplate_EggHatch = +static const struct SpriteTemplate sSpriteTemplate_Egg = { - .tileTag = 12345, - .paletteTag = 54321, - .oam = &sOamData_EggHatch, - .anims = sSpriteAnimTable_EggHatch, + .tileTag = GFXTAG_EGG, + .paletteTag = PALTAG_EGG, + .oam = &sOamData_Egg, + .anims = sSpriteAnimTable_Egg, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -211,8 +224,8 @@ static const union AnimCmd *const sSpriteAnimTable_EggShard[] = static const struct SpriteTemplate sSpriteTemplate_EggShard = { - .tileTag = 23456, - .paletteTag = 54321, + .tileTag = GFXTAG_EGG_SHARD, + .paletteTag = PALTAG_EGG, .oam = &sOamData_EggShard, .anims = sSpriteAnimTable_EggShard, .images = NULL, @@ -220,7 +233,7 @@ static const struct SpriteTemplate sSpriteTemplate_EggShard = .callback = SpriteCB_EggShard }; -static const struct BgTemplate sBgTemplates_EggHatch[2] = +static const struct BgTemplate sBgTemplates_EggHatch[] = { { .bg = 0, @@ -243,7 +256,7 @@ static const struct BgTemplate sBgTemplates_EggHatch[2] = }, }; -static const struct WindowTemplate sWinTemplates_EggHatch[2] = +static const struct WindowTemplate sWinTemplates_EggHatch[] = { { .bg = 0, @@ -270,9 +283,14 @@ static const struct WindowTemplate sYesNoWinTemplate = static const s16 sEggShardVelocities[][2] = { + // First shake {Q_8_8(-1.5), Q_8_8(-3.75)}, + + // Third shake {Q_8_8(-5), Q_8_8(-3)}, {Q_8_8(3.5), Q_8_8(-3)}, + + // Hatching {Q_8_8(-4), Q_8_8(-3.75)}, {Q_8_8(2), Q_8_8(-1.5)}, {Q_8_8(-0.5), Q_8_8(-6.75)}, @@ -291,8 +309,6 @@ static const s16 sEggShardVelocities[][2] = {Q_8_8(2.5), Q_8_8(-7.5)}, }; -// code - static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp) { u16 species; @@ -301,21 +317,17 @@ static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp) u16 moves[MAX_MON_MOVES]; u32 ivs[NUM_STATS]; - species = GetMonData(egg, MON_DATA_SPECIES); for (i = 0; i < MAX_MON_MOVES; i++) - { moves[i] = GetMonData(egg, MON_DATA_MOVE1 + i); - } personality = GetMonData(egg, MON_DATA_PERSONALITY); for (i = 0; i < NUM_STATS; i++) - { ivs[i] = GetMonData(egg, MON_DATA_HP_IV + i); - } + // The language is initially read from the Egg but is later overwritten below language = GetMonData(egg, MON_DATA_LANGUAGE); gameMet = GetMonData(egg, MON_DATA_MET_GAME); markings = GetMonData(egg, MON_DATA_MARKINGS); @@ -325,14 +337,10 @@ static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp) CreateMon(temp, species, EGG_HATCH_LEVEL, USE_RANDOM_IVS, TRUE, personality, OT_ID_PLAYER_ID, 0); for (i = 0; i < MAX_MON_MOVES; i++) - { SetMonData(temp, MON_DATA_MOVE1 + i, &moves[i]); - } for (i = 0; i < NUM_STATS; i++) - { SetMonData(temp, MON_DATA_HP_IV + i, &ivs[i]); - } language = GAME_LANGUAGE; SetMonData(temp, MON_DATA_LANGUAGE, &language); @@ -350,34 +358,35 @@ static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp) static void AddHatchedMonToParty(u8 id) { u8 isEgg = 0x46; // ? - u16 pokeNum; - u8 name[12]; + u16 species; + u8 name[POKEMON_NAME_LENGTH + 1]; u16 ball; - u16 caughtLvl; - u8 mapNameID; + u16 metLevel; + u8 metLocation; struct Pokemon* mon = &gPlayerParty[id]; CreateHatchedMon(mon, &gEnemyParty[0]); SetMonData(mon, MON_DATA_IS_EGG, &isEgg); - pokeNum = GetMonData(mon, MON_DATA_SPECIES); - GetSpeciesName(name, pokeNum); + species = GetMonData(mon, MON_DATA_SPECIES); + GetSpeciesName(name, species); SetMonData(mon, MON_DATA_NICKNAME, name); - pokeNum = SpeciesToNationalPokedexNum(pokeNum); - GetSetPokedexFlag(pokeNum, FLAG_SET_SEEN); - GetSetPokedexFlag(pokeNum, FLAG_SET_CAUGHT); + species = SpeciesToNationalPokedexNum(species); + GetSetPokedexFlag(species, FLAG_SET_SEEN); + GetSetPokedexFlag(species, FLAG_SET_CAUGHT); GetMonNickname2(mon, gStringVar1); ball = ITEM_POKE_BALL; SetMonData(mon, MON_DATA_POKEBALL, &ball); - caughtLvl = 0; - SetMonData(mon, MON_DATA_MET_LEVEL, &caughtLvl); + // A met level of 0 is interpreted on the summary screen as "hatched at" + metLevel = 0; + SetMonData(mon, MON_DATA_MET_LEVEL, &metLevel); - mapNameID = GetCurrentRegionMapSectionId(); - SetMonData(mon, MON_DATA_MET_LOCATION, &mapNameID); + metLocation = GetCurrentRegionMapSectionId(); + SetMonData(mon, MON_DATA_MET_LOCATION, &metLocation); MonRestorePP(mon); CalculateMonStats(mon); @@ -396,7 +405,7 @@ static bool8 _CheckDaycareMonReceivedMail(struct DayCare *daycare, u8 daycareId) GetBoxMonNickname(&daycareMon->mon, nickname); if (daycareMon->mail.message.itemId != ITEM_NONE && (StringCompareWithoutExtCtrlCodes(nickname, daycareMon->mail.monName) != 0 - || StringCompareWithoutExtCtrlCodes(gSaveBlock2Ptr->playerName, daycareMon->mail.otName) != 0)) + || StringCompareWithoutExtCtrlCodes(gSaveBlock2Ptr->playerName, daycareMon->mail.otName) != 0)) { StringCopy(gStringVar1, nickname); TVShowConvertInternationalString(gStringVar2, daycareMon->mail.otName, daycareMon->mail.gameLanguage); @@ -411,26 +420,27 @@ bool8 CheckDaycareMonReceivedMail(void) return _CheckDaycareMonReceivedMail(&gSaveBlock1Ptr->daycare, gSpecialVar_0x8004); } -static u8 EggHatchCreateMonSprite(u8 useAlt, u8 switchID, u8 pokeID, u16* speciesLoc) +static u8 EggHatchCreateMonSprite(u8 useAlt, u8 state, u8 partyId, u16* speciesLoc) { u8 position = 0; - u8 spriteID = 0; + u8 spriteId = 0; struct Pokemon* mon = NULL; if (useAlt == FALSE) { - mon = &gPlayerParty[pokeID]; + mon = &gPlayerParty[partyId]; position = B_POSITION_OPPONENT_LEFT; } if (useAlt == TRUE) { // Alternate sprite allocation position. Never reached. - mon = &gPlayerParty[pokeID]; + mon = &gPlayerParty[partyId]; position = B_POSITION_OPPONENT_RIGHT; } - switch (switchID) + switch (state) { case 0: + // Load mon sprite gfx { u16 species = GetMonData(mon, MON_DATA_SPECIES); u32 pid = GetMonData(mon, MON_DATA_PERSONALITY); @@ -442,13 +452,14 @@ static u8 EggHatchCreateMonSprite(u8 useAlt, u8 switchID, u8 pokeID, u16* specie } break; case 1: + // Create mon sprite SetMultiuseSpriteTemplateToPokemon(GetMonSpritePalStruct(mon)->tag, position); - spriteID = CreateSprite(&gMultiuseSpriteTemplate, 120, 75, 6); - gSprites[spriteID].invisible = TRUE; - gSprites[spriteID].callback = SpriteCallbackDummy; + spriteId = CreateSprite(&gMultiuseSpriteTemplate, EGG_X, EGG_Y, 6); + gSprites[spriteId].invisible = TRUE; + gSprites[spriteId].callback = SpriteCallbackDummy; break; } - return spriteID; + return spriteId; } static void VBlankCB_EggHatch(void) @@ -465,28 +476,28 @@ void EggHatch(void) FadeScreen(FADE_TO_BLACK, 0); } -static void Task_EggHatch(u8 taskID) +static void Task_EggHatch(u8 taskId) { if (!gPaletteFade.active) { CleanupOverworldWindowsAndTilemaps(); - SetMainCallback2(CB2_EggHatch_0); + SetMainCallback2(CB2_LoadEggHatch); gFieldCallback = FieldCB_ContinueScriptHandleMusic; - DestroyTask(taskID); + DestroyTask(taskId); } } -static void CB2_EggHatch_0(void) +static void CB2_LoadEggHatch(void) { switch (gMain.state) { case 0: SetGpuReg(REG_OFFSET_DISPCNT, 0); - sEggHatchData = Alloc(sizeof(struct EggHatchData)); + sEggHatchData = Alloc(sizeof(*sEggHatchData)); AllocateMonSpritesGfx(); - sEggHatchData->eggPartyID = gSpecialVar_0x8004; - sEggHatchData->eggShardVelocityID = 0; + sEggHatchData->eggPartyId = gSpecialVar_0x8004; + sEggHatchData->eggShardVelocityId = 0; SetVBlankCallback(VBlankCB_EggHatch); gSpecialVar_0x8005 = GetCurrentMapMusic(); @@ -532,15 +543,15 @@ static void CB2_EggHatch_0(void) break; case 4: CopyBgTilemapBufferToVram(0); - AddHatchedMonToParty(sEggHatchData->eggPartyID); + AddHatchedMonToParty(sEggHatchData->eggPartyId); gMain.state++; break; case 5: - EggHatchCreateMonSprite(FALSE, 0, sEggHatchData->eggPartyID, &sEggHatchData->species); + EggHatchCreateMonSprite(FALSE, 0, sEggHatchData->eggPartyId, &sEggHatchData->species); gMain.state++; break; case 6: - sEggHatchData->pokeSpriteID = EggHatchCreateMonSprite(FALSE, 1, sEggHatchData->eggPartyID, &sEggHatchData->species); + sEggHatchData->monSpriteId = EggHatchCreateMonSprite(FALSE, 1, sEggHatchData->eggPartyId, &sEggHatchData->species); gMain.state++; break; case 7: @@ -552,8 +563,8 @@ static void CB2_EggHatch_0(void) gMain.state++; break; case 8: - SetMainCallback2(CB2_EggHatch_1); - sEggHatchData->CB2_state = 0; + SetMainCallback2(CB2_EggHatch); + sEggHatchData->state = 0; break; } RunTasks(); @@ -571,121 +582,127 @@ static void EggHatchSetMonNickname(void) SetMainCallback2(CB2_ReturnToField); } -static void Task_EggHatchPlayBGM(u8 taskID) +#define tTimer data[0] + +static void Task_EggHatchPlayBGM(u8 taskId) { - if (gTasks[taskID].data[0] == 0) + if (gTasks[taskId].tTimer == 0) { StopMapMusic(); PlayRainStoppingSoundEffect(); } - if (gTasks[taskID].data[0] == 1) + + if (gTasks[taskId].tTimer == 1) PlayBGM(MUS_EVOLUTION_INTRO); - if (gTasks[taskID].data[0] > 60) + + if (gTasks[taskId].tTimer > 60) { PlayBGM(MUS_EVOLUTION); - DestroyTask(taskID); - // UB: task is destroyed, yet the value is incremented - #ifdef UBFIX - return; - #endif + DestroyTask(taskId); } - gTasks[taskID].data[0]++; + gTasks[taskId].tTimer++; } -static void CB2_EggHatch_1(void) +static void CB2_EggHatch(void) { u16 species; u8 gender; u32 personality; - switch (sEggHatchData->CB2_state) + switch (sEggHatchData->state) { case 0: - BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); - sEggHatchData->eggSpriteID = CreateSprite(&sSpriteTemplate_EggHatch, 120, 75, 5); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); + sEggHatchData->eggSpriteId = CreateSprite(&sSpriteTemplate_Egg, EGG_X, EGG_Y, 5); ShowBg(0); ShowBg(1); - sEggHatchData->CB2_state++; + sEggHatchData->state++; CreateTask(Task_EggHatchPlayBGM, 5); break; case 1: if (!gPaletteFade.active) { FillWindowPixelBuffer(sEggHatchData->windowId, PIXEL_FILL(0)); - sEggHatchData->CB2_PalCounter = 0; - sEggHatchData->CB2_state++; + sEggHatchData->delayTimer = 0; + sEggHatchData->state++; } break; case 2: - if (++sEggHatchData->CB2_PalCounter > 30) + if (++sEggHatchData->delayTimer > 30) { - sEggHatchData->CB2_state++; - gSprites[sEggHatchData->eggSpriteID].callback = SpriteCB_Egg_0; + // Start hatching animation + sEggHatchData->state++; + gSprites[sEggHatchData->eggSpriteId].callback = SpriteCB_Egg_Shake1; } break; case 3: - if (gSprites[sEggHatchData->eggSpriteID].callback == SpriteCallbackDummy) + // Wait for hatching animation to finish + if (gSprites[sEggHatchData->eggSpriteId].callback == SpriteCallbackDummy) { - species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_SPECIES); - DoMonFrontSpriteAnimation(&gSprites[sEggHatchData->pokeSpriteID], species, FALSE, 1); - sEggHatchData->CB2_state++; + species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyId], MON_DATA_SPECIES); + DoMonFrontSpriteAnimation(&gSprites[sEggHatchData->monSpriteId], species, FALSE, 1); + sEggHatchData->state++; } break; case 4: - if (gSprites[sEggHatchData->pokeSpriteID].callback == SpriteCallbackDummy) - { - sEggHatchData->CB2_state++; - } + // Wait for Pokémon's front sprite animation + if (gSprites[sEggHatchData->monSpriteId].callback == SpriteCallbackDummy) + sEggHatchData->state++; break; case 5: - GetMonNickname2(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1); + // "{mon} hatched from egg" message/fanfare + GetMonNickname2(&gPlayerParty[sEggHatchData->eggPartyId], gStringVar1); StringExpandPlaceholders(gStringVar4, gText_HatchedFromEgg); EggHatchPrintMessage(sEggHatchData->windowId, gStringVar4, 0, 3, TEXT_SKIP_DRAW); PlayFanfare(MUS_EVOLVED); - sEggHatchData->CB2_state++; + sEggHatchData->state++; PutWindowTilemap(sEggHatchData->windowId); CopyWindowToVram(sEggHatchData->windowId, COPYWIN_FULL); break; case 6: if (IsFanfareTaskInactive()) - sEggHatchData->CB2_state++; + sEggHatchData->state++; break; - case 7: + case 7: // Twice? if (IsFanfareTaskInactive()) - sEggHatchData->CB2_state++; + sEggHatchData->state++; break; case 8: - GetMonNickname2(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1); + // Ready the nickname prompt + GetMonNickname2(&gPlayerParty[sEggHatchData->eggPartyId], gStringVar1); StringExpandPlaceholders(gStringVar4, gText_NicknameHatchPrompt); EggHatchPrintMessage(sEggHatchData->windowId, gStringVar4, 0, 2, 1); - sEggHatchData->CB2_state++; + sEggHatchData->state++; break; case 9: + // Print the nickname prompt if (!IsTextPrinterActive(sEggHatchData->windowId)) { LoadUserWindowBorderGfx(sEggHatchData->windowId, 0x140, 0xE0); CreateYesNoMenu(&sYesNoWinTemplate, 0x140, 0xE, 0); - sEggHatchData->CB2_state++; + sEggHatchData->state++; } break; case 10: + // Handle the nickname prompt input switch (Menu_ProcessInputNoWrapClearOnChoose()) { - case 0: - GetMonNickname2(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar3); - species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_SPECIES); - gender = GetMonGender(&gPlayerParty[sEggHatchData->eggPartyID]); - personality = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_PERSONALITY, 0); + case 0: // Yes + GetMonNickname2(&gPlayerParty[sEggHatchData->eggPartyId], gStringVar3); + species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyId], MON_DATA_SPECIES); + gender = GetMonGender(&gPlayerParty[sEggHatchData->eggPartyId]); + personality = GetMonData(&gPlayerParty[sEggHatchData->eggPartyId], MON_DATA_PERSONALITY, 0); DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar3, species, gender, personality, EggHatchSetMonNickname); break; - case 1: - case -1: - sEggHatchData->CB2_state++; + case 1: // No + case MENU_B_PRESSED: + sEggHatchData->state++; + break; } break; case 11: - BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); - sEggHatchData->CB2_state++; + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + sEggHatchData->state++; break; case 12: if (!gPaletteFade.active) @@ -707,136 +724,170 @@ static void CB2_EggHatch_1(void) UpdatePaletteFade(); } -static void SpriteCB_Egg_0(struct Sprite* sprite) +#define sTimer data[0] +#define sSinIdx data[1] +#define sDelayTimer data[2] + +static void SpriteCB_Egg_Shake1(struct Sprite* sprite) { - if (++sprite->data[0] > 20) + if (++sprite->sTimer > 20) { - sprite->callback = SpriteCB_Egg_1; - sprite->data[0] = 0; + sprite->callback = SpriteCB_Egg_Shake2; + sprite->sTimer = 0; } else { - sprite->data[1] = (sprite->data[1] + 20) & 0xFF; - sprite->x2 = Sin(sprite->data[1], 1); - if (sprite->data[0] == 15) + // Shake egg + sprite->sSinIdx = (sprite->sSinIdx + 20) & 0xFF; + sprite->x2 = Sin(sprite->sSinIdx, 1); + if (sprite->sTimer == 15) { + // First egg crack PlaySE(SE_BALL); - StartSpriteAnim(sprite, 1); + StartSpriteAnim(sprite, EGG_ANIM_CRACKED_1); CreateRandomEggShardSprite(); } } } -static void SpriteCB_Egg_1(struct Sprite* sprite) +static void SpriteCB_Egg_Shake2(struct Sprite* sprite) { - if (++sprite->data[2] > 30) + if (++sprite->sDelayTimer > 30) { - if (++sprite->data[0] > 20) + if (++sprite->sTimer > 20) { - sprite->callback = SpriteCB_Egg_2; - sprite->data[0] = 0; - sprite->data[2] = 0; + sprite->callback = SpriteCB_Egg_Shake3; + sprite->sTimer = 0; + sprite->sDelayTimer = 0; } else { - sprite->data[1] = (sprite->data[1] + 20) & 0xFF; - sprite->x2 = Sin(sprite->data[1], 2); - if (sprite->data[0] == 15) + // Shake egg + sprite->sSinIdx = (sprite->sSinIdx + 20) & 0xFF; + sprite->x2 = Sin(sprite->sSinIdx, 2); + if (sprite->sTimer == 15) { + // Second egg crack PlaySE(SE_BALL); - StartSpriteAnim(sprite, 2); + StartSpriteAnim(sprite, EGG_ANIM_CRACKED_2); } } } } -static void SpriteCB_Egg_2(struct Sprite* sprite) +static void SpriteCB_Egg_Shake3(struct Sprite* sprite) { - if (++sprite->data[2] > 30) + if (++sprite->sDelayTimer > 30) { - if (++sprite->data[0] > 38) + if (++sprite->sTimer > 38) { u16 species; - - sprite->callback = SpriteCB_Egg_3; - sprite->data[0] = 0; - species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_SPECIES); - gSprites[sEggHatchData->pokeSpriteID].x2 = 0; - gSprites[sEggHatchData->pokeSpriteID].y2 = 0; + sprite->callback = SpriteCB_Egg_WaitHatch; + sprite->sTimer = 0; + species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyId], MON_DATA_SPECIES); + gSprites[sEggHatchData->monSpriteId].x2 = 0; + gSprites[sEggHatchData->monSpriteId].y2 = 0; } else { - sprite->data[1] = (sprite->data[1] + 20) & 0xFF; - sprite->x2 = Sin(sprite->data[1], 2); - if (sprite->data[0] == 15) + // Shake egg + sprite->sSinIdx = (sprite->sSinIdx + 20) & 0xFF; + sprite->x2 = Sin(sprite->sSinIdx, 2); + if (sprite->sTimer == 15) { + // Third egg crack + // This ineffectually sets the animation to the frame it's already using. + // They likely meant to use the 3rd and final cracked frame of the egg, which goes unused as a result. PlaySE(SE_BALL); - StartSpriteAnim(sprite, 2); + #ifdef BUGFIX + StartSpriteAnim(sprite, EGG_ANIM_CRACKED_3); + #else + StartSpriteAnim(sprite, EGG_ANIM_CRACKED_2); + #endif CreateRandomEggShardSprite(); CreateRandomEggShardSprite(); } - if (sprite->data[0] == 30) + if (sprite->sTimer == 30) PlaySE(SE_BALL); } } } -static void SpriteCB_Egg_3(struct Sprite* sprite) +static void SpriteCB_Egg_WaitHatch(struct Sprite* sprite) { - if (++sprite->data[0] > 50) + if (++sprite->sTimer > 50) { - sprite->callback = SpriteCB_Egg_4; - sprite->data[0] = 0; + sprite->callback = SpriteCB_Egg_Hatch; + sprite->sTimer = 0; } } -static void SpriteCB_Egg_4(struct Sprite* sprite) +static void SpriteCB_Egg_Hatch(struct Sprite* sprite) { s16 i; - if (sprite->data[0] == 0) - BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 0x10, RGB_WHITEALPHA); - if (sprite->data[0] < 4u) + + // Fade to white to hide transition from egg to Pokémon + if (sprite->sTimer == 0) + BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 16, RGB_WHITEALPHA); + + // Create a shower of 16 egg shards in 4 groups of 4 + if ((u32)sprite->sTimer < 4) { - for (i = 0; i <= 3; i++) + for (i = 0; i < 4; i++) CreateRandomEggShardSprite(); } - sprite->data[0]++; + + sprite->sTimer++; + if (!gPaletteFade.active) { + // Screen is hidden by the fade to white, hide egg PlaySE(SE_EGG_HATCH); sprite->invisible = TRUE; - sprite->callback = SpriteCB_Egg_5; - sprite->data[0] = 0; + sprite->callback = SpriteCB_Egg_Reveal; + sprite->sTimer = 0; } } -static void SpriteCB_Egg_5(struct Sprite* sprite) +static void SpriteCB_Egg_Reveal(struct Sprite* sprite) { - if (sprite->data[0] == 0) + if (sprite->sTimer == 0) { - gSprites[sEggHatchData->pokeSpriteID].invisible = FALSE; - StartSpriteAffineAnim(&gSprites[sEggHatchData->pokeSpriteID], BATTLER_AFFINE_EMERGE); + // Reveal hatched Pokémon + gSprites[sEggHatchData->monSpriteId].invisible = FALSE; + StartSpriteAffineAnim(&gSprites[sEggHatchData->monSpriteId], BATTLER_AFFINE_EMERGE); } - if (sprite->data[0] == 8) - BeginNormalPaletteFade(PALETTES_ALL, -1, 0x10, 0, RGB_WHITEALPHA); - if (sprite->data[0] <= 9) - gSprites[sEggHatchData->pokeSpriteID].y -= 1; - if (sprite->data[0] > 40) - sprite->callback = SpriteCallbackDummy; - sprite->data[0]++; + + // Fade back from white for reveal + if (sprite->sTimer == 8) + BeginNormalPaletteFade(PALETTES_ALL, -1, 16, 0, RGB_WHITEALPHA); + + if (sprite->sTimer <= 9) + gSprites[sEggHatchData->monSpriteId].y--; + + if (sprite->sTimer > 40) + sprite->callback = SpriteCallbackDummy; // Finished + + sprite->sTimer++; } +#define sVelocX data[1] +#define sVelocY data[2] +#define sAccelY data[3] +#define sDeltaX data[4] +#define sDeltaY data[5] + static void SpriteCB_EggShard(struct Sprite* sprite) { - sprite->data[4] += sprite->data[1]; - sprite->data[5] += sprite->data[2]; + sprite->sDeltaX += sprite->sVelocX; + sprite->sDeltaY += sprite->sVelocY; - sprite->x2 = sprite->data[4] / 256; - sprite->y2 = sprite->data[5] / 256; + sprite->x2 = sprite->sDeltaX / 256; + sprite->y2 = sprite->sDeltaY / 256; - sprite->data[2] += sprite->data[3]; + sprite->sVelocY += sprite->sAccelY; - if (sprite->y + sprite->y2 > sprite->y + 20 && sprite->data[2] > 0) + if (sprite->y + sprite->y2 > sprite->y + 20 && sprite->sVelocY > 0) DestroySprite(sprite); } @@ -844,20 +895,23 @@ static void CreateRandomEggShardSprite(void) { u16 spriteAnimIndex; - s16 velocity1 = sEggShardVelocities[sEggHatchData->eggShardVelocityID][0]; - s16 velocity2 = sEggShardVelocities[sEggHatchData->eggShardVelocityID][1]; - sEggHatchData->eggShardVelocityID++; - spriteAnimIndex = Random() % 4; - CreateEggShardSprite(120, 60, velocity1, velocity2, 100, spriteAnimIndex); + s16 velocityX = sEggShardVelocities[sEggHatchData->eggShardVelocityId][0]; + s16 velocityY = sEggShardVelocities[sEggHatchData->eggShardVelocityId][1]; + sEggHatchData->eggShardVelocityId++; + + // Randomly choose one of the 4 shard images + spriteAnimIndex = Random() % ARRAY_COUNT(sSpriteAnimTable_EggShard); + + CreateEggShardSprite(EGG_X, EGG_Y - 15, velocityX, velocityY, 100, spriteAnimIndex); } -static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 spriteAnimIndex) +static void CreateEggShardSprite(u8 x, u8 y, s16 velocityX, s16 velocityY, s16 acceleration, u8 spriteAnimIndex) { - u8 spriteID = CreateSprite(&sSpriteTemplate_EggShard, x, y, 4); - gSprites[spriteID].data[1] = data1; - gSprites[spriteID].data[2] = data2; - gSprites[spriteID].data[3] = data3; - StartSpriteAnim(&gSprites[spriteID], spriteAnimIndex); + u8 spriteId = CreateSprite(&sSpriteTemplate_EggShard, x, y, 4); + gSprites[spriteId].sVelocX = velocityX; + gSprites[spriteId].sVelocY = velocityY; + gSprites[spriteId].sAccelY = acceleration; + StartSpriteAnim(&gSprites[spriteId], spriteAnimIndex); } static void EggHatchPrintMessage(u8 windowId, u8* string, u8 x, u8 y, u8 speed) diff --git a/src/ereader_helpers.c b/src/ereader_helpers.c index 0de87602ee..c3f17f234a 100755 --- a/src/ereader_helpers.c +++ b/src/ereader_helpers.c @@ -10,7 +10,6 @@ #include "task.h" #include "util.h" #include "trainer_hill.h" -#include "constants/easy_chat.h" #include "constants/trainers.h" #include "constants/moves.h" #include "constants/items.h" diff --git a/src/ereader_screen.c b/src/ereader_screen.c index f98a0247d3..a22b85babd 100755 --- a/src/ereader_screen.c +++ b/src/ereader_screen.c @@ -41,8 +41,8 @@ static void Task_EReader(u8); struct EReaderData gEReaderData; -extern const u8 gEReaderLinkData_Start[]; -extern const u8 gEReaderLinkData_End[]; +extern const u8 gMultiBootProgram_EReader_Start[]; +extern const u8 gMultiBootProgram_EReader_End[]; static void EReader_Load(struct EReaderData *eReader, int size, u32 *data) { @@ -397,8 +397,8 @@ static void Task_EReader(u8 taskId) break; case ER_STATE_CONNECTING: AddTextPrinterToWindow1(gJPText_Connecting); - // XXX: This (u32*) cast is discarding the const qualifier from gEReaderLinkData_Start - EReader_Load(&gEReaderData, gEReaderLinkData_End - gEReaderLinkData_Start, (u32*)gEReaderLinkData_Start); + // XXX: This (u32*) cast is discarding the const qualifier from gMultiBootProgram_EReader_Start + EReader_Load(&gEReaderData, gMultiBootProgram_EReader_End - gMultiBootProgram_EReader_Start, (u32*)gMultiBootProgram_EReader_Start); data->state = ER_STATE_TRANSFER; break; case ER_STATE_TRANSFER: diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 054f1d233d..41a63f0c8c 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -27,7 +27,6 @@ #include "constants/event_objects.h" #include "constants/field_effects.h" #include "constants/items.h" -#include "constants/maps.h" #include "constants/mauville_old_man.h" #include "constants/trainer_types.h" #include "constants/union_room.h" @@ -42,12 +41,17 @@ enum { MOVE_SPEED_FASTEST, }; +enum { + JUMP_DISTANCE_IN_PLACE, + JUMP_DISTANCE_NORMAL, + JUMP_DISTANCE_FAR, +}; + // Sprite data used throughout #define sObjEventId data[0] #define sTypeFuncId data[1] // Index into corresponding gMovementTypeFuncs_* table #define sActionFuncId data[2] // Index into corresponding gMovementActionFuncs_* table #define sDirection data[3] -#define sSpeed data[4] #define movement_type_def(setup, table) \ @@ -107,7 +111,7 @@ static void GetGroundEffectFlags_Seaweed(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_JumpLanding(struct ObjectEvent*, u32*); static u8 ObjectEventGetNearbyReflectionType(struct ObjectEvent*); static u8 GetReflectionTypeByMetatileBehavior(u32); -static void InitObjectPriorityByZCoord(struct Sprite *sprite, u8 z); +static void InitObjectPriorityByElevation(struct Sprite *, u8); static void ObjectEventUpdateSubpriority(struct ObjectEvent*, struct Sprite*); static void DoTracksGroundEffect_None(struct ObjectEvent*, struct Sprite*, u8); static void DoTracksGroundEffect_Footprints(struct ObjectEvent*, struct Sprite*, u8); @@ -116,7 +120,7 @@ static void DoRippleFieldEffect(struct ObjectEvent*, struct Sprite*); static void DoGroundEffects_OnSpawn(struct ObjectEvent*, struct Sprite*); static void DoGroundEffects_OnBeginStep(struct ObjectEvent*, struct Sprite*); static void DoGroundEffects_OnFinishStep(struct ObjectEvent*, struct Sprite*); -static void UpdateObjectEventSpritePosition(struct Sprite*); +static void VirtualObject_UpdateAnim(struct Sprite*); static void ApplyLevitateMovement(u8); static bool8 MovementType_Disguise_Callback(struct ObjectEvent *, struct Sprite *); static bool8 MovementType_Buried_Callback(struct ObjectEvent *, struct Sprite *); @@ -128,7 +132,7 @@ static void SetObjectEventDynamicGraphicsId(struct ObjectEvent *); static void RemoveObjectEventInternal(struct ObjectEvent *); static u16 GetObjectEventFlagIdByObjectEventId(u8); static void UpdateObjectEventVisibility(struct ObjectEvent *, struct Sprite *); -static void MakeObjectTemplateFromObjectEventTemplate(struct ObjectEventTemplate *, struct SpriteTemplate *, const struct SubspriteTable **); +static void MakeSpriteTemplateFromObjectEventTemplate(struct ObjectEventTemplate *, struct SpriteTemplate *, const struct SubspriteTable **); static void GetObjectEventMovingCameraOffset(s16 *, s16 *); static struct ObjectEventTemplate *GetObjectEventTemplateByLocalIdAndMap(u8, u8, u8); static void LoadObjectEventPalette(u16); @@ -139,27 +143,29 @@ static void ResetObjectEventFldEffData(struct ObjectEvent *); static u8 LoadSpritePaletteIfTagExists(const struct SpritePalette *); static u8 FindObjectEventPaletteIndexByTag(u16); static void _PatchObjectPalette(u16, u8); -static bool8 ObjectEventDoesZCoordMatch(struct ObjectEvent *, u8); +static bool8 ObjectEventDoesElevationMatch(struct ObjectEvent *, u8); static void SpriteCB_CameraObject(struct Sprite *); static void CameraObject_0(struct Sprite *); static void CameraObject_1(struct Sprite *); static void CameraObject_2(struct Sprite *); -static struct ObjectEventTemplate *FindObjectEventTemplateByLocalId(u8 localId, struct ObjectEventTemplate *templates, u8 count); +static struct ObjectEventTemplate *FindObjectEventTemplateByLocalId(u8, struct ObjectEventTemplate *, u8); static void ClearObjectEventMovement(struct ObjectEvent *, struct Sprite *); static void ObjectEventSetSingleMovement(struct ObjectEvent *, struct Sprite *, u8); static void SetSpriteDataForNormalStep(struct Sprite *, u8, u8); -static void InitSpriteForFigure8Anim(struct Sprite *sprite); -static bool8 AnimateSpriteInFigure8(struct Sprite *sprite); -static void UpdateObjectEventSprite(struct Sprite *); +static void InitSpriteForFigure8Anim(struct Sprite *); +static bool8 AnimateSpriteInFigure8(struct Sprite *); +static void SpriteCB_VirtualObject(struct Sprite *); static void DoShadowFieldEffect(struct ObjectEvent *); static void SetJumpSpriteData(struct Sprite *, u8, u8, u8); -static void SetWalkSlowSpriteData(struct Sprite *sprite, u8 direction); -static bool8 UpdateWalkSlowAnim(struct Sprite *sprite); -static u8 DoJumpSpriteMovement(struct Sprite *sprite); -static u8 DoJumpSpecialSpriteMovement(struct Sprite *sprite); +static void SetWalkSlowSpriteData(struct Sprite *, u8); +static bool8 UpdateWalkSlowAnim(struct Sprite *); +static u8 DoJumpSpriteMovement(struct Sprite *); +static u8 DoJumpSpecialSpriteMovement(struct Sprite *); static void CreateLevitateMovementTask(struct ObjectEvent *); static void DestroyLevitateMovementTask(u8); -static bool8 NpcTakeStep(struct Sprite *sprite); +static bool8 NpcTakeStep(struct Sprite *); +static bool8 IsElevationMismatchAt(u8, s16, s16); +static bool8 AreElevationsCompatible(u8 a, u8 b); static const struct SpriteFrameImage sPicTable_PechaBerryTree[]; @@ -739,26 +745,26 @@ static const u8 sJumpSpecialDirectionAnimNums[] = { // used for jumping onto sur [DIR_NORTHEAST] = ANIM_GET_ON_OFF_POKEMON_NORTH, }; static const u8 sAcroWheelieDirectionAnimNums[] = { - [DIR_NONE] = ANIM_BUNNY_HOPPY_BACK_WHEEL_SOUTH, - [DIR_SOUTH] = ANIM_BUNNY_HOPPY_BACK_WHEEL_SOUTH, - [DIR_NORTH] = ANIM_BUNNY_HOPPY_BACK_WHEEL_NORTH, - [DIR_WEST] = ANIM_BUNNY_HOPPY_BACK_WHEEL_WEST, - [DIR_EAST] = ANIM_BUNNY_HOPPY_BACK_WHEEL_EAST, - [DIR_SOUTHWEST] = ANIM_BUNNY_HOPPY_BACK_WHEEL_SOUTH, - [DIR_SOUTHEAST] = ANIM_BUNNY_HOPPY_BACK_WHEEL_SOUTH, - [DIR_NORTHWEST] = ANIM_BUNNY_HOPPY_BACK_WHEEL_NORTH, - [DIR_NORTHEAST] = ANIM_BUNNY_HOPPY_BACK_WHEEL_NORTH, + [DIR_NONE] = ANIM_BUNNY_HOP_BACK_WHEEL_SOUTH, + [DIR_SOUTH] = ANIM_BUNNY_HOP_BACK_WHEEL_SOUTH, + [DIR_NORTH] = ANIM_BUNNY_HOP_BACK_WHEEL_NORTH, + [DIR_WEST] = ANIM_BUNNY_HOP_BACK_WHEEL_WEST, + [DIR_EAST] = ANIM_BUNNY_HOP_BACK_WHEEL_EAST, + [DIR_SOUTHWEST] = ANIM_BUNNY_HOP_BACK_WHEEL_SOUTH, + [DIR_SOUTHEAST] = ANIM_BUNNY_HOP_BACK_WHEEL_SOUTH, + [DIR_NORTHWEST] = ANIM_BUNNY_HOP_BACK_WHEEL_NORTH, + [DIR_NORTHEAST] = ANIM_BUNNY_HOP_BACK_WHEEL_NORTH, }; static const u8 sAcroUnusedDirectionAnimNums[] = { - [DIR_NONE] = ANIM_BUNNY_HOPPY_FRONT_WHEEL_SOUTH, - [DIR_SOUTH] = ANIM_BUNNY_HOPPY_FRONT_WHEEL_SOUTH, - [DIR_NORTH] = ANIM_BUNNY_HOPPY_FRONT_WHEEL_NORTH, - [DIR_WEST] = ANIM_BUNNY_HOPPY_FRONT_WHEEL_WEST, - [DIR_EAST] = ANIM_BUNNY_HOPPY_FRONT_WHEEL_EAST, - [DIR_SOUTHWEST] = ANIM_BUNNY_HOPPY_FRONT_WHEEL_SOUTH, - [DIR_SOUTHEAST] = ANIM_BUNNY_HOPPY_FRONT_WHEEL_SOUTH, - [DIR_NORTHWEST] = ANIM_BUNNY_HOPPY_FRONT_WHEEL_NORTH, - [DIR_NORTHEAST] = ANIM_BUNNY_HOPPY_FRONT_WHEEL_NORTH, + [DIR_NONE] = ANIM_BUNNY_HOP_FRONT_WHEEL_SOUTH, + [DIR_SOUTH] = ANIM_BUNNY_HOP_FRONT_WHEEL_SOUTH, + [DIR_NORTH] = ANIM_BUNNY_HOP_FRONT_WHEEL_NORTH, + [DIR_WEST] = ANIM_BUNNY_HOP_FRONT_WHEEL_WEST, + [DIR_EAST] = ANIM_BUNNY_HOP_FRONT_WHEEL_EAST, + [DIR_SOUTHWEST] = ANIM_BUNNY_HOP_FRONT_WHEEL_SOUTH, + [DIR_SOUTHEAST] = ANIM_BUNNY_HOP_FRONT_WHEEL_SOUTH, + [DIR_NORTHWEST] = ANIM_BUNNY_HOP_FRONT_WHEEL_NORTH, + [DIR_NORTHEAST] = ANIM_BUNNY_HOP_FRONT_WHEEL_NORTH, }; static const u8 sAcroEndWheelieDirectionAnimNums[] = { [DIR_NONE] = ANIM_STANDING_WHEELIE_BACK_WHEEL_SOUTH, @@ -1142,7 +1148,7 @@ static const u8 sPlayerDirectionToCopyDirection[][4] = { static void ClearObjectEvent(struct ObjectEvent *objectEvent) { *objectEvent = (struct ObjectEvent){}; - objectEvent->localId = 0xFF; + objectEvent->localId = OBJ_EVENT_ID_PLAYER; objectEvent->mapNum = MAP_NUM(UNDEFINED); objectEvent->mapGroup = MAP_GROUP(UNDEFINED); objectEvent->movementActionId = MOVEMENT_ACTION_NONE; @@ -1430,7 +1436,7 @@ static u8 TrySetupObjectEventSprite(struct ObjectEventTemplate *objectEventTempl if (!objectEvent->inanimate) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(objectEvent->facingDirection)); - SetObjectSubpriorityByZCoord(objectEvent->previousElevation, sprite, 1); + SetObjectSubpriorityByElevation(objectEvent->previousElevation, sprite, 1); UpdateObjectEventVisibility(objectEvent, sprite); return objectEventId; } @@ -1444,7 +1450,7 @@ static u8 TrySpawnObjectEventTemplate(struct ObjectEventTemplate *objectEventTem const struct SubspriteTable *subspriteTables = NULL; graphicsInfo = GetObjectEventGraphicsInfo(objectEventTemplate->graphicsId); - MakeObjectTemplateFromObjectEventTemplate(objectEventTemplate, &spriteTemplate, &subspriteTables); + MakeSpriteTemplateFromObjectEventTemplate(objectEventTemplate, &spriteTemplate, &subspriteTables); spriteFrameImage.size = graphicsInfo->size; spriteTemplate.images = &spriteFrameImage; objectEventId = TrySetupObjectEventSprite(objectEventTemplate, &spriteTemplate, mapNum, mapGroup, cameraX, cameraY); @@ -1467,7 +1473,7 @@ u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *objectEventTemplate) return TrySpawnObjectEventTemplate(objectEventTemplate, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, cameraX, cameraY); } -u8 SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 z) +u8 SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 elevation) { struct ObjectEventTemplate objectEventTemplate; @@ -1478,7 +1484,7 @@ u8 SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 l objectEventTemplate.inConnection = 0; objectEventTemplate.x = x; objectEventTemplate.y = y; - objectEventTemplate.elevation = z; + objectEventTemplate.elevation = elevation; objectEventTemplate.movementType = movementBehavior; objectEventTemplate.movementRangeX = 0; objectEventTemplate.movementRangeY = 0; @@ -1500,7 +1506,7 @@ u8 TrySpawnObjectEvent(u8 localId, u8 mapNum, u8 mapGroup) return TrySpawnObjectEventTemplate(objectEventTemplate, mapNum, mapGroup, cameraX, cameraY); } -static void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) +static void CopyObjectGraphicsInfoToSpriteTemplate(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) { const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(graphicsId); @@ -1514,17 +1520,18 @@ static void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void ( *subspriteTables = graphicsInfo->subspriteTables; } -static void MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex(u16 graphicsId, u16 callbackIndex, struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) +static void CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(u16 graphicsId, u16 movementType, struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) { - MakeObjectTemplateFromObjectEventGraphicsInfo(graphicsId, sMovementTypeCallbacks[callbackIndex], spriteTemplate, subspriteTables); + CopyObjectGraphicsInfoToSpriteTemplate(graphicsId, sMovementTypeCallbacks[movementType], spriteTemplate, subspriteTables); } -static void MakeObjectTemplateFromObjectEventTemplate(struct ObjectEventTemplate *objectEventTemplate, struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) +static void MakeSpriteTemplateFromObjectEventTemplate(struct ObjectEventTemplate *objectEventTemplate, struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) { - MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex(objectEventTemplate->graphicsId, objectEventTemplate->movementType, spriteTemplate, subspriteTables); + CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(objectEventTemplate->graphicsId, objectEventTemplate->movementType, spriteTemplate, subspriteTables); } -u8 AddPseudoObjectEvent(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority) +// Used to create a sprite using a graphicsId associated with object events. +u8 CreateObjectGraphicsSprite(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority) { struct SpriteTemplate *spriteTemplate; const struct SubspriteTable *subspriteTables; @@ -1532,7 +1539,7 @@ u8 AddPseudoObjectEvent(u16 graphicsId, void (*callback)(struct Sprite *), s16 x u8 spriteId; spriteTemplate = malloc(sizeof(struct SpriteTemplate)); - MakeObjectTemplateFromObjectEventGraphicsInfo(graphicsId, callback, spriteTemplate, &subspriteTables); + CopyObjectGraphicsInfoToSpriteTemplate(graphicsId, callback, spriteTemplate, &subspriteTables); if (spriteTemplate->paletteTag != TAG_NONE) LoadObjectEventPalette(spriteTemplate->paletteTag); @@ -1548,9 +1555,15 @@ u8 AddPseudoObjectEvent(u16 graphicsId, void (*callback)(struct Sprite *), s16 x return spriteId; } -// Used to create sprite object events instead of a full object event -// Used when resources are limiting, e.g. for the audience in contests or group members in Union Room -u8 CreateObjectSprite(u8 graphicsId, u8 objectEventId, s16 x, s16 y, u8 z, u8 direction) +#define sVirtualObjId data[0] +#define sVirtualObjElev data[1] + +// "Virtual Objects" are a class of sprites used instead of a full object event. +// Used when more objects are needed than the object event limit (for Contest / Battle Dome audiences and group members in Union Room). +// A unique id is given as an argument and stored in the sprite data to allow referring back to the same virtual object. +// They can be turned (and, in the case of the Union Room, animated teleporting in and out) but do not have movement types +// or any of the other data normally associated with object events. +u8 CreateVirtualObject(u8 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevation, u8 direction) { u8 spriteId; struct Sprite *sprite; @@ -1559,7 +1572,7 @@ u8 CreateObjectSprite(u8 graphicsId, u8 objectEventId, s16 x, s16 y, u8 z, u8 di const struct ObjectEventGraphicsInfo *graphicsInfo; graphicsInfo = GetObjectEventGraphicsInfo(graphicsId); - MakeObjectTemplateFromObjectEventGraphicsInfo(graphicsId, UpdateObjectEventSprite, &spriteTemplate, &subspriteTables); + CopyObjectGraphicsInfoToSpriteTemplate(graphicsId, SpriteCB_VirtualObject, &spriteTemplate, &subspriteTables); *(u16 *)&spriteTemplate.paletteTag = TAG_NONE; x += MAP_OFFSET; y += MAP_OFFSET; @@ -1576,8 +1589,8 @@ u8 CreateObjectSprite(u8 graphicsId, u8 objectEventId, s16 x, s16 y, u8 z, u8 di sprite->oam.paletteNum -= 16; sprite->coordOffsetEnabled = TRUE; - sprite->sObjEventId = objectEventId; - sprite->data[1] = z; + sprite->sVirtualObjId = virtualObjId; + sprite->sVirtualObjElev = elevation; if (graphicsInfo->paletteSlot == 10) LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); else if (graphicsInfo->paletteSlot >= 16) @@ -1588,8 +1601,8 @@ u8 CreateObjectSprite(u8 graphicsId, u8 objectEventId, s16 x, s16 y, u8 z, u8 di SetSubspriteTables(sprite, subspriteTables); sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY; } - InitObjectPriorityByZCoord(sprite, z); - SetObjectSubpriorityByZCoord(z, sprite, 1); + InitObjectPriorityByElevation(sprite, elevation); + SetObjectSubpriorityByElevation(elevation, sprite, 1); StartSpriteAnim(sprite, GetFaceDirectionAnimNum(direction)); } return spriteId; @@ -1699,7 +1712,7 @@ static void SpawnObjectEventOnReturnToField(u8 objectEventId, s16 x, s16 y) subspriteTables = NULL; graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); spriteFrameImage.size = graphicsInfo->size; - MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex(objectEvent->graphicsId, objectEvent->movementType, &spriteTemplate, &subspriteTables); + CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(objectEvent->graphicsId, objectEvent->movementType, &spriteTemplate, &subspriteTables); spriteTemplate.images = &spriteFrameImage; *(u16 *)&spriteTemplate.paletteTag = TAG_NONE; @@ -1745,7 +1758,7 @@ static void SpawnObjectEventOnReturnToField(u8 objectEventId, s16 x, s16 y) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(objectEvent->facingDirection)); ResetObjectEventFldEffData(objectEvent); - SetObjectSubpriorityByZCoord(objectEvent->previousElevation, sprite, 1); + SetObjectSubpriorityByElevation(objectEvent->previousElevation, sprite, 1); } } @@ -1917,7 +1930,7 @@ void AllowObjectAtPosTriggerGroundEffects(s16 x, s16 y) } } -void SetObjectPriority(u8 localId, u8 mapNum, u8 mapGroup, u8 subpriority) +void SetObjectSubpriority(u8 localId, u8 mapNum, u8 mapGroup, u8 subpriority) { u8 objectEventId; struct ObjectEvent *objectEvent; @@ -1932,7 +1945,7 @@ void SetObjectPriority(u8 localId, u8 mapNum, u8 mapGroup, u8 subpriority) } } -void ResetObjectPriority(u8 localId, u8 mapNum, u8 mapGroup) +void ResetObjectSubpriority(u8 localId, u8 mapNum, u8 mapGroup) { u8 objectEventId; struct ObjectEvent *objectEvent; @@ -2138,7 +2151,7 @@ void UpdateObjectEventCoordsForCameraUpdate(void) } } -u8 GetObjectEventIdByXYZ(u16 x, u16 y, u8 z) +u8 GetObjectEventIdByPosition(u16 x, u16 y, u8 elevation) { u8 i; @@ -2146,16 +2159,18 @@ u8 GetObjectEventIdByXYZ(u16 x, u16 y, u8 z) { if (gObjectEvents[i].active) { - if (gObjectEvents[i].currentCoords.x == x && gObjectEvents[i].currentCoords.y == y && ObjectEventDoesZCoordMatch(&gObjectEvents[i], z)) + if (gObjectEvents[i].currentCoords.x == x + && gObjectEvents[i].currentCoords.y == y + && ObjectEventDoesElevationMatch(&gObjectEvents[i], elevation)) return i; } } return OBJECT_EVENTS_COUNT; } -static bool8 ObjectEventDoesZCoordMatch(struct ObjectEvent *objectEvent, u8 z) +static bool8 ObjectEventDoesElevationMatch(struct ObjectEvent *objectEvent, u8 elevation) { - if (objectEvent->currentElevation != 0 && z != 0 && objectEvent->currentElevation != z) + if (objectEvent->currentElevation != 0 && elevation != 0 && objectEvent->currentElevation != elevation) return FALSE; return TRUE; @@ -4622,11 +4637,11 @@ u8 GetCollisionAtCoords(struct ObjectEvent *objectEvent, s16 x, s16 y, u32 dir) if (IsCoordOutsideObjectEventMovementRange(objectEvent, x, y)) return COLLISION_OUTSIDE_RANGE; - else if (MapGridIsImpassableAt(x, y) || GetMapBorderIdAt(x, y) == -1 || IsMetatileDirectionallyImpassable(objectEvent, x, y, direction)) + else if (MapGridIsImpassableAt(x, y) || GetMapBorderIdAt(x, y) == CONNECTION_INVALID || IsMetatileDirectionallyImpassable(objectEvent, x, y, direction)) return COLLISION_IMPASSABLE; else if (objectEvent->trackedByCamera && !CanCameraMoveInDirection(direction)) return COLLISION_IMPASSABLE; - else if (IsZCoordMismatchAt(objectEvent->currentElevation, x, y)) + else if (IsElevationMismatchAt(objectEvent->currentElevation, x, y)) return COLLISION_ELEVATION_MISMATCH; else if (DoesObjectCollideWithObjectAt(objectEvent, x, y)) return COLLISION_OBJECT_EVENT; @@ -4638,13 +4653,13 @@ u8 GetCollisionFlagsAtCoords(struct ObjectEvent *objectEvent, s16 x, s16 y, u8 d u8 flags = 0; if (IsCoordOutsideObjectEventMovementRange(objectEvent, x, y)) - flags |= 1; - if (MapGridIsImpassableAt(x, y) || GetMapBorderIdAt(x, y) == -1 || IsMetatileDirectionallyImpassable(objectEvent, x, y, direction) || (objectEvent->trackedByCamera && !CanCameraMoveInDirection(direction))) - flags |= 2; - if (IsZCoordMismatchAt(objectEvent->currentElevation, x, y)) - flags |= 4; + flags |= 1 << (COLLISION_OUTSIDE_RANGE - 1); + if (MapGridIsImpassableAt(x, y) || GetMapBorderIdAt(x, y) == CONNECTION_INVALID || IsMetatileDirectionallyImpassable(objectEvent, x, y, direction) || (objectEvent->trackedByCamera && !CanCameraMoveInDirection(direction))) + flags |= 1 << (COLLISION_IMPASSABLE - 1); + if (IsElevationMismatchAt(objectEvent->currentElevation, x, y)) + flags |= 1 << (COLLISION_ELEVATION_MISMATCH - 1); if (DoesObjectCollideWithObjectAt(objectEvent, x, y)) - flags |= 8; + flags |= 1 << (COLLISION_OBJECT_EVENT - 1); return flags; } @@ -4695,7 +4710,7 @@ static bool8 DoesObjectCollideWithObjectAt(struct ObjectEvent *objectEvent, s16 { if ((curObject->currentCoords.x == x && curObject->currentCoords.y == y) || (curObject->previousCoords.x == x && curObject->previousCoords.y == y)) { - if (AreZCoordsCompatible(objectEvent->currentElevation, curObject->currentElevation)) + if (AreElevationsCompatible(objectEvent->currentElevation, curObject->currentElevation)) return TRUE; } } @@ -5387,7 +5402,7 @@ enum { JUMP_TYPE_NORMAL, }; -static void InitJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 type) +static void InitJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 distance, u8 type) { s16 displacements[ARRAY_COUNT(sJumpInitDisplacements)]; s16 x; @@ -5397,22 +5412,24 @@ static void InitJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 x = 0; y = 0; SetObjectEventDirection(objectEvent, direction); - MoveCoordsInDirection(direction, &x, &y, displacements[speed], displacements[speed]); + MoveCoordsInDirection(direction, &x, &y, displacements[distance], displacements[distance]); ShiftObjectEventCoords(objectEvent, objectEvent->currentCoords.x + x, objectEvent->currentCoords.y + y); - SetJumpSpriteData(sprite, direction, speed, type); + SetJumpSpriteData(sprite, direction, distance, type); sprite->sActionFuncId = 1; sprite->animPaused = FALSE; objectEvent->triggerGroundEffectsOnMove = TRUE; objectEvent->disableCoveringGroundEffects = TRUE; } -static void InitJumpRegular(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 type) +static void InitJumpRegular(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 distance, u8 type) { - InitJump(objectEvent, sprite, direction, speed, type); + InitJump(objectEvent, sprite, direction, distance, type); SetStepAnimHandleAlternation(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection)); DoShadowFieldEffect(objectEvent); } +#define sDistance data[4] + static u8 UpdateJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 callback(struct Sprite *)) { s16 displacements[ARRAY_COUNT(sJumpDisplacements)]; @@ -5422,11 +5439,11 @@ static u8 UpdateJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, memcpy(displacements, sJumpDisplacements, sizeof sJumpDisplacements); result = callback(sprite); - if (result == JUMP_HALFWAY && displacements[sprite->sSpeed] != 0) + if (result == JUMP_HALFWAY && displacements[sprite->sDistance] != 0) { x = 0; y = 0; - MoveCoordsInDirection(objectEvent->movementDirection, &x, &y, displacements[sprite->sSpeed], displacements[sprite->sSpeed]); + MoveCoordsInDirection(objectEvent->movementDirection, &x, &y, displacements[sprite->sDistance], displacements[sprite->sDistance]); ShiftObjectEventCoords(objectEvent, objectEvent->currentCoords.x + x, objectEvent->currentCoords.y + y); objectEvent->triggerGroundEffectsOnMove = TRUE; objectEvent->disableCoveringGroundEffects = TRUE; @@ -5441,6 +5458,8 @@ static u8 UpdateJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, return result; } +#undef sDistance + static u8 DoJumpAnimStep(struct ObjectEvent *objectEvent, struct Sprite *sprite) { return UpdateJumpAnim(objectEvent, sprite, DoJumpSpriteMovement); @@ -5483,7 +5502,7 @@ static bool8 DoJumpInPlaceAnim(struct ObjectEvent *objectEvent, struct Sprite *s bool8 MovementAction_Jump2Down_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_SOUTH, 2, JUMP_TYPE_HIGH); + InitJumpRegular(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_Jump2Down_Step1(objectEvent, sprite); } @@ -5500,7 +5519,7 @@ bool8 MovementAction_Jump2Down_Step1(struct ObjectEvent *objectEvent, struct Spr bool8 MovementAction_Jump2Up_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_NORTH, 2, JUMP_TYPE_HIGH); + InitJumpRegular(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_Jump2Up_Step1(objectEvent, sprite); } @@ -5517,7 +5536,7 @@ bool8 MovementAction_Jump2Up_Step1(struct ObjectEvent *objectEvent, struct Sprit bool8 MovementAction_Jump2Left_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_WEST, 2, JUMP_TYPE_HIGH); + InitJumpRegular(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_Jump2Left_Step1(objectEvent, sprite); } @@ -5534,7 +5553,7 @@ bool8 MovementAction_Jump2Left_Step1(struct ObjectEvent *objectEvent, struct Spr bool8 MovementAction_Jump2Right_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_EAST, 2, JUMP_TYPE_HIGH); + InitJumpRegular(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_Jump2Right_Step1(objectEvent, sprite); } @@ -6065,7 +6084,7 @@ bool8 MovementAction_WaitSpriteAnim(struct ObjectEvent *objectEvent, struct Spri static void InitJumpSpecial(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction) { - InitJump(objectEvent, sprite, direction, 1, JUMP_TYPE_HIGH); + InitJump(objectEvent, sprite, direction, JUMP_DISTANCE_NORMAL, JUMP_TYPE_HIGH); StartSpriteAnim(sprite, GetJumpSpecialDirectionAnimNum(direction)); } @@ -6179,7 +6198,7 @@ bool8 MovementAction_UnlockFacingDirection_Step0(struct ObjectEvent *objectEvent bool8 MovementAction_JumpDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_SOUTH, 1, JUMP_TYPE_NORMAL); + InitJumpRegular(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_NORMAL, JUMP_TYPE_NORMAL); return MovementAction_JumpDown_Step1(objectEvent, sprite); } @@ -6196,7 +6215,7 @@ bool8 MovementAction_JumpDown_Step1(struct ObjectEvent *objectEvent, struct Spri bool8 MovementAction_JumpUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_NORTH, 1, JUMP_TYPE_NORMAL); + InitJumpRegular(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_NORMAL, JUMP_TYPE_NORMAL); return MovementAction_JumpUp_Step1(objectEvent, sprite); } @@ -6213,7 +6232,7 @@ bool8 MovementAction_JumpUp_Step1(struct ObjectEvent *objectEvent, struct Sprite bool8 MovementAction_JumpLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_WEST, 1, JUMP_TYPE_NORMAL); + InitJumpRegular(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_NORMAL, JUMP_TYPE_NORMAL); return MovementAction_JumpLeft_Step1(objectEvent, sprite); } @@ -6230,7 +6249,7 @@ bool8 MovementAction_JumpLeft_Step1(struct ObjectEvent *objectEvent, struct Spri bool8 MovementAction_JumpRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_EAST, 1, JUMP_TYPE_NORMAL); + InitJumpRegular(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_NORMAL, JUMP_TYPE_NORMAL); return MovementAction_JumpRight_Step1(objectEvent, sprite); } @@ -6247,7 +6266,7 @@ bool8 MovementAction_JumpRight_Step1(struct ObjectEvent *objectEvent, struct Spr bool8 MovementAction_JumpInPlaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_SOUTH, 0, JUMP_TYPE_HIGH); + InitJumpRegular(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_HIGH); return MovementAction_JumpInPlaceDown_Step1(objectEvent, sprite); } @@ -6264,7 +6283,7 @@ bool8 MovementAction_JumpInPlaceDown_Step1(struct ObjectEvent *objectEvent, stru bool8 MovementAction_JumpInPlaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_NORTH, 0, JUMP_TYPE_HIGH); + InitJumpRegular(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_HIGH); return MovementAction_JumpInPlaceUp_Step1(objectEvent, sprite); } @@ -6281,7 +6300,7 @@ bool8 MovementAction_JumpInPlaceUp_Step1(struct ObjectEvent *objectEvent, struct bool8 MovementAction_JumpInPlaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_WEST, 0, JUMP_TYPE_HIGH); + InitJumpRegular(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_HIGH); return MovementAction_JumpInPlaceLeft_Step1(objectEvent, sprite); } @@ -6298,7 +6317,7 @@ bool8 MovementAction_JumpInPlaceLeft_Step1(struct ObjectEvent *objectEvent, stru bool8 MovementAction_JumpInPlaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_EAST, 0, JUMP_TYPE_HIGH); + InitJumpRegular(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_HIGH); return MovementAction_JumpInPlaceRight_Step1(objectEvent, sprite); } @@ -6315,7 +6334,7 @@ bool8 MovementAction_JumpInPlaceRight_Step1(struct ObjectEvent *objectEvent, str bool8 MovementAction_JumpInPlaceDownUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_SOUTH, 0, JUMP_TYPE_NORMAL); + InitJumpRegular(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_NORMAL); return MovementAction_JumpInPlaceDownUp_Step1(objectEvent, sprite); } @@ -6332,7 +6351,7 @@ bool8 MovementAction_JumpInPlaceDownUp_Step1(struct ObjectEvent *objectEvent, st bool8 MovementAction_JumpInPlaceUpDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_NORTH, 0, JUMP_TYPE_NORMAL); + InitJumpRegular(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_NORMAL); return MovementAction_JumpInPlaceUpDown_Step1(objectEvent, sprite); } @@ -6349,7 +6368,7 @@ bool8 MovementAction_JumpInPlaceUpDown_Step1(struct ObjectEvent *objectEvent, st bool8 MovementAction_JumpInPlaceLeftRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_WEST, 0, JUMP_TYPE_NORMAL); + InitJumpRegular(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_NORMAL); return MovementAction_JumpInPlaceLeftRight_Step1(objectEvent, sprite); } @@ -6366,7 +6385,7 @@ bool8 MovementAction_JumpInPlaceLeftRight_Step1(struct ObjectEvent *objectEvent, bool8 MovementAction_JumpInPlaceRightLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_EAST, 0, JUMP_TYPE_NORMAL); + InitJumpRegular(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_NORMAL); return MovementAction_JumpInPlaceRightLeft_Step1(objectEvent, sprite); } @@ -6801,16 +6820,16 @@ bool8 MovementAction_Figure8_Step1(struct ObjectEvent *objectEvent, struct Sprit return FALSE; } -static void InitAcroWheelieJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 type) +static void InitAcroWheelieJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 distance, u8 type) { - InitJump(objectEvent, sprite, direction, speed, type); + InitJump(objectEvent, sprite, direction, distance, type); StartSpriteAnimIfDifferent(sprite, GetAcroWheelieDirectionAnimNum(direction)); DoShadowFieldEffect(objectEvent); } bool8 MovementAction_AcroWheelieHopFaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, 0, JUMP_TYPE_LOW); + InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopFaceDown_Step1(objectEvent, sprite); } @@ -6827,7 +6846,7 @@ bool8 MovementAction_AcroWheelieHopFaceDown_Step1(struct ObjectEvent *objectEven bool8 MovementAction_AcroWheelieHopFaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, 0, JUMP_TYPE_LOW); + InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopFaceUp_Step1(objectEvent, sprite); } @@ -6844,7 +6863,7 @@ bool8 MovementAction_AcroWheelieHopFaceUp_Step1(struct ObjectEvent *objectEvent, bool8 MovementAction_AcroWheelieHopFaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, 0, JUMP_TYPE_LOW); + InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopFaceLeft_Step1(objectEvent, sprite); } @@ -6861,7 +6880,7 @@ bool8 MovementAction_AcroWheelieHopFaceLeft_Step1(struct ObjectEvent *objectEven bool8 MovementAction_AcroWheelieHopFaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, 0, JUMP_TYPE_LOW); + InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopFaceRight_Step1(objectEvent, sprite); } @@ -6878,7 +6897,7 @@ bool8 MovementAction_AcroWheelieHopFaceRight_Step1(struct ObjectEvent *objectEve bool8 MovementAction_AcroWheelieHopDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, 1, JUMP_TYPE_LOW); + InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_NORMAL, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopDown_Step1(objectEvent, sprite); } @@ -6895,7 +6914,7 @@ bool8 MovementAction_AcroWheelieHopDown_Step1(struct ObjectEvent *objectEvent, s bool8 MovementAction_AcroWheelieHopUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, 1, JUMP_TYPE_LOW); + InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_NORMAL, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopUp_Step1(objectEvent, sprite); } @@ -6912,7 +6931,7 @@ bool8 MovementAction_AcroWheelieHopUp_Step1(struct ObjectEvent *objectEvent, str bool8 MovementAction_AcroWheelieHopLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, 1, JUMP_TYPE_LOW); + InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_NORMAL, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopLeft_Step1(objectEvent, sprite); } @@ -6929,7 +6948,7 @@ bool8 MovementAction_AcroWheelieHopLeft_Step1(struct ObjectEvent *objectEvent, s bool8 MovementAction_AcroWheelieHopRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, 1, JUMP_TYPE_LOW); + InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_NORMAL, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopRight_Step1(objectEvent, sprite); } @@ -6946,7 +6965,7 @@ bool8 MovementAction_AcroWheelieHopRight_Step1(struct ObjectEvent *objectEvent, bool8 MovementAction_AcroWheelieJumpDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, 2, JUMP_TYPE_HIGH); + InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_AcroWheelieJumpDown_Step1(objectEvent, sprite); } @@ -6963,7 +6982,7 @@ bool8 MovementAction_AcroWheelieJumpDown_Step1(struct ObjectEvent *objectEvent, bool8 MovementAction_AcroWheelieJumpUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, 2, JUMP_TYPE_HIGH); + InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_AcroWheelieJumpUp_Step1(objectEvent, sprite); } @@ -6980,7 +6999,7 @@ bool8 MovementAction_AcroWheelieJumpUp_Step1(struct ObjectEvent *objectEvent, st bool8 MovementAction_AcroWheelieJumpLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, 2, JUMP_TYPE_HIGH); + InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_AcroWheelieJumpLeft_Step1(objectEvent, sprite); } @@ -6997,7 +7016,7 @@ bool8 MovementAction_AcroWheelieJumpLeft_Step1(struct ObjectEvent *objectEvent, bool8 MovementAction_AcroWheelieJumpRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, 2, JUMP_TYPE_HIGH); + InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_AcroWheelieJumpRight_Step1(objectEvent, sprite); } @@ -7659,23 +7678,23 @@ static void SetObjectEventSpriteOamTableForLongGrass(struct ObjectEvent *objEven sprite->subspriteTableNum = 4; - if (ZCoordToPriority(objEvent->previousElevation) == 1) + if (ElevationToPriority(objEvent->previousElevation) == 1) sprite->subspriteTableNum = 5; } -bool8 IsZCoordMismatchAt(u8 z, s16 x, s16 y) +static bool8 IsElevationMismatchAt(u8 elevation, s16 x, s16 y) { - u8 mapZ; + u8 mapElevation; - if (z == 0) + if (elevation == 0) return FALSE; - mapZ = MapGridGetZCoordAt(x, y); + mapElevation = MapGridGetElevationAt(x, y); - if (mapZ == 0 || mapZ == 15) + if (mapElevation == 0 || mapElevation == 15) return FALSE; - if (mapZ != z) + if (mapElevation != elevation) return TRUE; return FALSE; @@ -7693,43 +7712,43 @@ static const u8 sElevationToSubspriteTableNum[] = { 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 1, }; -void UpdateObjectEventZCoordAndPriority(struct ObjectEvent *objEvent, struct Sprite *sprite) +static void UpdateObjectEventElevationAndPriority(struct ObjectEvent *objEvent, struct Sprite *sprite) { if (objEvent->fixedPriority) return; - ObjectEventUpdateZCoord(objEvent); + ObjectEventUpdateElevation(objEvent); sprite->subspriteTableNum = sElevationToSubspriteTableNum[objEvent->previousElevation]; sprite->oam.priority = sElevationToPriority[objEvent->previousElevation]; } -static void InitObjectPriorityByZCoord(struct Sprite *sprite, u8 z) +static void InitObjectPriorityByElevation(struct Sprite *sprite, u8 elevation) { - sprite->subspriteTableNum = sElevationToSubspriteTableNum[z]; - sprite->oam.priority = sElevationToPriority[z]; + sprite->subspriteTableNum = sElevationToSubspriteTableNum[elevation]; + sprite->oam.priority = sElevationToPriority[elevation]; } -u8 ZCoordToPriority(u8 z) +u8 ElevationToPriority(u8 elevation) { - return sElevationToPriority[z]; + return sElevationToPriority[elevation]; } -void ObjectEventUpdateZCoord(struct ObjectEvent *objEvent) +void ObjectEventUpdateElevation(struct ObjectEvent *objEvent) { - u8 z = MapGridGetZCoordAt(objEvent->currentCoords.x, objEvent->currentCoords.y); - u8 z2 = MapGridGetZCoordAt(objEvent->previousCoords.x, objEvent->previousCoords.y); + u8 curElevation = MapGridGetElevationAt(objEvent->currentCoords.x, objEvent->currentCoords.y); + u8 prevElevation = MapGridGetElevationAt(objEvent->previousCoords.x, objEvent->previousCoords.y); - if (z == 0xF || z2 == 0xF) + if (curElevation == 15 || prevElevation == 15) return; - objEvent->currentElevation = z; + objEvent->currentElevation = curElevation; - if (z != 0 && z != 0xF) - objEvent->previousElevation = z; + if (curElevation != 0 && curElevation != 15) + objEvent->previousElevation = curElevation; } -void SetObjectSubpriorityByZCoord(u8 elevation, struct Sprite *sprite, u8 subpriority) +void SetObjectSubpriorityByElevation(u8 elevation, struct Sprite *sprite, u8 subpriority) { s32 tmp = sprite->centerToCornerVecY; u32 tmpa = *(u16 *)&sprite->y; @@ -7744,10 +7763,10 @@ static void ObjectEventUpdateSubpriority(struct ObjectEvent *objEvent, struct Sp if (objEvent->fixedPriority) return; - SetObjectSubpriorityByZCoord(objEvent->previousElevation, sprite, 1); + SetObjectSubpriorityByElevation(objEvent->previousElevation, sprite, 1); } -bool8 AreZCoordsCompatible(u8 a, u8 b) +static bool8 AreElevationsCompatible(u8 a, u8 b) { if (a == 0 || b == 0) return TRUE; @@ -8043,7 +8062,7 @@ static void DoGroundEffects_OnSpawn(struct ObjectEvent *objEvent, struct Sprite if (objEvent->triggerGroundEffectsOnMove) { flags = 0; - UpdateObjectEventZCoordAndPriority(objEvent, sprite); + UpdateObjectEventElevationAndPriority(objEvent, sprite); GetAllGroundEffectFlags_OnSpawn(objEvent, &flags); SetObjectEventSpriteOamTableForLongGrass(objEvent, sprite); DoFlaggedGroundEffects(objEvent, sprite, flags); @@ -8059,7 +8078,7 @@ static void DoGroundEffects_OnBeginStep(struct ObjectEvent *objEvent, struct Spr if (objEvent->triggerGroundEffectsOnMove) { flags = 0; - UpdateObjectEventZCoordAndPriority(objEvent, sprite); + UpdateObjectEventElevationAndPriority(objEvent, sprite); GetAllGroundEffectFlags_OnBeginStep(objEvent, &flags); SetObjectEventSpriteOamTableForLongGrass(objEvent, sprite); filters_out_some_ground_effects(objEvent, &flags); @@ -8076,7 +8095,7 @@ static void DoGroundEffects_OnFinishStep(struct ObjectEvent *objEvent, struct Sp if (objEvent->triggerGroundEffectsOnStop) { flags = 0; - UpdateObjectEventZCoordAndPriority(objEvent, sprite); + UpdateObjectEventElevationAndPriority(objEvent, sprite); GetAllGroundEffectFlags_OnFinishStep(objEvent, &flags); SetObjectEventSpriteOamTableForLongGrass(objEvent, sprite); FilterOutStepOnPuddleGroundEffectIfJumping(objEvent, &flags); @@ -8167,6 +8186,7 @@ static void Step8(struct Sprite *sprite, u8 dir) sprite->y += 8 * (u16) sDirectionToVectors[dir].y; } +#define sSpeed data[4] #define sTimer data[5] static void SetSpriteDataForNormalStep(struct Sprite *sprite, u8 direction, u8 speed) @@ -8260,6 +8280,7 @@ static bool8 NpcTakeStep(struct Sprite *sprite) return TRUE; } +#undef sSpeed #undef sTimer #define sTimer data[4] @@ -8394,34 +8415,43 @@ static s16 GetJumpY(s16 i, u8 type) return sJumpYTable[type][i]; } +#define sDistance data[4] #define sJumpType data[5] #define sTimer data[6] -static void SetJumpSpriteData(struct Sprite *sprite, u8 direction, u8 speed, u8 type) +static void SetJumpSpriteData(struct Sprite *sprite, u8 direction, u8 distance, u8 type) { sprite->sDirection = direction; - sprite->sSpeed = speed; + sprite->sDistance = distance; sprite->sJumpType = type; sprite->sTimer = 0; } static u8 DoJumpSpriteMovement(struct Sprite *sprite) { - s16 speedToTime[] = {16, 16, 32}; - u8 speedToShift[] = {0, 0, 1}; + s16 distanceToTime[] = { + [JUMP_DISTANCE_IN_PLACE] = 16, + [JUMP_DISTANCE_NORMAL] = 16, + [JUMP_DISTANCE_FAR] = 32, + }; + u8 distanceToShift[] = { + [JUMP_DISTANCE_IN_PLACE] = 0, + [JUMP_DISTANCE_NORMAL] = 0, + [JUMP_DISTANCE_FAR] = 1, + }; u8 result = 0; - if (sprite->sSpeed) + if (sprite->sDistance != JUMP_DISTANCE_IN_PLACE) Step1(sprite, sprite->sDirection); - sprite->y2 = GetJumpY(sprite->sTimer >> speedToShift[sprite->sSpeed], sprite->sJumpType); + sprite->y2 = GetJumpY(sprite->sTimer >> distanceToShift[sprite->sDistance], sprite->sJumpType); sprite->sTimer++; - if (sprite->sTimer == speedToTime[sprite->sSpeed] >> 1) + if (sprite->sTimer == distanceToTime[sprite->sDistance] >> 1) result = JUMP_HALFWAY; - if (sprite->sTimer >= speedToTime[sprite->sSpeed]) + if (sprite->sTimer >= distanceToTime[sprite->sDistance]) { sprite->y2 = 0; result = JUMP_FINISHED; @@ -8432,21 +8462,29 @@ static u8 DoJumpSpriteMovement(struct Sprite *sprite) static u8 DoJumpSpecialSpriteMovement(struct Sprite *sprite) { - s16 speedToTime[] = {32, 32, 64}; - u8 speedToShift[] = {1, 1, 2}; + s16 distanceToTime[] = { + [JUMP_DISTANCE_IN_PLACE] = 32, + [JUMP_DISTANCE_NORMAL] = 32, + [JUMP_DISTANCE_FAR] = 64, + }; + u8 distanceToShift[] = { + [JUMP_DISTANCE_IN_PLACE] = 1, + [JUMP_DISTANCE_NORMAL] = 1, + [JUMP_DISTANCE_FAR] = 2, + }; u8 result = 0; - if (sprite->sSpeed && !(sprite->sTimer & 1)) + if (sprite->sDistance != JUMP_DISTANCE_IN_PLACE && !(sprite->sTimer & 1)) Step1(sprite, sprite->sDirection); - sprite->y2 = GetJumpY(sprite->sTimer >> speedToShift[sprite->sSpeed], sprite->sJumpType); + sprite->y2 = GetJumpY(sprite->sTimer >> distanceToShift[sprite->sDistance], sprite->sJumpType); sprite->sTimer++; - if (sprite->sTimer == speedToTime[sprite->sSpeed] >> 1) + if (sprite->sTimer == distanceToTime[sprite->sDistance] >> 1) result = JUMP_HALFWAY; - if (sprite->sTimer >= speedToTime[sprite->sSpeed]) + if (sprite->sTimer >= distanceToTime[sprite->sDistance]) { sprite->y2 = 0; result = JUMP_FINISHED; @@ -8455,7 +8493,7 @@ static u8 DoJumpSpecialSpriteMovement(struct Sprite *sprite) return result; } -#undef sSpeed +#undef sDistance #undef sJumpType #undef sTimer @@ -8518,50 +8556,50 @@ void UpdateObjectEventSpriteInvisibility(struct Sprite *sprite, bool8 invisible) #define sAnimNum data[3] #define sAnimState data[4] -static void UpdateObjectEventSprite(struct Sprite *sprite) +static void SpriteCB_VirtualObject(struct Sprite *sprite) { - UpdateObjectEventSpritePosition(sprite); - SetObjectSubpriorityByZCoord(sprite->data[1], sprite, 1); + VirtualObject_UpdateAnim(sprite); + SetObjectSubpriorityByElevation(sprite->sVirtualObjElev, sprite, 1); UpdateObjectEventSpriteInvisibility(sprite, sprite->sInvisible); } // Unused -static void DestroyObjectEventSprites(void) +static void DestroyVirtualObjects(void) { int i; for (i = 0; i < MAX_SPRITES; i++) { struct Sprite *sprite = &gSprites[i]; - if(sprite->inUse && sprite->callback == UpdateObjectEventSprite) + if(sprite->inUse && sprite->callback == SpriteCB_VirtualObject) DestroySprite(sprite); } } -static int GetObjectEventSpriteId(u8 objectEventId) // this should return a u8, because all that call this shifts to u8, but it wont match because it doesnt shift u8 at the end. +static int GetVirtualObjectSpriteId(u8 virtualObjId) { int i; for (i = 0; i < MAX_SPRITES; i++) { struct Sprite *sprite = &gSprites[i]; - if (sprite->inUse && sprite->callback == UpdateObjectEventSprite && (u8)sprite->sObjEventId == objectEventId) + if (sprite->inUse && sprite->callback == SpriteCB_VirtualObject && (u8)sprite->sVirtualObjId == virtualObjId) return i; } return MAX_SPRITES; } -void TurnObjectEventSprite(u8 objectEventId, u8 direction) +void TurnVirtualObject(u8 virtualObjId, u8 direction) { - u8 spriteId = GetObjectEventSpriteId(objectEventId); + u8 spriteId = GetVirtualObjectSpriteId(virtualObjId); if (spriteId != MAX_SPRITES) StartSpriteAnim(&gSprites[spriteId], GetFaceDirectionAnimNum(direction)); } -void SetObjectEventSpriteGraphics(u8 objectEventId, u8 graphicsId) +void SetVirtualObjectGraphics(u8 virtualObjId, u8 graphicsId) { - int spriteId = GetObjectEventSpriteId(objectEventId); + int spriteId = GetVirtualObjectSpriteId(virtualObjId); if (spriteId != MAX_SPRITES) { @@ -8589,9 +8627,9 @@ void SetObjectEventSpriteGraphics(u8 objectEventId, u8 graphicsId) } } -void SetObjectEventSpriteInvisibility(u8 objectEventId, bool32 invisible) +void SetVirtualObjectInvisibility(u8 virtualObjId, bool32 invisible) { - u8 spriteId = GetObjectEventSpriteId(objectEventId); + u8 spriteId = GetVirtualObjectSpriteId(virtualObjId); if (spriteId == MAX_SPRITES) return; @@ -8602,9 +8640,9 @@ void SetObjectEventSpriteInvisibility(u8 objectEventId, bool32 invisible) gSprites[spriteId].sInvisible = FALSE; } -bool32 IsObjectEventSpriteInvisible(u8 objectEventId) +bool32 IsVirtualObjectInvisible(u8 virtualObjId) { - u8 spriteId = GetObjectEventSpriteId(objectEventId); + u8 spriteId = GetVirtualObjectSpriteId(virtualObjId); if (spriteId == MAX_SPRITES) return FALSE; @@ -8612,9 +8650,9 @@ bool32 IsObjectEventSpriteInvisible(u8 objectEventId) return (gSprites[spriteId].sInvisible == TRUE); } -void SetObjectEventSpriteAnim(u8 objectEventId, u8 animNum) +void SetVirtualObjectSpriteAnim(u8 virtualObjId, u8 animNum) { - u8 spriteId = GetObjectEventSpriteId(objectEventId); + u8 spriteId = GetVirtualObjectSpriteId(virtualObjId); if (spriteId != MAX_SPRITES) { @@ -8627,18 +8665,18 @@ static void MoveUnionRoomObjectUp(struct Sprite *sprite) { switch(sprite->sAnimState) { - case 0: + case 0: + sprite->y2 = 0; + sprite->sAnimState++; + case 1: + sprite->y2 -= 8; + if (sprite->y2 == -DISPLAY_HEIGHT) + { sprite->y2 = 0; - sprite->sAnimState++; - case 1: - sprite->y2 -= 8; - if (sprite->y2 == -DISPLAY_HEIGHT) - { - sprite->y2 = 0; - sprite->sInvisible = TRUE; - sprite->sAnimNum = 0; - sprite->sAnimState = 0; - } + sprite->sInvisible = TRUE; + sprite->sAnimNum = 0; + sprite->sAnimState = 0; + } } } @@ -8646,40 +8684,40 @@ static void MoveUnionRoomObjectDown(struct Sprite *sprite) { switch(sprite->sAnimState) { - case 0: - sprite->y2 = -DISPLAY_HEIGHT; - sprite->sAnimState++; - case 1: - sprite->y2 += 8; - if(sprite->y2 == 0) - { - sprite->sAnimNum = 0; - sprite->sAnimState = 0; - } + case 0: + sprite->y2 = -DISPLAY_HEIGHT; + sprite->sAnimState++; + case 1: + sprite->y2 += 8; + if(sprite->y2 == 0) + { + sprite->sAnimNum = 0; + sprite->sAnimState = 0; + } } } -static void UpdateObjectEventSpritePosition(struct Sprite *sprite) +static void VirtualObject_UpdateAnim(struct Sprite *sprite) { switch(sprite->sAnimNum) { - case UNION_ROOM_SPAWN_IN: - MoveUnionRoomObjectDown(sprite); - break; - case UNION_ROOM_SPAWN_OUT: - MoveUnionRoomObjectUp(sprite); - break; - case 0: - break; - default: - sprite->sAnimNum = 0; - break; + case UNION_ROOM_SPAWN_IN: + MoveUnionRoomObjectDown(sprite); + break; + case UNION_ROOM_SPAWN_OUT: + MoveUnionRoomObjectUp(sprite); + break; + case 0: + break; + default: + sprite->sAnimNum = 0; + break; } } -bool32 IsObjectEventSpriteAnimating(u8 objectEventId) +bool32 IsVirtualObjectAnimating(u8 virtualObjId) { - u8 spriteId = GetObjectEventSpriteId(objectEventId); + u8 spriteId = GetVirtualObjectSpriteId(virtualObjId); if (spriteId == MAX_SPRITES) return FALSE; diff --git a/src/evolution_graphics.c b/src/evolution_graphics.c index 50098743db..5d17cca84e 100644 --- a/src/evolution_graphics.c +++ b/src/evolution_graphics.c @@ -501,12 +501,12 @@ static void SpriteCB_EvolutionMonSprite(struct Sprite* sprite) u8 CycleEvolutionMonSprite(u8 preEvoSpriteId, u8 postEvoSpriteId) { u16 i; - u16 stack[16]; + u16 monPalette[16]; u8 taskId; s32 toDiv; - for (i = 0; i < ARRAY_COUNT(stack); i++) - stack[i] = 0x7FFF; + for (i = 0; i < ARRAY_COUNT(monPalette); i++) + monPalette[i] = RGB_WHITE; taskId = CreateTask(Task_CycleEvolutionMonSprite_Init, 0); gTasks[taskId].tPreEvoSpriteId = preEvoSpriteId; @@ -522,13 +522,13 @@ u8 CycleEvolutionMonSprite(u8 preEvoSpriteId, u8 postEvoSpriteId) gSprites[preEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[preEvoSpriteId].oam.matrixNum = MATRIX_PRE_EVO; gSprites[preEvoSpriteId].invisible = FALSE; - CpuSet(stack, &gPlttBufferFaded[0x100 + (gSprites[preEvoSpriteId].oam.paletteNum * 16)], 16); + CpuSet(monPalette, &gPlttBufferFaded[0x100 + (gSprites[preEvoSpriteId].oam.paletteNum * 16)], 16); gSprites[postEvoSpriteId].callback = SpriteCB_EvolutionMonSprite; gSprites[postEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[postEvoSpriteId].oam.matrixNum = MATRIX_POST_EVO; gSprites[postEvoSpriteId].invisible = FALSE; - CpuSet(stack, &gPlttBufferFaded[0x100 + (gSprites[postEvoSpriteId].oam.paletteNum * 16)], 16); + CpuSet(monPalette, &gPlttBufferFaded[0x100 + (gSprites[postEvoSpriteId].oam.paletteNum * 16)], 16); gTasks[taskId].tEvoStopped = FALSE; return taskId; diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 99ff268213..bde11ddb5e 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -252,7 +252,7 @@ void EvolutionScene(struct Pokemon* mon, u16 postEvoSpecies, bool8 canStopEvo, u AllocateMonSpritesGfx(); GetMonData(mon, MON_DATA_NICKNAME, name); - StringCopy10(gStringVar1, name); + StringCopy_Nickname(gStringVar1, name); StringCopy(gStringVar2, gSpeciesNames[postEvoSpecies]); // preEvo sprite @@ -474,7 +474,7 @@ void TradeEvolutionScene(struct Pokemon* mon, u16 postEvoSpecies, u8 preEvoSprit u8 ID; GetMonData(mon, MON_DATA_NICKNAME, name); - StringCopy10(gStringVar1, name); + StringCopy_Nickname(gStringVar1, name); StringCopy(gStringVar2, gSpeciesNames[postEvoSpecies]); gAffineAnimsDisabled = TRUE; @@ -787,7 +787,7 @@ static void Task_EvolutionScene(u8 taskId) gTasks[taskId].tLearnsFirstMove = FALSE; gTasks[taskId].tLearnMoveState = MVSTATE_INTRO_MSG_1; GetMonData(mon, MON_DATA_NICKNAME, text); - StringCopy10(gBattleTextBuff1, text); + StringCopy_Nickname(gBattleTextBuff1, text); if (var == MON_HAS_MAX_MOVES) gTasks[taskId].tState = EVOSTATE_REPLACE_MOVE; @@ -855,7 +855,7 @@ static void Task_EvolutionScene(u8 taskId) { BufferMoveToLearnIntoBattleTextBuff2(); PlayFanfare(MUS_LEVEL_UP); - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_TABLE_START]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tLearnsFirstMove = 0x40; // re-used as a counter gTasks[taskId].tState++; @@ -873,7 +873,7 @@ static void Task_EvolutionScene(u8 taskId) { // "{mon} is trying to learn {move}" BufferMoveToLearnIntoBattleTextBuff2(); - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE1 - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE1 - BATTLESTRINGS_TABLE_START]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tLearnMoveState++; } @@ -882,7 +882,7 @@ static void Task_EvolutionScene(u8 taskId) if (!IsTextPrinterActive(0) && !IsSEPlaying()) { // "But, {mon} can't learn more than four moves" - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE2 - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE2 - BATTLESTRINGS_TABLE_START]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tLearnMoveState++; } @@ -891,7 +891,7 @@ static void Task_EvolutionScene(u8 taskId) if (!IsTextPrinterActive(0) && !IsSEPlaying()) { // "Delete a move to make room for {move}?" - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE3 - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE3 - BATTLESTRINGS_TABLE_START]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tLearnMoveYesState = MVSTATE_SHOW_MOVE_SELECT; gTasks[taskId].tLearnMoveNoState = MVSTATE_ASK_CANCEL; @@ -979,7 +979,7 @@ static void Task_EvolutionScene(u8 taskId) if (IsHMMove2(move)) { // Can't forget HMs - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_HMMOVESCANTBEFORGOTTEN - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_HMMOVESCANTBEFORGOTTEN - BATTLESTRINGS_TABLE_START]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tLearnMoveState = MVSTATE_RETRY_AFTER_HM; } @@ -996,14 +996,14 @@ static void Task_EvolutionScene(u8 taskId) } break; case MVSTATE_FORGET_MSG_1: - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_123POOF - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_123POOF - BATTLESTRINGS_TABLE_START]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tLearnMoveState++; break; case MVSTATE_FORGET_MSG_2: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNFORGOTMOVE - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNFORGOTMOVE - BATTLESTRINGS_TABLE_START]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tLearnMoveState++; } @@ -1011,20 +1011,20 @@ static void Task_EvolutionScene(u8 taskId) case MVSTATE_LEARNED_MOVE: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_ANDELLIPSIS - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_ANDELLIPSIS - BATTLESTRINGS_TABLE_START]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tState = EVOSTATE_LEARNED_MOVE; } break; case MVSTATE_ASK_CANCEL: - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_STOPLEARNINGMOVE - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_STOPLEARNINGMOVE - BATTLESTRINGS_TABLE_START]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tLearnMoveYesState = MVSTATE_CANCEL; gTasks[taskId].tLearnMoveNoState = MVSTATE_INTRO_MSG_1; gTasks[taskId].tLearnMoveState = MVSTATE_PRINT_YES_NO; break; case MVSTATE_CANCEL: - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_DIDNOTLEARNMOVE - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_DIDNOTLEARNMOVE - BATTLESTRINGS_TABLE_START]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tState = EVOSTATE_TRY_LEARN_MOVE; break; @@ -1202,7 +1202,7 @@ static void Task_TradeEvolutionScene(u8 taskId) gTasks[taskId].tLearnsFirstMove = FALSE; gTasks[taskId].tLearnMoveState = 0; GetMonData(mon, MON_DATA_NICKNAME, text); - StringCopy10(gBattleTextBuff1, text); + StringCopy_Nickname(gBattleTextBuff1, text); if (var == MON_HAS_MAX_MOVES) gTasks[taskId].tState = T_EVOSTATE_REPLACE_MOVE; @@ -1258,7 +1258,7 @@ static void Task_TradeEvolutionScene(u8 taskId) { BufferMoveToLearnIntoBattleTextBuff2(); PlayFanfare(MUS_LEVEL_UP); - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_TABLE_START]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnsFirstMove = 0x40; // re-used as a counter gTasks[taskId].tState++; @@ -1276,7 +1276,7 @@ static void Task_TradeEvolutionScene(u8 taskId) { // "{mon} is trying to learn {move}" BufferMoveToLearnIntoBattleTextBuff2(); - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE1 - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE1 - BATTLESTRINGS_TABLE_START]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnMoveState++; } @@ -1285,7 +1285,7 @@ static void Task_TradeEvolutionScene(u8 taskId) if (!IsTextPrinterActive(0) && !IsSEPlaying()) { // "But, {mon} can't learn more than four moves" - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE2 - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE2 - BATTLESTRINGS_TABLE_START]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnMoveState++; } @@ -1294,7 +1294,7 @@ static void Task_TradeEvolutionScene(u8 taskId) if (!IsTextPrinterActive(0) && !IsSEPlaying()) { // "Delete a move to make room for {move}?" - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE3 - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE3 - BATTLESTRINGS_TABLE_START]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnMoveYesState = T_MVSTATE_SHOW_MOVE_SELECT; gTasks[taskId].tLearnMoveNoState = T_MVSTATE_ASK_CANCEL; @@ -1315,7 +1315,7 @@ static void Task_TradeEvolutionScene(u8 taskId) { case 0: // YES sEvoCursorPos = 0; - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_EMPTYSTRING3 - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_EMPTYSTRING3 - BATTLESTRINGS_TABLE_START]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnMoveState = gTasks[taskId].tLearnMoveYesState; if (gTasks[taskId].tLearnMoveState == T_MVSTATE_SHOW_MOVE_SELECT) @@ -1324,7 +1324,7 @@ static void Task_TradeEvolutionScene(u8 taskId) case 1: // NO case MENU_B_PRESSED: sEvoCursorPos = 1; - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_EMPTYSTRING3 - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_EMPTYSTRING3 - BATTLESTRINGS_TABLE_START]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnMoveState = gTasks[taskId].tLearnMoveNoState; break; @@ -1363,7 +1363,7 @@ static void Task_TradeEvolutionScene(u8 taskId) if (IsHMMove2(move)) { // Can't forget HMs - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_HMMOVESCANTBEFORGOTTEN - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_HMMOVESCANTBEFORGOTTEN - BATTLESTRINGS_TABLE_START]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnMoveState = T_MVSTATE_RETRY_AFTER_HM; } @@ -1374,7 +1374,7 @@ static void Task_TradeEvolutionScene(u8 taskId) RemoveMonPPBonus(mon, var); SetMonMoveSlot(mon, gMoveToLearn, var); - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_123POOF - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_123POOF - BATTLESTRINGS_TABLE_START]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnMoveState++; } @@ -1384,7 +1384,7 @@ static void Task_TradeEvolutionScene(u8 taskId) case T_MVSTATE_FORGET_MSG: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNFORGOTMOVE - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNFORGOTMOVE - BATTLESTRINGS_TABLE_START]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnMoveState++; } @@ -1392,20 +1392,20 @@ static void Task_TradeEvolutionScene(u8 taskId) case T_MVSTATE_LEARNED_MOVE: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_ANDELLIPSIS - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_ANDELLIPSIS - BATTLESTRINGS_TABLE_START]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tState = T_EVOSTATE_LEARNED_MOVE; } break; case T_MVSTATE_ASK_CANCEL: - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_STOPLEARNINGMOVE - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_STOPLEARNINGMOVE - BATTLESTRINGS_TABLE_START]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnMoveYesState = T_MVSTATE_CANCEL; gTasks[taskId].tLearnMoveNoState = T_MVSTATE_INTRO_MSG_1; gTasks[taskId].tLearnMoveState = T_MVSTATE_PRINT_YES_NO; break; case T_MVSTATE_CANCEL: - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_DIDNOTLEARNMOVE - BATTLESTRINGS_ID_ADDER]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_DIDNOTLEARNMOVE - BATTLESTRINGS_TABLE_START]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tState = T_EVOSTATE_TRY_LEARN_MOVE; break; diff --git a/src/faraway_island.c b/src/faraway_island.c index 3927d9ad54..9ddb66de5c 100755 --- a/src/faraway_island.c +++ b/src/faraway_island.c @@ -7,7 +7,6 @@ #include "sprite.h" #include "constants/event_objects.h" #include "constants/field_effects.h" -#include "constants/maps.h" #include "constants/metatile_behaviors.h" static u8 GetValidMewMoveDirection(u8); diff --git a/src/field_camera.c b/src/field_camera.c index a36b6883c1..0a00dcbee9 100644 --- a/src/field_camera.c +++ b/src/field_camera.c @@ -14,7 +14,6 @@ EWRAM_DATA bool8 gUnusedBikeCameraAheadPanback = FALSE; -// Static type declarations struct FieldCameraOffset { u8 xPixelOffset; @@ -24,18 +23,16 @@ struct FieldCameraOffset bool8 copyBGToVRAM; }; -// static functions -static void RedrawMapSliceNorth(struct FieldCameraOffset *cameraOffset, const struct MapLayout *mapLayout); -static void RedrawMapSliceSouth(struct FieldCameraOffset *cameraOffset, const struct MapLayout *mapLayout); -static void RedrawMapSliceEast(struct FieldCameraOffset *cameraOffset, const struct MapLayout *mapLayout); -static void RedrawMapSliceWest(struct FieldCameraOffset *cameraOffset, const struct MapLayout *mapLayout); -static s32 MapPosToBgTilemapOffset(struct FieldCameraOffset *a, s32 x, s32 y); -static void DrawWholeMapViewInternal(int x, int y, const struct MapLayout *mapLayout); -static void DrawMetatileAt(const struct MapLayout *mapLayout, u16, int, int); -static void DrawMetatile(s32 a, u16 *b, u16 c); +static void RedrawMapSliceNorth(struct FieldCameraOffset *, const struct MapLayout *); +static void RedrawMapSliceSouth(struct FieldCameraOffset *, const struct MapLayout *); +static void RedrawMapSliceEast(struct FieldCameraOffset *, const struct MapLayout *); +static void RedrawMapSliceWest(struct FieldCameraOffset *, const struct MapLayout *); +static s32 MapPosToBgTilemapOffset(struct FieldCameraOffset *, s32, s32); +static void DrawWholeMapViewInternal(int, int, const struct MapLayout *); +static void DrawMetatileAt(const struct MapLayout *, u16, int, int); +static void DrawMetatile(s32, u16 *, u16); static void CameraPanningCB_PanAhead(void); -// IWRAM bss vars static struct FieldCameraOffset sFieldCameraOffset; static s16 sHorizontalCameraPan; static s16 sVerticalCameraPan; @@ -46,7 +43,6 @@ struct CameraObject gFieldCamera; u16 gTotalCameraPixelOffsetY; u16 gTotalCameraPixelOffsetX; -// text static void ResetCameraOffset(struct FieldCameraOffset *cameraOffset) { cameraOffset->xTileOffset = 0; @@ -222,7 +218,7 @@ void DrawDoorMetatileAt(int x, int y, u16 *arr) if (offset >= 0) { - DrawMetatile(1, arr, offset); + DrawMetatile(METATILE_LAYER_TYPE_COVERED, arr, offset); sFieldCameraOffset.copyBGToVRAM = TRUE; } } @@ -244,66 +240,66 @@ static void DrawMetatileAt(const struct MapLayout *mapLayout, u16 offset, int x, DrawMetatile(MapGridGetMetatileLayerTypeAt(x, y), metatiles + metatileId * 8, offset); } -static void DrawMetatile(s32 metatileLayerType, u16 *metatiles, u16 offset) +static void DrawMetatile(s32 metatileLayerType, u16 *tiles, u16 offset) { switch (metatileLayerType) { - case 2: // LAYER_TYPE_ + case METATILE_LAYER_TYPE_SPLIT: // Draw metatile's bottom layer to the bottom background layer. - gBGTilemapBuffers3[offset] = metatiles[0]; - gBGTilemapBuffers3[offset + 1] = metatiles[1]; - gBGTilemapBuffers3[offset + 0x20] = metatiles[2]; - gBGTilemapBuffers3[offset + 0x21] = metatiles[3]; + gOverworldTilemapBuffer_Bg3[offset] = tiles[0]; + gOverworldTilemapBuffer_Bg3[offset + 1] = tiles[1]; + gOverworldTilemapBuffer_Bg3[offset + 0x20] = tiles[2]; + gOverworldTilemapBuffer_Bg3[offset + 0x21] = tiles[3]; // Draw transparent tiles to the middle background layer. - gBGTilemapBuffers1[offset] = 0; - gBGTilemapBuffers1[offset + 1] = 0; - gBGTilemapBuffers1[offset + 0x20] = 0; - gBGTilemapBuffers1[offset + 0x21] = 0; + gOverworldTilemapBuffer_Bg2[offset] = 0; + gOverworldTilemapBuffer_Bg2[offset + 1] = 0; + gOverworldTilemapBuffer_Bg2[offset + 0x20] = 0; + gOverworldTilemapBuffer_Bg2[offset + 0x21] = 0; // Draw metatile's top layer to the top background layer. - gBGTilemapBuffers2[offset] = metatiles[4]; - gBGTilemapBuffers2[offset + 1] = metatiles[5]; - gBGTilemapBuffers2[offset + 0x20] = metatiles[6]; - gBGTilemapBuffers2[offset + 0x21] = metatiles[7]; + gOverworldTilemapBuffer_Bg1[offset] = tiles[4]; + gOverworldTilemapBuffer_Bg1[offset + 1] = tiles[5]; + gOverworldTilemapBuffer_Bg1[offset + 0x20] = tiles[6]; + gOverworldTilemapBuffer_Bg1[offset + 0x21] = tiles[7]; break; - case 1: // LAYER_TYPE_COVERED_BY_OBJECTS + case METATILE_LAYER_TYPE_COVERED: // Draw metatile's bottom layer to the bottom background layer. - gBGTilemapBuffers3[offset] = metatiles[0]; - gBGTilemapBuffers3[offset + 1] = metatiles[1]; - gBGTilemapBuffers3[offset + 0x20] = metatiles[2]; - gBGTilemapBuffers3[offset + 0x21] = metatiles[3]; + gOverworldTilemapBuffer_Bg3[offset] = tiles[0]; + gOverworldTilemapBuffer_Bg3[offset + 1] = tiles[1]; + gOverworldTilemapBuffer_Bg3[offset + 0x20] = tiles[2]; + gOverworldTilemapBuffer_Bg3[offset + 0x21] = tiles[3]; // Draw metatile's top layer to the middle background layer. - gBGTilemapBuffers1[offset] = metatiles[4]; - gBGTilemapBuffers1[offset + 1] = metatiles[5]; - gBGTilemapBuffers1[offset + 0x20] = metatiles[6]; - gBGTilemapBuffers1[offset + 0x21] = metatiles[7]; + gOverworldTilemapBuffer_Bg2[offset] = tiles[4]; + gOverworldTilemapBuffer_Bg2[offset + 1] = tiles[5]; + gOverworldTilemapBuffer_Bg2[offset + 0x20] = tiles[6]; + gOverworldTilemapBuffer_Bg2[offset + 0x21] = tiles[7]; // Draw transparent tiles to the top background layer. - gBGTilemapBuffers2[offset] = 0; - gBGTilemapBuffers2[offset + 1] = 0; - gBGTilemapBuffers2[offset + 0x20] = 0; - gBGTilemapBuffers2[offset + 0x21] = 0; + gOverworldTilemapBuffer_Bg1[offset] = 0; + gOverworldTilemapBuffer_Bg1[offset + 1] = 0; + gOverworldTilemapBuffer_Bg1[offset + 0x20] = 0; + gOverworldTilemapBuffer_Bg1[offset + 0x21] = 0; break; - case 0: // LAYER_TYPE_NORMAL + case METATILE_LAYER_TYPE_NORMAL: // Draw garbage to the bottom background layer. - gBGTilemapBuffers3[offset] = 0x3014; - gBGTilemapBuffers3[offset + 1] = 0x3014; - gBGTilemapBuffers3[offset + 0x20] = 0x3014; - gBGTilemapBuffers3[offset + 0x21] = 0x3014; + gOverworldTilemapBuffer_Bg3[offset] = 0x3014; + gOverworldTilemapBuffer_Bg3[offset + 1] = 0x3014; + gOverworldTilemapBuffer_Bg3[offset + 0x20] = 0x3014; + gOverworldTilemapBuffer_Bg3[offset + 0x21] = 0x3014; // Draw metatile's bottom layer to the middle background layer. - gBGTilemapBuffers1[offset] = metatiles[0]; - gBGTilemapBuffers1[offset + 1] = metatiles[1]; - gBGTilemapBuffers1[offset + 0x20] = metatiles[2]; - gBGTilemapBuffers1[offset + 0x21] = metatiles[3]; + gOverworldTilemapBuffer_Bg2[offset] = tiles[0]; + gOverworldTilemapBuffer_Bg2[offset + 1] = tiles[1]; + gOverworldTilemapBuffer_Bg2[offset + 0x20] = tiles[2]; + gOverworldTilemapBuffer_Bg2[offset + 0x21] = tiles[3]; // Draw metatile's top layer to the top background layer, which covers object event sprites. - gBGTilemapBuffers2[offset] = metatiles[4]; - gBGTilemapBuffers2[offset + 1] = metatiles[5]; - gBGTilemapBuffers2[offset + 0x20] = metatiles[6]; - gBGTilemapBuffers2[offset + 0x21] = metatiles[7]; + gOverworldTilemapBuffer_Bg1[offset] = tiles[4]; + gOverworldTilemapBuffer_Bg1[offset + 1] = tiles[5]; + gOverworldTilemapBuffer_Bg1[offset + 0x20] = tiles[6]; + gOverworldTilemapBuffer_Bg1[offset + 0x21] = tiles[7]; break; } ScheduleBgCopyTilemapToVram(1); diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 1916d60ff2..8925f8b1d2 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -33,7 +33,6 @@ #include "constants/event_objects.h" #include "constants/field_poison.h" #include "constants/map_types.h" -#include "constants/maps.h" #include "constants/songs.h" #include "constants/trainer_hill.h" @@ -96,7 +95,7 @@ void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys) if ((tileTransitionState == T_TILE_CENTER && forcedMove == FALSE) || tileTransitionState == T_NOT_MOVING) { - if (GetPlayerSpeed() != 4) + if (GetPlayerSpeed() != PLAYER_SPEED_FASTEST) { if (newKeys & START_BUTTON) input->pressedStartButton = TRUE; @@ -239,7 +238,7 @@ int ProcessPlayerFieldInput(struct FieldInput *input) static void GetPlayerPosition(struct MapPosition *position) { PlayerGetDestCoords(&position->x, &position->y); - position->height = PlayerGetZCoord(); + position->elevation = PlayerGetElevation(); } static void GetInFrontOfPlayerPosition(struct MapPosition *position) @@ -248,10 +247,10 @@ static void GetInFrontOfPlayerPosition(struct MapPosition *position) GetXYCoordsOneStepInFrontOfPlayer(&position->x, &position->y); PlayerGetDestCoords(&x, &y); - if (MapGridGetZCoordAt(x, y) != 0) - position->height = PlayerGetZCoord(); + if (MapGridGetElevationAt(x, y) != 0) + position->elevation = PlayerGetElevation(); else - position->height = 0; + position->elevation = 0; } static u16 GetPlayerCurMetatileBehavior(int runningState) @@ -309,9 +308,9 @@ const u8 *GetInteractedLinkPlayerScript(struct MapPosition *position, u8 metatil s32 i; if (!MetatileBehavior_IsCounter(MapGridGetMetatileBehaviorAt(position->x, position->y))) - objectEventId = GetObjectEventIdByXYZ(position->x, position->y, position->height); + objectEventId = GetObjectEventIdByPosition(position->x, position->y, position->elevation); else - objectEventId = GetObjectEventIdByXYZ(position->x + gDirectionToVectors[direction].x, position->y + gDirectionToVectors[direction].y, position->height); + objectEventId = GetObjectEventIdByPosition(position->x + gDirectionToVectors[direction].x, position->y + gDirectionToVectors[direction].y, position->elevation); if (objectEventId == OBJECT_EVENTS_COUNT || gObjectEvents[objectEventId].localId == OBJ_EVENT_ID_PLAYER) return NULL; @@ -333,14 +332,14 @@ static const u8 *GetInteractedObjectEventScript(struct MapPosition *position, u8 u8 objectEventId; const u8 *script; - objectEventId = GetObjectEventIdByXYZ(position->x, position->y, position->height); + objectEventId = GetObjectEventIdByPosition(position->x, position->y, position->elevation); if (objectEventId == OBJECT_EVENTS_COUNT || gObjectEvents[objectEventId].localId == OBJ_EVENT_ID_PLAYER) { if (MetatileBehavior_IsCounter(metatileBehavior) != TRUE) return NULL; // Look for an object event on the other side of the counter. - objectEventId = GetObjectEventIdByXYZ(position->x + gDirectionToVectors[direction].x, position->y + gDirectionToVectors[direction].y, position->height); + objectEventId = GetObjectEventIdByPosition(position->x + gDirectionToVectors[direction].x, position->y + gDirectionToVectors[direction].y, position->elevation); if (objectEventId == OBJECT_EVENTS_COUNT || gObjectEvents[objectEventId].localId == OBJ_EVENT_ID_PLAYER) return NULL; } @@ -360,7 +359,7 @@ static const u8 *GetInteractedObjectEventScript(struct MapPosition *position, u8 static const u8 *GetInteractedBackgroundEventScript(struct MapPosition *position, u8 metatileBehavior, u8 direction) { - struct BgEvent *bgEvent = GetBackgroundEventAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->height); + struct BgEvent *bgEvent = GetBackgroundEventAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); if (bgEvent == NULL) return NULL; @@ -411,7 +410,7 @@ static const u8 *GetInteractedBackgroundEventScript(struct MapPosition *position static const u8 *GetInteractedMetatileScript(struct MapPosition *position, u8 metatileBehavior, u8 direction) { - s8 height; + s8 elevation; if (MetatileBehavior_IsPlayerFacingTVScreen(metatileBehavior, direction) == TRUE) return EventScript_TV; @@ -454,8 +453,8 @@ static const u8 *GetInteractedMetatileScript(struct MapPosition *position, u8 me if (MetatileBehavior_IsTrainerHillTimer(metatileBehavior) == TRUE) return EventScript_TrainerHillTimer; - height = position->height; - if (height == MapGridGetZCoordAt(position->x, position->y)) + elevation = position->elevation; + if (elevation == MapGridGetElevationAt(position->x, position->y)) { if (MetatileBehavior_IsSecretBasePC(metatileBehavior) == TRUE) return SecretBase_EventScript_PC; @@ -542,7 +541,7 @@ static bool8 TryStartStepBasedScript(struct MapPosition *position, u16 metatileB static bool8 TryStartCoordEventScript(struct MapPosition *position) { - u8 *script = GetCoordEventScriptAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->height); + u8 *script = GetCoordEventScriptAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); if (script == NULL) return FALSE; @@ -740,7 +739,7 @@ static bool8 TryArrowWarp(struct MapPosition *position, u16 metatileBehavior, u8 { s8 warpEventId = GetWarpEventAtMapPosition(&gMapHeader, position); - if (IsArrowWarpMetatileBehavior(metatileBehavior, direction) == TRUE && warpEventId != -1) + if (IsArrowWarpMetatileBehavior(metatileBehavior, direction) == TRUE && warpEventId != WARP_ID_NONE) { StoreInitialPlayerAvatarState(); SetupWarp(&gMapHeader, warpEventId, position); @@ -754,7 +753,7 @@ static bool8 TryStartWarpEventScript(struct MapPosition *position, u16 metatileB { s8 warpEventId = GetWarpEventAtMapPosition(&gMapHeader, position); - if (warpEventId != -1 && IsWarpMetatileBehavior(metatileBehavior) == TRUE) + if (warpEventId != WARP_ID_NONE && IsWarpMetatileBehavior(metatileBehavior) == TRUE) { StoreInitialPlayerAvatarState(); SetupWarp(&gMapHeader, warpEventId, position); @@ -833,7 +832,7 @@ static bool8 IsArrowWarpMetatileBehavior(u16 metatileBehavior, u8 direction) static s8 GetWarpEventAtMapPosition(struct MapHeader *mapHeader, struct MapPosition *position) { - return GetWarpEventAtPosition(mapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->height); + return GetWarpEventAtPosition(mapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); } static void SetupWarp(struct MapHeader *unused, s8 warpEventId, struct MapPosition *position) @@ -896,7 +895,7 @@ static bool8 TryDoorWarp(struct MapPosition *position, u16 metatileBehavior, u8 if (MetatileBehavior_IsWarpDoor(metatileBehavior) == TRUE) { warpEventId = GetWarpEventAtMapPosition(&gMapHeader, position); - if (warpEventId != -1 && IsWarpMetatileBehavior(metatileBehavior) == TRUE) + if (warpEventId != WARP_ID_NONE && IsWarpMetatileBehavior(metatileBehavior) == TRUE) { StoreInitialPlayerAvatarState(); SetupWarp(&gMapHeader, warpEventId, position); @@ -922,7 +921,7 @@ static s8 GetWarpEventAtPosition(struct MapHeader *mapHeader, u16 x, u16 y, u8 e return i; } } - return -1; + return WARP_ID_NONE; } static u8 *TryRunCoordEventScript(struct CoordEvent *coordEvent) @@ -968,7 +967,7 @@ static u8 *GetCoordEventScriptAtPosition(struct MapHeader *mapHeader, u16 x, u16 u8 *GetCoordEventScriptAtMapPosition(struct MapPosition *position) { - return GetCoordEventScriptAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->height); + return GetCoordEventScriptAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); } static struct BgEvent *GetBackgroundEventAtPosition(struct MapHeader *mapHeader, u16 x, u16 y, u8 elevation) diff --git a/src/field_door.c b/src/field_door.c index f53e83d7a6..988ea615d0 100644 --- a/src/field_door.c +++ b/src/field_door.c @@ -5,7 +5,6 @@ #include "fieldmap.h" #include "metatile_behavior.h" #include "task.h" -#include "constants/maps.h" #include "constants/songs.h" #include "constants/metatile_labels.h" diff --git a/src/field_effect.c b/src/field_effect.c index 3f0ba24555..f57ce8cddc 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -243,32 +243,33 @@ extern u8 *gFieldEffectScriptPointers[]; extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; static const u32 sNewGameBirch_Gfx[] = INCBIN_U32("graphics/birch_speech/birch.4bpp"); -static const u32 sUnusedBirchBeauty[] = INCBIN_U32("graphics/unused/intro_birch_beauty.4bpp"); +static const u32 sUnusedBirchBeauty[] = INCBIN_U32("graphics/birch_speech/unused_beauty.4bpp"); static const u16 sNewGameBirch_Pal[16] = INCBIN_U16("graphics/birch_speech/birch.gbapal"); -static const u32 sPokeballGlow_Gfx[] = INCBIN_U32("graphics/misc/pokeball_glow.4bpp"); + +static const u32 sPokeballGlow_Gfx[] = INCBIN_U32("graphics/field_effects/pics/pokeball_glow.4bpp"); static const u16 sPokeballGlow_Pal[16] = INCBIN_U16("graphics/field_effects/palettes/pokeball_glow.gbapal"); -static const u32 sPokecenterMonitor0_Gfx[] = INCBIN_U32("graphics/misc/pokecenter_monitor/0.4bpp"); -static const u32 sPokecenterMonitor1_Gfx[] = INCBIN_U32("graphics/misc/pokecenter_monitor/1.4bpp"); -static const u32 sHofMonitorBig_Gfx[] = INCBIN_U32("graphics/misc/hof_monitor_big.4bpp"); -static const u8 sHofMonitorSmall_Gfx[] = INCBIN_U8("graphics/misc/hof_monitor_small.4bpp"); +static const u32 sPokecenterMonitor0_Gfx[] = INCBIN_U32("graphics/field_effects/pics/pokecenter_monitor/0.4bpp"); +static const u32 sPokecenterMonitor1_Gfx[] = INCBIN_U32("graphics/field_effects/pics/pokecenter_monitor/1.4bpp"); +static const u32 sHofMonitorBig_Gfx[] = INCBIN_U32("graphics/field_effects/pics/hof_monitor_big.4bpp"); +static const u8 sHofMonitorSmall_Gfx[] = INCBIN_U8("graphics/field_effects/pics/hof_monitor_small.4bpp"); static const u16 sHofMonitor_Pal[16] = INCBIN_U16("graphics/field_effects/palettes/hof_monitor.gbapal"); // Graphics for the lights streaking past your Pokemon when it uses a field move. -static const u32 sFieldMoveStreaksOutdoors_Gfx[] = INCBIN_U32("graphics/misc/field_move_streaks.4bpp"); -static const u16 sFieldMoveStreaksOutdoors_Pal[16] = INCBIN_U16("graphics/misc/field_move_streaks.gbapal"); -static const u16 sFieldMoveStreaksOutdoors_Tilemap[320] = INCBIN_U16("graphics/misc/field_move_streaks_map.bin"); +static const u32 sFieldMoveStreaksOutdoors_Gfx[] = INCBIN_U32("graphics/field_effects/pics/field_move_streaks.4bpp"); +static const u16 sFieldMoveStreaksOutdoors_Pal[16] = INCBIN_U16("graphics/field_effects/pics/field_move_streaks.gbapal"); +static const u16 sFieldMoveStreaksOutdoors_Tilemap[320] = INCBIN_U16("graphics/field_effects/pics/field_move_streaks.bin"); // The following light streaks effect is used when the map is indoors -static const u32 sFieldMoveStreaksIndoors_Gfx[] = INCBIN_U32("graphics/misc/darkness_field_move_streaks.4bpp"); -static const u16 sFieldMoveStreaksIndoors_Pal[16] = INCBIN_U16("graphics/misc/darkness_field_move_streaks.gbapal"); -static const u16 sFieldMoveStreaksIndoors_Tilemap[320] = INCBIN_U16("graphics/misc/darkness_field_move_streaks_map.bin"); +static const u32 sFieldMoveStreaksIndoors_Gfx[] = INCBIN_U32("graphics/field_effects/pics/field_move_streaks_indoors.4bpp"); +static const u16 sFieldMoveStreaksIndoors_Pal[16] = INCBIN_U16("graphics/field_effects/pics/field_move_streaks_indoors.gbapal"); +static const u16 sFieldMoveStreaksIndoors_Tilemap[320] = INCBIN_U16("graphics/field_effects/pics/field_move_streaks_indoors.bin"); -static const u16 sSpotlight_Pal[16] = INCBIN_U16("graphics/misc/spotlight.gbapal"); -static const u8 sSpotlight_Gfx[] = INCBIN_U8("graphics/misc/spotlight.4bpp"); -static const u8 sRockFragment_TopLeft[] = INCBIN_U8("graphics/misc/deoxys_rock_fragment_top_left.4bpp"); -static const u8 sRockFragment_TopRight[] = INCBIN_U8("graphics/misc/deoxys_rock_fragment_top_right.4bpp"); -static const u8 sRockFragment_BottomLeft[] = INCBIN_U8("graphics/misc/deoxys_rock_fragment_bottom_left.4bpp"); -static const u8 sRockFragment_BottomRight[] = INCBIN_U8("graphics/misc/deoxys_rock_fragment_bottom_right.4bpp"); +static const u16 sSpotlight_Pal[16] = INCBIN_U16("graphics/field_effects/pics/spotlight.gbapal"); +static const u8 sSpotlight_Gfx[] = INCBIN_U8("graphics/field_effects/pics/spotlight.4bpp"); +static const u8 sRockFragment_TopLeft[] = INCBIN_U8("graphics/field_effects/pics/deoxys_rock_fragment_top_left.4bpp"); +static const u8 sRockFragment_TopRight[] = INCBIN_U8("graphics/field_effects/pics/deoxys_rock_fragment_top_right.4bpp"); +static const u8 sRockFragment_BottomLeft[] = INCBIN_U8("graphics/field_effects/pics/deoxys_rock_fragment_bottom_left.4bpp"); +static const u8 sRockFragment_BottomRight[] = INCBIN_U8("graphics/field_effects/pics/deoxys_rock_fragment_bottom_right.4bpp"); bool8 (*const gFieldEffectScriptFuncs[])(u8 **, u32 *) = { @@ -2619,7 +2620,7 @@ static void FieldMoveShowMonOutdoorsEffect_LoadGfx(struct Task *task) u16 delta = ((REG_BG0CNT >> 8) << 11); CpuCopy16(sFieldMoveStreaksOutdoors_Gfx, (void *)(VRAM + offset), 0x200); CpuFill32(0, (void *)(VRAM + delta), 0x800); - LoadPalette(sFieldMoveStreaksOutdoors_Pal, 0xf0, 0x20); + LoadPalette(sFieldMoveStreaksOutdoors_Pal, 0xf0, sizeof(sFieldMoveStreaksOutdoors_Pal)); LoadFieldMoveOutdoorStreaksTilemap(delta); task->tState++; } @@ -2782,7 +2783,7 @@ static void FieldMoveShowMonIndoorsEffect_LoadGfx(struct Task *task) task->data[12] = delta; CpuCopy16(sFieldMoveStreaksIndoors_Gfx, (void *)(VRAM + offset), 0x80); CpuFill32(0, (void *)(VRAM + delta), 0x800); - LoadPalette(sFieldMoveStreaksIndoors_Pal, 0xf0, 0x20); + LoadPalette(sFieldMoveStreaksIndoors_Pal, 0xf0, sizeof(sFieldMoveStreaksIndoors_Pal)); task->tState++; } diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 0acb158637..c3332c7fc6 100755 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -359,7 +359,7 @@ void UpdateTallGrassFieldEffect(struct Sprite *sprite) || objectEvent->previousCoords.y != sprite->sY)) sprite->sObjectMoved = TRUE; - // Metatile behavior var re-used + // Metatile behavior var re-used as subpriority metatileBehavior = 0; if (sprite->animCmdIndex == 0) metatileBehavior = 4; @@ -423,7 +423,7 @@ u32 FldEff_LongGrass(void) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; - sprite->oam.priority = ZCoordToPriority(gFieldEffectArguments[2]); + sprite->oam.priority = ElevationToPriority(gFieldEffectArguments[2]); sprite->sElevation = gFieldEffectArguments[2]; sprite->sX = gFieldEffectArguments[0]; sprite->sY = gFieldEffectArguments[1]; @@ -487,6 +487,8 @@ void UpdateLongGrassFieldEffect(struct Sprite *sprite) #undef sCurrentMap #undef sObjectMoved +// Effectively unused as it's not possible in vanilla to jump onto long grass (no adjacent ledges, and can't ride the Acro Bike in it). +// The graphics for this effect do not visually correspond to long grass either. Perhaps these graphics were its original design? u32 FldEff_JumpLongGrass(void) { u8 spriteId; @@ -1108,7 +1110,7 @@ void SynchroniseSurfPosition(struct ObjectEvent *playerObj, struct Sprite *sprit for (i = DIR_SOUTH; i <= DIR_EAST; i++, x = sprite->data[6], y = sprite->data[7]) { MoveCoords(i, &x, &y); - if (MapGridGetZCoordAt(x, y) == 3) + if (MapGridGetElevationAt(x, y) == 3) { sprite->data[5]++; break; @@ -1646,7 +1648,7 @@ void UpdateJumpImpactEffect(struct Sprite *sprite) else { UpdateObjectEventSpriteInvisibility(sprite, FALSE); - SetObjectSubpriorityByZCoord(sprite->sElevation, sprite, 0); + SetObjectSubpriorityByElevation(sprite->sElevation, sprite, 0); } } @@ -1658,14 +1660,14 @@ void WaitFieldEffectSpriteAnim(struct Sprite *sprite) UpdateObjectEventSpriteInvisibility(sprite, FALSE); } -static void UpdateGrassFieldEffectSubpriority(struct Sprite *sprite, u8 z, u8 offset) +static void UpdateGrassFieldEffectSubpriority(struct Sprite *sprite, u8 elevation, u8 subpriority) { u8 i; s16 var, xhi, lyhi, yhi, ylo; const struct ObjectEventGraphicsInfo *graphicsInfo; // Unused Variable struct Sprite *linkedSprite; - SetObjectSubpriorityByZCoord(z, sprite, offset); + SetObjectSubpriorityByElevation(elevation, sprite, subpriority); for (i = 0; i < OBJECT_EVENTS_COUNT; i ++) { struct ObjectEvent *objectEvent = &gObjectEvents[i]; diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 9e54823a63..964a62187a 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -26,11 +26,13 @@ #include "constants/event_object_movement.h" #include "constants/field_effects.h" #include "constants/items.h" -#include "constants/maps.h" #include "constants/moves.h" #include "constants/songs.h" #include "constants/trainer_types.h" +#define NUM_FORCED_MOVEMENTS 18 +#define NUM_ACRO_BIKE_COLLISIONS 5 + static EWRAM_DATA u8 sSpinStartFacingDir = 0; EWRAM_DATA struct ObjectEvent gObjectEvents[OBJECT_EVENTS_COUNT] = {}; EWRAM_DATA struct PlayerAvatar gPlayerAvatar = {}; @@ -140,9 +142,7 @@ static void AlignFishingAnimationFrames(void); static u8 TrySpinPlayerForWarp(struct ObjectEvent *object, s16 *a1); -// .rodata - -static bool8 (*const sForcedMovementTestFuncs[])(u8) = +static bool8 (*const sForcedMovementTestFuncs[NUM_FORCED_MOVEMENTS])(u8) = { MetatileBehavior_IsTrickHouseSlipperyFloor, MetatileBehavior_IsIce_2, @@ -164,7 +164,8 @@ static bool8 (*const sForcedMovementTestFuncs[])(u8) = MetatileBehavior_IsMuddySlope, }; -static bool8 (*const sForcedMovementFuncs[])(void) = +// + 1 for ForcedMovement_None, which is excluded above +static bool8 (*const sForcedMovementFuncs[NUM_FORCED_MOVEMENTS + 1])(void) = { ForcedMovement_None, ForcedMovement_Slip, @@ -189,12 +190,12 @@ static bool8 (*const sForcedMovementFuncs[])(void) = static void (*const sPlayerNotOnBikeFuncs[])(u8, u16) = { - PlayerNotOnBikeNotMoving, - PlayerNotOnBikeTurningInPlace, - PlayerNotOnBikeMoving, + [NOT_MOVING] = PlayerNotOnBikeNotMoving, + [TURN_DIRECTION] = PlayerNotOnBikeTurningInPlace, + [MOVING] = PlayerNotOnBikeMoving, }; -static bool8 (*const sAcroBikeTrickMetatiles[])(u8) = +static bool8 (*const sAcroBikeTrickMetatiles[NUM_ACRO_BIKE_COLLISIONS])(u8) = { MetatileBehavior_IsBumpySlope, MetatileBehavior_IsIsolatedVerticalRail, @@ -203,7 +204,7 @@ static bool8 (*const sAcroBikeTrickMetatiles[])(u8) = MetatileBehavior_IsHorizontalRail, }; -static const u8 sAcroBikeTrickCollisionTypes[] = { +static const u8 sAcroBikeTrickCollisionTypes[NUM_ACRO_BIKE_COLLISIONS] = { COLLISION_WHEELIE_HOP, COLLISION_ISOLATED_VERTICAL_RAIL, COLLISION_ISOLATED_HORIZONTAL_RAIL, @@ -233,33 +234,41 @@ static bool8 (*const sArrowWarpMetatileBehaviorChecks[])(u8) = static const u8 sRivalAvatarGfxIds[][2] = { - {OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL}, - {OBJ_EVENT_GFX_RIVAL_BRENDAN_MACH_BIKE, OBJ_EVENT_GFX_RIVAL_MAY_MACH_BIKE}, - {OBJ_EVENT_GFX_RIVAL_BRENDAN_ACRO_BIKE, OBJ_EVENT_GFX_RIVAL_MAY_ACRO_BIKE}, - {OBJ_EVENT_GFX_RIVAL_BRENDAN_SURFING, OBJ_EVENT_GFX_RIVAL_MAY_SURFING}, - {OBJ_EVENT_GFX_BRENDAN_UNDERWATER, OBJ_EVENT_GFX_MAY_UNDERWATER}, - {OBJ_EVENT_GFX_RIVAL_BRENDAN_FIELD_MOVE, OBJ_EVENT_GFX_RIVAL_MAY_FIELD_MOVE}, - {OBJ_EVENT_GFX_BRENDAN_FISHING, OBJ_EVENT_GFX_MAY_FISHING}, - {OBJ_EVENT_GFX_BRENDAN_WATERING, OBJ_EVENT_GFX_MAY_WATERING} + [PLAYER_AVATAR_STATE_NORMAL] = {OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL}, + [PLAYER_AVATAR_STATE_MACH_BIKE] = {OBJ_EVENT_GFX_RIVAL_BRENDAN_MACH_BIKE, OBJ_EVENT_GFX_RIVAL_MAY_MACH_BIKE}, + [PLAYER_AVATAR_STATE_ACRO_BIKE] = {OBJ_EVENT_GFX_RIVAL_BRENDAN_ACRO_BIKE, OBJ_EVENT_GFX_RIVAL_MAY_ACRO_BIKE}, + [PLAYER_AVATAR_STATE_SURFING] = {OBJ_EVENT_GFX_RIVAL_BRENDAN_SURFING, OBJ_EVENT_GFX_RIVAL_MAY_SURFING}, + [PLAYER_AVATAR_STATE_UNDERWATER] = {OBJ_EVENT_GFX_BRENDAN_UNDERWATER, OBJ_EVENT_GFX_MAY_UNDERWATER}, + [PLAYER_AVATAR_STATE_FIELD_MOVE] = {OBJ_EVENT_GFX_RIVAL_BRENDAN_FIELD_MOVE, OBJ_EVENT_GFX_RIVAL_MAY_FIELD_MOVE}, + [PLAYER_AVATAR_STATE_FISHING] = {OBJ_EVENT_GFX_BRENDAN_FISHING, OBJ_EVENT_GFX_MAY_FISHING}, + [PLAYER_AVATAR_STATE_WATERING] = {OBJ_EVENT_GFX_BRENDAN_WATERING, OBJ_EVENT_GFX_MAY_WATERING} }; static const u8 sPlayerAvatarGfxIds[][2] = { - {OBJ_EVENT_GFX_BRENDAN_NORMAL, OBJ_EVENT_GFX_MAY_NORMAL}, - {OBJ_EVENT_GFX_BRENDAN_MACH_BIKE, OBJ_EVENT_GFX_MAY_MACH_BIKE}, - {OBJ_EVENT_GFX_BRENDAN_ACRO_BIKE, OBJ_EVENT_GFX_MAY_ACRO_BIKE}, - {OBJ_EVENT_GFX_BRENDAN_SURFING, OBJ_EVENT_GFX_MAY_SURFING}, - {OBJ_EVENT_GFX_BRENDAN_UNDERWATER, OBJ_EVENT_GFX_MAY_UNDERWATER}, - {OBJ_EVENT_GFX_BRENDAN_FIELD_MOVE, OBJ_EVENT_GFX_MAY_FIELD_MOVE}, - {OBJ_EVENT_GFX_BRENDAN_FISHING, OBJ_EVENT_GFX_MAY_FISHING}, - {OBJ_EVENT_GFX_BRENDAN_WATERING, OBJ_EVENT_GFX_MAY_WATERING}, + [PLAYER_AVATAR_STATE_NORMAL] = {OBJ_EVENT_GFX_BRENDAN_NORMAL, OBJ_EVENT_GFX_MAY_NORMAL}, + [PLAYER_AVATAR_STATE_MACH_BIKE] = {OBJ_EVENT_GFX_BRENDAN_MACH_BIKE, OBJ_EVENT_GFX_MAY_MACH_BIKE}, + [PLAYER_AVATAR_STATE_ACRO_BIKE] = {OBJ_EVENT_GFX_BRENDAN_ACRO_BIKE, OBJ_EVENT_GFX_MAY_ACRO_BIKE}, + [PLAYER_AVATAR_STATE_SURFING] = {OBJ_EVENT_GFX_BRENDAN_SURFING, OBJ_EVENT_GFX_MAY_SURFING}, + [PLAYER_AVATAR_STATE_UNDERWATER] = {OBJ_EVENT_GFX_BRENDAN_UNDERWATER, OBJ_EVENT_GFX_MAY_UNDERWATER}, + [PLAYER_AVATAR_STATE_FIELD_MOVE] = {OBJ_EVENT_GFX_BRENDAN_FIELD_MOVE, OBJ_EVENT_GFX_MAY_FIELD_MOVE}, + [PLAYER_AVATAR_STATE_FISHING] = {OBJ_EVENT_GFX_BRENDAN_FISHING, OBJ_EVENT_GFX_MAY_FISHING}, + [PLAYER_AVATAR_STATE_WATERING] = {OBJ_EVENT_GFX_BRENDAN_WATERING, OBJ_EVENT_GFX_MAY_WATERING}, }; -static const u8 sFRLGAvatarGfxIds[] = {OBJ_EVENT_GFX_RED, OBJ_EVENT_GFX_LEAF}; +static const u8 sFRLGAvatarGfxIds[GENDER_COUNT] = +{ + [MALE] = OBJ_EVENT_GFX_RED, + [FEMALE] = OBJ_EVENT_GFX_LEAF +}; -static const u8 sRSAvatarGfxIds[] = {OBJ_EVENT_GFX_LINK_RS_BRENDAN, OBJ_EVENT_GFX_LINK_RS_MAY}; +static const u8 sRSAvatarGfxIds[GENDER_COUNT] = +{ + [MALE] = OBJ_EVENT_GFX_LINK_RS_BRENDAN, + [FEMALE] = OBJ_EVENT_GFX_LINK_RS_MAY +}; -static const u8 sPlayerAvatarGfxToStateFlag[2][5][2] = +static const u8 sPlayerAvatarGfxToStateFlag[GENDER_COUNT][5][2] = { [MALE] = { @@ -307,8 +316,6 @@ static bool8 (*const sPlayerAvatarSecretBaseMatSpin[])(struct Task *, struct Obj PlayerAvatar_SecretBaseMatSpinStep3, }; -// .text - void MovementType_Player(struct Sprite *sprite) { UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, ObjectEventCB2_NoMovement2); @@ -407,7 +414,7 @@ static u8 GetForcedMovementByMetatileBehavior(void) { u8 metatileBehavior = gObjectEvents[gPlayerAvatar.objectEventId].currentMetatileBehavior; - for (i = 0; i < 18; i++) + for (i = 0; i < NUM_FORCED_MOVEMENTS; i++) { if (sForcedMovementTestFuncs[i](metatileBehavior)) return i + 1; @@ -430,7 +437,7 @@ static bool8 ForcedMovement_None(void) return FALSE; } -static u8 DoForcedMovement(u8 direction, void (*b)(u8)) +static bool8 DoForcedMovement(u8 direction, void (*moveFunc)(u8)) { struct PlayerAvatar *playerAvatar = &gPlayerAvatar; u8 collision = CheckForPlayerAvatarCollision(direction); @@ -441,7 +448,7 @@ static u8 DoForcedMovement(u8 direction, void (*b)(u8)) ForcedMovement_None(); if (collision < COLLISION_STOP_SURFING) { - return 0; + return FALSE; } else { @@ -449,23 +456,23 @@ static u8 DoForcedMovement(u8 direction, void (*b)(u8)) PlayerJumpLedge(direction); playerAvatar->flags |= PLAYER_AVATAR_FLAG_FORCED_MOVE; playerAvatar->runningState = MOVING; - return 1; + return TRUE; } } else { playerAvatar->runningState = MOVING; - b(direction); - return 1; + moveFunc(direction); + return TRUE; } } -static u8 DoForcedMovementInCurrentDirection(void (*a)(u8)) +static bool8 DoForcedMovementInCurrentDirection(void (*moveFunc)(u8)) { struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; playerObjEvent->disableAnim = TRUE; - return DoForcedMovement(playerObjEvent->movementDirection, a); + return DoForcedMovement(playerObjEvent->movementDirection, moveFunc); } static bool8 ForcedMovement_Slip(void) @@ -513,13 +520,13 @@ static bool8 ForcedMovement_PushedEastByCurrent(void) return DoForcedMovement(DIR_EAST, PlayerRideWaterCurrent); } -static u8 ForcedMovement_Slide(u8 direction, void (*b)(u8)) +static bool8 ForcedMovement_Slide(u8 direction, void (*moveFunc)(u8)) { struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; playerObjEvent->disableAnim = TRUE; playerObjEvent->facingDirectionLocked = TRUE; - return DoForcedMovement(direction, b); + return DoForcedMovement(direction, moveFunc); } static bool8 ForcedMovement_SlideSouth(void) @@ -558,7 +565,7 @@ static bool8 ForcedMovement_MuddySlope(void) { struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - if (playerObjEvent->movementDirection != DIR_NORTH || GetPlayerSpeed() <= 3) + if (playerObjEvent->movementDirection != DIR_NORTH || GetPlayerSpeed() < PLAYER_SPEED_FASTEST) { Bike_UpdateBikeCounterSpeed(0); playerObjEvent->facingDirectionLocked = TRUE; @@ -578,20 +585,11 @@ static void MovePlayerNotOnBike(u8 direction, u16 heldKeys) static u8 CheckMovementInputNotOnBike(u8 direction) { if (direction == DIR_NONE) - { - gPlayerAvatar.runningState = NOT_MOVING; - return 0; - } + return gPlayerAvatar.runningState = NOT_MOVING; else if (direction != GetPlayerMovementDirection() && gPlayerAvatar.runningState != MOVING) - { - gPlayerAvatar.runningState = TURN_DIRECTION; - return 1; - } + return gPlayerAvatar.runningState = TURN_DIRECTION; else - { - gPlayerAvatar.runningState = MOVING; - return 2; - } + return gPlayerAvatar.runningState = MOVING; } static void PlayerNotOnBikeNotMoving(u8 direction, u16 heldKeys) @@ -710,8 +708,8 @@ static u8 CheckForObjectEventStaticCollision(struct ObjectEvent *objectEvent, s1 static bool8 CanStopSurfing(s16 x, s16 y, u8 direction) { if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) - && MapGridGetZCoordAt(x, y) == 3 - && GetObjectEventIdByXYZ(x, y, 3) == OBJECT_EVENTS_COUNT) + && MapGridGetElevationAt(x, y) == 3 + && GetObjectEventIdByPosition(x, y, 3) == OBJECT_EVENTS_COUNT) { CreateStopSurfingTask(direction); return TRUE; @@ -736,13 +734,13 @@ static bool8 TryPushBoulder(s16 x, s16 y, u8 direction) { u8 objectEventId = GetObjectEventIdByXY(x, y); - if (objectEventId != 16 && gObjectEvents[objectEventId].graphicsId == OBJ_EVENT_GFX_PUSHABLE_BOULDER) + if (objectEventId != OBJECT_EVENTS_COUNT && gObjectEvents[objectEventId].graphicsId == OBJ_EVENT_GFX_PUSHABLE_BOULDER) { x = gObjectEvents[objectEventId].currentCoords.x; y = gObjectEvents[objectEventId].currentCoords.y; MoveCoords(direction, &x, &y); if (GetCollisionAtCoords(&gObjectEvents[objectEventId], x, y, direction) == COLLISION_NONE - && MetatileBehavior_IsNonAnimDoor(MapGridGetMetatileBehaviorAt(x, y)) == 0) + && MetatileBehavior_IsNonAnimDoor(MapGridGetMetatileBehaviorAt(x, y)) == FALSE) { StartStrengthAnim(objectEventId, direction); return TRUE; @@ -756,7 +754,7 @@ static void CheckAcroBikeCollision(s16 x, s16 y, u8 metatileBehavior, u8 *collis { u8 i; - for (i = 0; i < ARRAY_COUNT(sAcroBikeTrickMetatiles); i++) + for (i = 0; i < NUM_ACRO_BIKE_COLLISIONS; i++) { if (sAcroBikeTrickMetatiles[i](metatileBehavior)) { @@ -1170,7 +1168,7 @@ u8 GetPlayerMovementDirection(void) return gObjectEvents[gPlayerAvatar.objectEventId].movementDirection; } -u8 PlayerGetZCoord(void) +u8 PlayerGetElevation(void) { return gObjectEvents[gPlayerAvatar.objectEventId].previousElevation; } @@ -1308,7 +1306,7 @@ bool8 IsPlayerFacingSurfableFishableWater(void) MoveCoords(playerObjEvent->facingDirection, &x, &y); if (GetCollisionAtCoords(playerObjEvent, x, y, playerObjEvent->facingDirection) == COLLISION_ELEVATION_MISMATCH - && PlayerGetZCoord() == 3 + && PlayerGetElevation() == 3 && MetatileBehavior_IsSurfableFishableWater(MapGridGetMetatileBehaviorAt(x, y))) return TRUE; else diff --git a/src/field_poison.c b/src/field_poison.c index 132ce571e1..90013243cd 100644 --- a/src/field_poison.c +++ b/src/field_poison.c @@ -50,7 +50,7 @@ static void FaintFromFieldPoison(u8 partyIdx) AdjustFriendship(pokemon, FRIENDSHIP_EVENT_FAINT_FIELD_PSN); SetMonData(pokemon, MON_DATA_STATUS, &status); GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1); - StringGetEnd10(gStringVar1); + StringGet_Nickname(gStringVar1); } static bool32 MonFaintedFromPoison(u8 partyIdx) diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 0cf5e41456..eda1467258 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -35,7 +35,6 @@ #include "trainer_hill.h" #include "fldeff.h" -// This file's functions. static void Task_ExitNonAnimDoor(u8); static void Task_ExitNonDoor(u8); static void Task_DoContestHallWarp(u8); @@ -50,9 +49,9 @@ static void Task_EnableScriptAfterMusicFade(u8 taskId); // data[0] is used universally by tasks in this file as a state for switches #define tState data[0] -// const -static const u16 sFlashLevelPixelRadii[] = { 200, 72, 64, 56, 48, 40, 32, 24, 0 }; -const s32 gMaxFlashLevel = ARRAY_COUNT(sFlashLevelPixelRadii) - 1; +// Smaller flash level -> larger flash radius +static const u16 sFlashLevelToRadius[] = { 200, 72, 64, 56, 48, 40, 32, 24, 0 }; +const s32 gMaxFlashLevel = ARRAY_COUNT(sFlashLevelToRadius) - 1; const struct ScanlineEffectParams sFlashEffectParams = { @@ -503,7 +502,7 @@ void DoDiveWarp(void) CreateTask(Task_WarpAndLoadMap, 10); } -void DoSootopolisLegendWarp(void) +void DoWhiteFadeWarp(void) { ScriptContext2_Enable(); TryFadeOutOldMapMusic(); @@ -971,14 +970,14 @@ static u8 StartUpdateOrbFlashEffect(s32 centerX, s32 centerY, s32 initialFlashRa #undef tFlashRadiusDelta #undef tClearScanlineEffect -// A higher flashLevel value is a smaller flash radius (more darkness). 0 is full brightness -void AnimateFlash(u8 flashLevel) +// A higher flash level is a smaller flash radius (more darkness). 0 is full brightness +void AnimateFlash(u8 newFlashLevel) { - u8 curFlashLevel = Overworld_GetFlashLevel(); + u8 curFlashLevel = GetFlashLevel(); bool8 fullBrightness = FALSE; - if (!flashLevel) + if (newFlashLevel == 0) fullBrightness = TRUE; - StartUpdateFlashLevelEffect(DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, sFlashLevelPixelRadii[curFlashLevel], sFlashLevelPixelRadii[flashLevel], fullBrightness, 1); + StartUpdateFlashLevelEffect(DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, sFlashLevelToRadius[curFlashLevel], sFlashLevelToRadius[newFlashLevel], fullBrightness, 1); StartWaitForFlashUpdate(); ScriptContext2_Enable(); } @@ -987,7 +986,7 @@ void WriteFlashScanlineEffectBuffer(u8 flashLevel) { if (flashLevel) { - SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, sFlashLevelPixelRadii[flashLevel]); + SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, sFlashLevelToRadius[flashLevel]); CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); } } diff --git a/src/field_special_scene.c b/src/field_special_scene.c index 39e5d66980..d8b9eb05d1 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -325,7 +325,7 @@ void Task_HandlePorthole(u8 taskId) static void ShowSSTidalWhileSailing(void) { - u8 spriteId = AddPseudoObjectEvent(OBJ_EVENT_GFX_SS_TIDAL, SpriteCallbackDummy, 112, 80, 0); + u8 spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_SS_TIDAL, SpriteCallbackDummy, 112, 80, 0); gSprites[spriteId].coordOffsetEnabled = FALSE; @@ -349,7 +349,7 @@ void LookThroughPorthole(void) FlagSet(FLAG_SYS_CRUISE_MODE); FlagSet(FLAG_DONT_TRANSITION_MUSIC); FlagSet(FLAG_HIDE_MAP_NAME_POPUP); - SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); + SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, WARP_ID_NONE); TrySetPortholeWarpDestination(); DoPortholeWarp(); } diff --git a/src/field_specials.c b/src/field_specials.c index ef569ca006..a4cdafafc2 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -55,7 +55,6 @@ #include "constants/items.h" #include "constants/heal_locations.h" #include "constants/map_types.h" -#include "constants/maps.h" #include "constants/mystery_gift.h" #include "constants/script_menu.h" #include "constants/slot_machine.h" @@ -194,59 +193,40 @@ static void DetermineCyclingRoadResults(u32 numFrames, u8 numBikeCollisions) result = 0; if (numBikeCollisions == 0) - { result = 5; - } else if (numBikeCollisions < 4) - { result = 4; - } else if (numBikeCollisions < 10) - { result = 3; - } else if (numBikeCollisions < 20) - { result = 2; - } else if (numBikeCollisions < 100) - { result = 1; - } if (numFrames / 60 <= 10) - { result += 5; - } else if (numFrames / 60 <= 15) - { result += 4; - } else if (numFrames / 60 <= 20) - { result += 3; - } else if (numFrames / 60 <= 40) - { result += 2; - } else if (numFrames / 60 < 60) - { result += 1; - } - gSpecialVar_Result = result; } -void FinishCyclingRoadChallenge(void) { +void FinishCyclingRoadChallenge(void) +{ const u32 numFrames = gMain.vblankCounter1 - sBikeCyclingTimer; DetermineCyclingRoadResults(numFrames, gBikeCollisions); RecordCyclingRoadResults(numFrames, gBikeCollisions); } -static void RecordCyclingRoadResults(u32 numFrames, u8 numBikeCollisions) { +static void RecordCyclingRoadResults(u32 numFrames, u8 numBikeCollisions) +{ u16 low = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_L); u16 high = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_H); u32 framesRecord = low + (high << 16); @@ -259,25 +239,23 @@ static void RecordCyclingRoadResults(u32 numFrames, u8 numBikeCollisions) { } } -u16 GetRecordedCyclingRoadResults(void) { +u16 GetRecordedCyclingRoadResults(void) +{ u16 low = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_L); u16 high = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_H); u32 framesRecord = low + (high << 16); if (framesRecord == 0) - { return FALSE; - } DetermineCyclingRoadResults(framesRecord, VarGet(VAR_CYCLING_ROAD_RECORD_COLLISIONS)); return TRUE; } -void UpdateCyclingRoadState(void) { +void UpdateCyclingRoadState(void) +{ if (gLastUsedWarp.mapNum == MAP_NUM(ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE) && gLastUsedWarp.mapGroup == MAP_GROUP(ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE)) - { return; - } if (VarGet(VAR_CYCLING_CHALLENGE_STATE) == 2 || VarGet(VAR_CYCLING_CHALLENGE_STATE) == 3) { @@ -301,9 +279,8 @@ void ResetSSTidalFlag(void) bool32 CountSSTidalStep(u16 delta) { if (!FlagGet(FLAG_SYS_CRUISE_MODE) || (*GetVarPointer(VAR_CRUISE_STEP_COUNT) += delta) < SS_TIDAL_MAX_STEPS) - { return FALSE; - } + return TRUE; } @@ -312,51 +289,52 @@ u8 GetSSTidalLocation(s8 *mapGroup, s8 *mapNum, s16 *x, s16 *y) u16 *varCruiseStepCount = GetVarPointer(VAR_CRUISE_STEP_COUNT); switch (*GetVarPointer(VAR_SS_TIDAL_STATE)) { - case SS_TIDAL_BOARD_SLATEPORT: - case SS_TIDAL_LAND_SLATEPORT: - return SS_TIDAL_LOCATION_SLATEPORT; - case SS_TIDAL_HALFWAY_LILYCOVE: - case SS_TIDAL_EXIT_CURRENTS_RIGHT: - return SS_TIDAL_LOCATION_ROUTE131; - case SS_TIDAL_LAND_LILYCOVE: - case SS_TIDAL_BOARD_LILYCOVE: - return SS_TIDAL_LOCATION_LILYCOVE; - case SS_TIDAL_DEPART_LILYCOVE: - case SS_TIDAL_EXIT_CURRENTS_LEFT: - return SS_TIDAL_LOCATION_ROUTE124; - case SS_TIDAL_DEPART_SLATEPORT: - if (*varCruiseStepCount < 60) - { - *mapNum = MAP_NUM(ROUTE134); - *x = *varCruiseStepCount + 19; - } - else if (*varCruiseStepCount < 140) - { - *mapNum = MAP_NUM(ROUTE133); - *x = *varCruiseStepCount - 60; - } - else - { - *mapNum = MAP_NUM(ROUTE132); - *x = *varCruiseStepCount - 140; - } - break; - case SS_TIDAL_HALFWAY_SLATEPORT: - if (*varCruiseStepCount < 66) - { - *mapNum = MAP_NUM(ROUTE132); - *x = 65 - *varCruiseStepCount; - } - else if (*varCruiseStepCount < 146) { - *mapNum = MAP_NUM(ROUTE133); - *x = 145 - *varCruiseStepCount; - } - else - { - *mapNum = MAP_NUM(ROUTE134); - *x = 224 - *varCruiseStepCount; - } - break; + case SS_TIDAL_BOARD_SLATEPORT: + case SS_TIDAL_LAND_SLATEPORT: + return SS_TIDAL_LOCATION_SLATEPORT; + case SS_TIDAL_HALFWAY_LILYCOVE: + case SS_TIDAL_EXIT_CURRENTS_RIGHT: + return SS_TIDAL_LOCATION_ROUTE131; + case SS_TIDAL_LAND_LILYCOVE: + case SS_TIDAL_BOARD_LILYCOVE: + return SS_TIDAL_LOCATION_LILYCOVE; + case SS_TIDAL_DEPART_LILYCOVE: + case SS_TIDAL_EXIT_CURRENTS_LEFT: + return SS_TIDAL_LOCATION_ROUTE124; + case SS_TIDAL_DEPART_SLATEPORT: + if (*varCruiseStepCount < 60) + { + *mapNum = MAP_NUM(ROUTE134); + *x = *varCruiseStepCount + 19; + } + else if (*varCruiseStepCount < 140) + { + *mapNum = MAP_NUM(ROUTE133); + *x = *varCruiseStepCount - 60; + } + else + { + *mapNum = MAP_NUM(ROUTE132); + *x = *varCruiseStepCount - 140; + } + break; + case SS_TIDAL_HALFWAY_SLATEPORT: + if (*varCruiseStepCount < 66) + { + *mapNum = MAP_NUM(ROUTE132); + *x = 65 - *varCruiseStepCount; + } + else if (*varCruiseStepCount < 146) + { + *mapNum = MAP_NUM(ROUTE133); + *x = 145 - *varCruiseStepCount; + } + else + { + *mapNum = MAP_NUM(ROUTE134); + *x = 224 - *varCruiseStepCount; + } + break; } *mapGroup = MAP_GROUP(ROUTE132); *y = 20; @@ -369,17 +347,15 @@ bool32 ShouldDoWallyCall(void) { switch (gMapHeader.mapType) { - case MAP_TYPE_TOWN: - case MAP_TYPE_CITY: - case MAP_TYPE_ROUTE: - case MAP_TYPE_OCEAN_ROUTE: - if (++(*GetVarPointer(VAR_WALLY_CALL_STEP_COUNTER)) < 250) - { - return FALSE; - } - break; - default: + case MAP_TYPE_TOWN: + case MAP_TYPE_CITY: + case MAP_TYPE_ROUTE: + case MAP_TYPE_OCEAN_ROUTE: + if (++(*GetVarPointer(VAR_WALLY_CALL_STEP_COUNTER)) < 250) return FALSE; + break; + default: + return FALSE; } } else @@ -396,17 +372,15 @@ bool32 ShouldDoScottFortreeCall(void) { switch (gMapHeader.mapType) { - case MAP_TYPE_TOWN: - case MAP_TYPE_CITY: - case MAP_TYPE_ROUTE: - case MAP_TYPE_OCEAN_ROUTE: - if (++(*GetVarPointer(VAR_SCOTT_FORTREE_CALL_STEP_COUNTER)) < 10) - { - return FALSE; - } - break; - default: + case MAP_TYPE_TOWN: + case MAP_TYPE_CITY: + case MAP_TYPE_ROUTE: + case MAP_TYPE_OCEAN_ROUTE: + if (++(*GetVarPointer(VAR_SCOTT_FORTREE_CALL_STEP_COUNTER)) < 10) return FALSE; + break; + default: + return FALSE; } } else @@ -423,17 +397,15 @@ bool32 ShouldDoScottBattleFrontierCall(void) { switch (gMapHeader.mapType) { - case MAP_TYPE_TOWN: - case MAP_TYPE_CITY: - case MAP_TYPE_ROUTE: - case MAP_TYPE_OCEAN_ROUTE: - if (++(*GetVarPointer(VAR_SCOTT_BF_CALL_STEP_COUNTER)) < 10) - { - return FALSE; - } - break; - default: + case MAP_TYPE_TOWN: + case MAP_TYPE_CITY: + case MAP_TYPE_ROUTE: + case MAP_TYPE_OCEAN_ROUTE: + if (++(*GetVarPointer(VAR_SCOTT_BF_CALL_STEP_COUNTER)) < 10) return FALSE; + break; + default: + return FALSE; } } else @@ -450,17 +422,15 @@ bool32 ShouldDoRoxanneCall(void) { switch (gMapHeader.mapType) { - case MAP_TYPE_TOWN: - case MAP_TYPE_CITY: - case MAP_TYPE_ROUTE: - case MAP_TYPE_OCEAN_ROUTE: - if (++(*GetVarPointer(VAR_ROXANNE_CALL_STEP_COUNTER)) < 250) - { - return FALSE; - } - break; - default: + case MAP_TYPE_TOWN: + case MAP_TYPE_CITY: + case MAP_TYPE_ROUTE: + case MAP_TYPE_OCEAN_ROUTE: + if (++(*GetVarPointer(VAR_ROXANNE_CALL_STEP_COUNTER)) < 250) return FALSE; + break; + default: + return FALSE; } } else @@ -477,17 +447,15 @@ bool32 ShouldDoRivalRayquazaCall(void) { switch (gMapHeader.mapType) { - case MAP_TYPE_TOWN: - case MAP_TYPE_CITY: - case MAP_TYPE_ROUTE: - case MAP_TYPE_OCEAN_ROUTE: - if (++(*GetVarPointer(VAR_RIVAL_RAYQUAZA_CALL_STEP_COUNTER)) < 250) - { - return FALSE; - } - break; - default: + case MAP_TYPE_TOWN: + case MAP_TYPE_CITY: + case MAP_TYPE_ROUTE: + case MAP_TYPE_OCEAN_ROUTE: + if (++(*GetVarPointer(VAR_RIVAL_RAYQUAZA_CALL_STEP_COUNTER)) < 250) return FALSE; + break; + default: + return FALSE; } } else @@ -541,24 +509,24 @@ void SpawnLinkPartnerObjectEvent(void) playerFacingDirection = GetPlayerFacingDirection(); switch (playerFacingDirection) { - case DIR_WEST: - j = 2; - x = gSaveBlock1Ptr->pos.x - 1; - y = gSaveBlock1Ptr->pos.y; - break; - case DIR_NORTH: - j = 1; - x = gSaveBlock1Ptr->pos.x; - y = gSaveBlock1Ptr->pos.y - 1; - break; - case DIR_EAST: - x = gSaveBlock1Ptr->pos.x + 1; - y = gSaveBlock1Ptr->pos.y; - break; - case DIR_SOUTH: - j = 3; - x = gSaveBlock1Ptr->pos.x; - y = gSaveBlock1Ptr->pos.y + 1; + case DIR_WEST: + j = 2; + x = gSaveBlock1Ptr->pos.x - 1; + y = gSaveBlock1Ptr->pos.y; + break; + case DIR_NORTH: + j = 1; + x = gSaveBlock1Ptr->pos.x; + y = gSaveBlock1Ptr->pos.y - 1; + break; + case DIR_EAST: + x = gSaveBlock1Ptr->pos.x + 1; + y = gSaveBlock1Ptr->pos.y; + break; + case DIR_SOUTH: + j = 3; + x = gSaveBlock1Ptr->pos.x; + y = gSaveBlock1Ptr->pos.y + 1; } for (i = 0; i < gSpecialVar_0x8004; i++) { @@ -566,33 +534,31 @@ void SpawnLinkPartnerObjectEvent(void) { switch ((u8)gLinkPlayers[i].version) { - case VERSION_RUBY: - case VERSION_SAPPHIRE: - if (gLinkPlayers[i].gender == 0) - linkSpriteId = OBJ_EVENT_GFX_LINK_RS_BRENDAN; - else - linkSpriteId = OBJ_EVENT_GFX_LINK_RS_MAY; - break; - case VERSION_EMERALD: - if (gLinkPlayers[i].gender == 0) - linkSpriteId = OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL; - else - linkSpriteId = OBJ_EVENT_GFX_RIVAL_MAY_NORMAL; - break; - default: - if (gLinkPlayers[i].gender == 0) - linkSpriteId = OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL; - else - linkSpriteId = OBJ_EVENT_GFX_RIVAL_MAY_NORMAL; - break; + case VERSION_RUBY: + case VERSION_SAPPHIRE: + if (gLinkPlayers[i].gender == 0) + linkSpriteId = OBJ_EVENT_GFX_LINK_RS_BRENDAN; + else + linkSpriteId = OBJ_EVENT_GFX_LINK_RS_MAY; + break; + case VERSION_EMERALD: + if (gLinkPlayers[i].gender == 0) + linkSpriteId = OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL; + else + linkSpriteId = OBJ_EVENT_GFX_RIVAL_MAY_NORMAL; + break; + default: + if (gLinkPlayers[i].gender == 0) + linkSpriteId = OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL; + else + linkSpriteId = OBJ_EVENT_GFX_RIVAL_MAY_NORMAL; + break; } SpawnSpecialObjectEventParameterized(linkSpriteId, movementTypes[j], 240 - i, coordOffsets[j][0] + x + MAP_OFFSET, coordOffsets[j][1] + y + MAP_OFFSET, 0); LoadLinkPartnerObjectEventSpritePalette(linkSpriteId, 240 - i, i); j++; if (j == MAX_LINK_PLAYERS) - { j = 0; - } } } } @@ -665,84 +631,84 @@ void MauvilleGymSetDefaultBarriers(void) { switch (MapGridGetMetatileIdAt(x, y)) { - case METATILE_MauvilleGym_GreenBeamH1_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH1_Off); - break; - case METATILE_MauvilleGym_GreenBeamH2_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH2_Off); - break; - case METATILE_MauvilleGym_GreenBeamH3_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH3_Off); - break; - case METATILE_MauvilleGym_GreenBeamH4_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH4_Off); - break; - case METATILE_MauvilleGym_GreenBeamH1_Off: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH1_On); - break; - case METATILE_MauvilleGym_GreenBeamH2_Off: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH2_On); - break; - case METATILE_MauvilleGym_GreenBeamH3_Off: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH3_On | METATILE_COLLISION_MASK); - break; - case METATILE_MauvilleGym_GreenBeamH4_Off: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH4_On | METATILE_COLLISION_MASK); - break; - case METATILE_MauvilleGym_RedBeamH1_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH1_Off); - break; - case METATILE_MauvilleGym_RedBeamH2_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH2_Off); - break; - case METATILE_MauvilleGym_RedBeamH3_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH3_Off); - break; - case METATILE_MauvilleGym_RedBeamH4_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH4_Off); - break; - case METATILE_MauvilleGym_RedBeamH1_Off: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH1_On); - break; - case METATILE_MauvilleGym_RedBeamH2_Off: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH2_On); - break; - case METATILE_MauvilleGym_RedBeamH3_Off: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH3_On | METATILE_COLLISION_MASK); - break; - case METATILE_MauvilleGym_RedBeamH4_Off: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH4_On | METATILE_COLLISION_MASK); - break; - case METATILE_MauvilleGym_GreenBeamV1_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleBottom_On | METATILE_COLLISION_MASK); - break; - case METATILE_MauvilleGym_GreenBeamV2_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_FloorTile); - break; - case METATILE_MauvilleGym_RedBeamV1_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleBottom_Off | METATILE_COLLISION_MASK); - break; - case METATILE_MauvilleGym_RedBeamV2_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_FloorTile); - break; - case METATILE_MauvilleGym_PoleBottom_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamV1_On | METATILE_COLLISION_MASK); - break; - case METATILE_MauvilleGym_FloorTile: - if (MapGridGetMetatileIdAt(x, y - 1) == METATILE_MauvilleGym_GreenBeamV1_On) - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamV2_On | METATILE_COLLISION_MASK); - else - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamV2_On | METATILE_COLLISION_MASK); - break; - case METATILE_MauvilleGym_PoleBottom_Off: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamV1_On | METATILE_COLLISION_MASK); - break; - case METATILE_MauvilleGym_PoleTop_Off: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleTop_On | METATILE_COLLISION_MASK); - break; - case METATILE_MauvilleGym_PoleTop_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleTop_Off); - break; + case METATILE_MauvilleGym_GreenBeamH1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH1_Off); + break; + case METATILE_MauvilleGym_GreenBeamH2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH2_Off); + break; + case METATILE_MauvilleGym_GreenBeamH3_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH3_Off); + break; + case METATILE_MauvilleGym_GreenBeamH4_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH4_Off); + break; + case METATILE_MauvilleGym_GreenBeamH1_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH1_On); + break; + case METATILE_MauvilleGym_GreenBeamH2_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH2_On); + break; + case METATILE_MauvilleGym_GreenBeamH3_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH3_On | MAPGRID_COLLISION_MASK); + break; + case METATILE_MauvilleGym_GreenBeamH4_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH4_On | MAPGRID_COLLISION_MASK); + break; + case METATILE_MauvilleGym_RedBeamH1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH1_Off); + break; + case METATILE_MauvilleGym_RedBeamH2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH2_Off); + break; + case METATILE_MauvilleGym_RedBeamH3_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH3_Off); + break; + case METATILE_MauvilleGym_RedBeamH4_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH4_Off); + break; + case METATILE_MauvilleGym_RedBeamH1_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH1_On); + break; + case METATILE_MauvilleGym_RedBeamH2_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH2_On); + break; + case METATILE_MauvilleGym_RedBeamH3_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH3_On | MAPGRID_COLLISION_MASK); + break; + case METATILE_MauvilleGym_RedBeamH4_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH4_On | MAPGRID_COLLISION_MASK); + break; + case METATILE_MauvilleGym_GreenBeamV1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleBottom_On | MAPGRID_COLLISION_MASK); + break; + case METATILE_MauvilleGym_GreenBeamV2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_FloorTile); + break; + case METATILE_MauvilleGym_RedBeamV1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleBottom_Off | MAPGRID_COLLISION_MASK); + break; + case METATILE_MauvilleGym_RedBeamV2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_FloorTile); + break; + case METATILE_MauvilleGym_PoleBottom_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamV1_On | MAPGRID_COLLISION_MASK); + break; + case METATILE_MauvilleGym_FloorTile: + if (MapGridGetMetatileIdAt(x, y - 1) == METATILE_MauvilleGym_GreenBeamV1_On) + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamV2_On | MAPGRID_COLLISION_MASK); + else + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamV2_On | MAPGRID_COLLISION_MASK); + break; + case METATILE_MauvilleGym_PoleBottom_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamV1_On | MAPGRID_COLLISION_MASK); + break; + case METATILE_MauvilleGym_PoleTop_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleTop_On | MAPGRID_COLLISION_MASK); + break; + case METATILE_MauvilleGym_PoleTop_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleTop_Off); + break; } } } @@ -764,43 +730,43 @@ void MauvilleGymDeactivatePuzzle(void) { switch (MapGridGetMetatileIdAt(x, y)) { - case METATILE_MauvilleGym_GreenBeamH1_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH1_Off); - break; - case METATILE_MauvilleGym_GreenBeamH2_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH2_Off); - break; - case METATILE_MauvilleGym_GreenBeamH3_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH3_Off); - break; - case METATILE_MauvilleGym_GreenBeamH4_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH4_Off); - break; - case METATILE_MauvilleGym_RedBeamH1_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH1_Off); - break; - case METATILE_MauvilleGym_RedBeamH2_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH2_Off); - break; - case METATILE_MauvilleGym_RedBeamH3_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH3_Off); - break; - case METATILE_MauvilleGym_RedBeamH4_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH4_Off); - break; - case METATILE_MauvilleGym_GreenBeamV1_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleBottom_On | METATILE_COLLISION_MASK); - break; - case METATILE_MauvilleGym_RedBeamV1_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleBottom_Off | METATILE_COLLISION_MASK); - break; - case METATILE_MauvilleGym_GreenBeamV2_On: - case METATILE_MauvilleGym_RedBeamV2_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_FloorTile); - break; - case METATILE_MauvilleGym_PoleTop_On: - MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleTop_Off); - break; + case METATILE_MauvilleGym_GreenBeamH1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH1_Off); + break; + case METATILE_MauvilleGym_GreenBeamH2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH2_Off); + break; + case METATILE_MauvilleGym_GreenBeamH3_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH3_Off); + break; + case METATILE_MauvilleGym_GreenBeamH4_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH4_Off); + break; + case METATILE_MauvilleGym_RedBeamH1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH1_Off); + break; + case METATILE_MauvilleGym_RedBeamH2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH2_Off); + break; + case METATILE_MauvilleGym_RedBeamH3_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH3_Off); + break; + case METATILE_MauvilleGym_RedBeamH4_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH4_Off); + break; + case METATILE_MauvilleGym_GreenBeamV1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleBottom_On | MAPGRID_COLLISION_MASK); + break; + case METATILE_MauvilleGym_RedBeamV1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleBottom_Off | MAPGRID_COLLISION_MASK); + break; + case METATILE_MauvilleGym_GreenBeamV2_On: + case METATILE_MauvilleGym_RedBeamV2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_FloorTile); + break; + case METATILE_MauvilleGym_PoleTop_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleTop_Off); + break; } } } @@ -850,59 +816,59 @@ static void PetalburgGymSetDoorMetatiles(u8 roomNumber, u16 metatileId) u8 nDoors = 0; switch (roomNumber) { - case 1: - nDoors = 2; - doorCoordsX[0] = 1; - doorCoordsX[1] = 7; - doorCoordsY[0] = 104; - doorCoordsY[1] = 104; - break; - case 2: - nDoors = 2; - doorCoordsX[0] = 1; - doorCoordsX[1] = 7; - doorCoordsY[0] = 78; - doorCoordsY[1] = 78; - break; - case 3: - nDoors = 2; - doorCoordsX[0] = 1; - doorCoordsX[1] = 7; - doorCoordsY[0] = 91; - doorCoordsY[1] = 91; - break; - case 4: - nDoors = 1; - doorCoordsX[0] = 7; - doorCoordsY[0] = 39; - break; - case 5: - nDoors = 2; - doorCoordsX[0] = 1; - doorCoordsX[1] = 7; - doorCoordsY[0] = 52; - doorCoordsY[1] = 52; - break; - case 6: - nDoors = 1; - doorCoordsX[0] = 1; - doorCoordsY[0] = 65; - break; - case 7: - nDoors = 1; - doorCoordsX[0] = 7; - doorCoordsY[0] = 13; - break; - case 8: - nDoors = 1; - doorCoordsX[0] = 1; - doorCoordsY[0] = 26; - break; + case 1: + nDoors = 2; + doorCoordsX[0] = 1; + doorCoordsX[1] = 7; + doorCoordsY[0] = 104; + doorCoordsY[1] = 104; + break; + case 2: + nDoors = 2; + doorCoordsX[0] = 1; + doorCoordsX[1] = 7; + doorCoordsY[0] = 78; + doorCoordsY[1] = 78; + break; + case 3: + nDoors = 2; + doorCoordsX[0] = 1; + doorCoordsX[1] = 7; + doorCoordsY[0] = 91; + doorCoordsY[1] = 91; + break; + case 4: + nDoors = 1; + doorCoordsX[0] = 7; + doorCoordsY[0] = 39; + break; + case 5: + nDoors = 2; + doorCoordsX[0] = 1; + doorCoordsX[1] = 7; + doorCoordsY[0] = 52; + doorCoordsY[1] = 52; + break; + case 6: + nDoors = 1; + doorCoordsX[0] = 1; + doorCoordsY[0] = 65; + break; + case 7: + nDoors = 1; + doorCoordsX[0] = 7; + doorCoordsY[0] = 13; + break; + case 8: + nDoors = 1; + doorCoordsX[0] = 1; + doorCoordsY[0] = 26; + break; } for (i = 0; i < nDoors; i++) { - MapGridSetMetatileIdAt(doorCoordsX[i] + MAP_OFFSET, doorCoordsY[i] + MAP_OFFSET, metatileId | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(doorCoordsX[i] + MAP_OFFSET, doorCoordsY[i] + MAP_OFFSET + 1, (metatileId + 8) | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(doorCoordsX[i] + MAP_OFFSET, doorCoordsY[i] + MAP_OFFSET, metatileId | MAPGRID_COLLISION_MASK); + MapGridSetMetatileIdAt(doorCoordsX[i] + MAP_OFFSET, doorCoordsY[i] + MAP_OFFSET + 1, (metatileId + 8) | MAPGRID_COLLISION_MASK); } DrawWholeMapView(); } @@ -931,25 +897,17 @@ u8 GetPlayerTrainerIdOnesDigit(void) void GetPlayerBigGuyGirlString(void) { if (gSaveBlock2Ptr->playerGender == MALE) - { StringCopy(gStringVar1, gText_BigGuy); - } else - { StringCopy(gStringVar1, gText_BigGirl); - } } void GetRivalSonDaughterString(void) { if (gSaveBlock2Ptr->playerGender == MALE) - { StringCopy(gStringVar1, gText_Daughter); - } else - { StringCopy(gStringVar1, gText_Son); - } } u8 GetBattleOutcome(void) @@ -960,13 +918,9 @@ u8 GetBattleOutcome(void) void CableCarWarp(void) { if (gSpecialVar_0x8004 != 0) - { - SetWarpDestination(MAP_GROUP(ROUTE112_CABLE_CAR_STATION), MAP_NUM(ROUTE112_CABLE_CAR_STATION), -1, 6, 4); - } + SetWarpDestination(MAP_GROUP(ROUTE112_CABLE_CAR_STATION), MAP_NUM(ROUTE112_CABLE_CAR_STATION), WARP_ID_NONE, 6, 4); else - { - SetWarpDestination(MAP_GROUP(MT_CHIMNEY_CABLE_CAR_STATION), MAP_NUM(MT_CHIMNEY_CABLE_CAR_STATION), -1, 6, 4); - } + SetWarpDestination(MAP_GROUP(MT_CHIMNEY_CABLE_CAR_STATION), MAP_NUM(MT_CHIMNEY_CABLE_CAR_STATION), WARP_ID_NONE, 6, 4); } void SetHiddenItemFlag(void) @@ -978,9 +932,8 @@ u16 GetWeekCount(void) { u16 weekCount = gLocalTime.days / 7; if (weekCount > 9999) - { weekCount = 9999; - } + return weekCount; } @@ -988,29 +941,18 @@ u8 GetLeadMonFriendshipScore(void) { struct Pokemon *pokemon = &gPlayerParty[GetLeadMonIndex()]; if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) == MAX_FRIENDSHIP) - { return 6; - } if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 200) - { return 5; - } if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 150) - { return 4; - } if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 100) - { return 3; - } if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 50) - { return 2; - } if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 1) - { return 1; - } + return 0; } @@ -1041,9 +983,7 @@ static void Task_PCTurnOnEffect(u8 taskId) { struct Task *task = &gTasks[taskId]; if (task->data[0] == 0) - { PCTurnOnEffect_0(task); - } } static void PCTurnOnEffect_0(struct Task *task) @@ -1057,26 +997,24 @@ static void PCTurnOnEffect_0(struct Task *task) playerDirection = GetPlayerFacingDirection(); switch (playerDirection) { - case DIR_NORTH: - dx = 0; - dy = -1; - break; - case DIR_WEST: - dx = -1; - dy = -1; - break; - case DIR_EAST: - dx = 1; - dy = -1; - break; + case DIR_NORTH: + dx = 0; + dy = -1; + break; + case DIR_WEST: + dx = -1; + dy = -1; + break; + case DIR_EAST: + dx = 1; + dy = -1; + break; } PCTurnOnEffect_1(task->data[4], dx, dy); DrawWholeMapView(); task->data[4] ^= 1; if ((++task->data[2]) == 5) - { DestroyTask(task->data[1]); - } } task->data[3]++; } @@ -1087,34 +1025,22 @@ static void PCTurnOnEffect_1(s16 isPcTurnedOn, s8 dx, s8 dy) if (isPcTurnedOn) { if (gSpecialVar_0x8004 == PC_LOCATION_OTHER) - { tileId = METATILE_Building_PC_Off; - } else if (gSpecialVar_0x8004 == PC_LOCATION_BRENDANS_HOUSE) - { tileId = METATILE_BrendansMaysHouse_BrendanPC_Off; - } else if (gSpecialVar_0x8004 == PC_LOCATION_MAYS_HOUSE) - { tileId = METATILE_BrendansMaysHouse_MayPC_Off; - } } else { if (gSpecialVar_0x8004 == PC_LOCATION_OTHER) - { tileId = METATILE_Building_PC_On; - } else if (gSpecialVar_0x8004 == PC_LOCATION_BRENDANS_HOUSE) - { tileId = METATILE_BrendansMaysHouse_BrendanPC_On; - } else if (gSpecialVar_0x8004 == PC_LOCATION_MAYS_HOUSE) - { tileId = METATILE_BrendansMaysHouse_MayPC_On; - } } - MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + MAP_OFFSET, gSaveBlock1Ptr->pos.y + dy + MAP_OFFSET, tileId | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + MAP_OFFSET, gSaveBlock1Ptr->pos.y + dy + MAP_OFFSET, tileId | MAPGRID_COLLISION_MASK); } void DoPCTurnOffEffect(void) @@ -1130,32 +1056,26 @@ static void PCTurnOffEffect(void) u8 playerDirection = GetPlayerFacingDirection(); switch (playerDirection) { - case DIR_NORTH: - dx = 0; - dy = -1; - break; - case DIR_WEST: - dx = -1; - dy = -1; - break; - case DIR_EAST: - dx = 1; - dy = -1; - break; + case DIR_NORTH: + dx = 0; + dy = -1; + break; + case DIR_WEST: + dx = -1; + dy = -1; + break; + case DIR_EAST: + dx = 1; + dy = -1; + break; } - if (gSpecialVar_0x8004 == 0) - { + if (gSpecialVar_0x8004 == PC_LOCATION_OTHER) tileId = METATILE_Building_PC_Off; - } - else if (gSpecialVar_0x8004 == 1) - { + else if (gSpecialVar_0x8004 == PC_LOCATION_BRENDANS_HOUSE) tileId = METATILE_BrendansMaysHouse_BrendanPC_Off; - } - else if (gSpecialVar_0x8004 == 2) - { + else if (gSpecialVar_0x8004 == PC_LOCATION_MAYS_HOUSE) tileId = METATILE_BrendansMaysHouse_MayPC_Off; - } - MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + MAP_OFFSET, gSaveBlock1Ptr->pos.y + dy + MAP_OFFSET, tileId | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + MAP_OFFSET, gSaveBlock1Ptr->pos.y + dy + MAP_OFFSET, tileId | MAPGRID_COLLISION_MASK); DrawWholeMapView(); } @@ -1176,9 +1096,7 @@ static void Task_LotteryCornerComputerEffect(u8 taskId) { struct Task *task = &gTasks[taskId]; if (task->data[0] == 0) - { LotteryCornerComputerEffect(task); - } } static void LotteryCornerComputerEffect(struct Task *task) @@ -1188,28 +1106,26 @@ static void LotteryCornerComputerEffect(struct Task *task) task->data[3] = 0; if (task->data[4] != 0) { - MapGridSetMetatileIdAt(11 + MAP_OFFSET, 1 + MAP_OFFSET, METATILE_Shop_Laptop1_Normal | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(11 + MAP_OFFSET, 2 + MAP_OFFSET, METATILE_Shop_Laptop2_Normal | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(11 + MAP_OFFSET, 1 + MAP_OFFSET, METATILE_Shop_Laptop1_Normal | MAPGRID_COLLISION_MASK); + MapGridSetMetatileIdAt(11 + MAP_OFFSET, 2 + MAP_OFFSET, METATILE_Shop_Laptop2_Normal | MAPGRID_COLLISION_MASK); } else { - MapGridSetMetatileIdAt(11 + MAP_OFFSET, 1 + MAP_OFFSET, METATILE_Shop_Laptop1_Flash | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(11 + MAP_OFFSET, 2 + MAP_OFFSET, METATILE_Shop_Laptop2_Flash | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(11 + MAP_OFFSET, 1 + MAP_OFFSET, METATILE_Shop_Laptop1_Flash | MAPGRID_COLLISION_MASK); + MapGridSetMetatileIdAt(11 + MAP_OFFSET, 2 + MAP_OFFSET, METATILE_Shop_Laptop2_Flash | MAPGRID_COLLISION_MASK); } DrawWholeMapView(); task->data[4] ^= 1; if ((++task->data[2]) == 5) - { DestroyTask(task->data[1]); - } } task->data[3]++; } void EndLotteryCornerComputerEffect(void) { - MapGridSetMetatileIdAt(11 + MAP_OFFSET, 1 + MAP_OFFSET, METATILE_Shop_Laptop1_Normal | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(11 + MAP_OFFSET, 2 + MAP_OFFSET, METATILE_Shop_Laptop2_Normal | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(11 + MAP_OFFSET, 1 + MAP_OFFSET, METATILE_Shop_Laptop1_Normal | MAPGRID_COLLISION_MASK); + MapGridSetMetatileIdAt(11 + MAP_OFFSET, 2 + MAP_OFFSET, METATILE_Shop_Laptop2_Normal | MAPGRID_COLLISION_MASK); DrawWholeMapView(); } @@ -1232,45 +1148,40 @@ void ResetTrickHouseNuggetFlag(void) bool8 CheckLeadMonCool(void) { if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_COOL) < 200) - { return FALSE; - } + return TRUE; } bool8 CheckLeadMonBeauty(void) { if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_BEAUTY) < 200) - { return FALSE; - } + return TRUE; } bool8 CheckLeadMonCute(void) { if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_CUTE) < 200) - { return FALSE; - } + return TRUE; } bool8 CheckLeadMonSmart(void) { if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SMART) < 200) - { return FALSE; - } + return TRUE; } bool8 CheckLeadMonTough(void) { if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_TOUGH) < 200) - { return FALSE; - } + return TRUE; } @@ -1335,15 +1246,40 @@ void BufferEReaderTrainerName(void) u16 GetSlotMachineId(void) { - static const u8 sSlotMachineRandomSeeds[] = {12, 2, 4, 5, 1, 8, 7, 11, 3, 10, 9, 6}; - static const u8 sSlotMachineIds[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5}; - static const u8 sSlotMachineServiceDayIds[] = {3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5}; + static const u8 sSlotMachineRandomSeeds[SLOT_MACHINE_COUNT] = {12, 2, 4, 5, 1, 8, 7, 11, 3, 10, 9, 6}; + static const u8 sSlotMachineIds[SLOT_MACHINE_COUNT] = { + SLOT_MACHINE_UNLUCKIEST, + SLOT_MACHINE_UNLUCKIER, + SLOT_MACHINE_UNLUCKIER, + SLOT_MACHINE_UNLUCKY, + SLOT_MACHINE_UNLUCKY, + SLOT_MACHINE_UNLUCKY, + SLOT_MACHINE_LUCKY, + SLOT_MACHINE_LUCKY, + SLOT_MACHINE_LUCKY, + SLOT_MACHINE_LUCKIER, + SLOT_MACHINE_LUCKIER, + SLOT_MACHINE_LUCKIEST + }; + static const u8 sSlotMachineServiceDayIds[SLOT_MACHINE_COUNT] = { + SLOT_MACHINE_LUCKY, + SLOT_MACHINE_LUCKY, + SLOT_MACHINE_LUCKY, + SLOT_MACHINE_LUCKY, + SLOT_MACHINE_LUCKY, + SLOT_MACHINE_LUCKY, + SLOT_MACHINE_LUCKIER, + SLOT_MACHINE_LUCKIER, + SLOT_MACHINE_LUCKIER, + SLOT_MACHINE_LUCKIER, + SLOT_MACHINE_LUCKIEST, + SLOT_MACHINE_LUCKIEST + }; u32 rnd = gSaveBlock1Ptr->dewfordTrends[0].trendiness + gSaveBlock1Ptr->dewfordTrends[0].rand + sSlotMachineRandomSeeds[gSpecialVar_0x8004]; - if (GetPriceReduction(POKENEWS_GAME_CORNER)) - { + if (IsPokeNewsActive(POKENEWS_GAME_CORNER)) return sSlotMachineServiceDayIds[rnd % SLOT_MACHINE_COUNT]; - } + return sSlotMachineIds[rnd % SLOT_MACHINE_COUNT]; } @@ -1353,9 +1289,8 @@ bool8 FoundAbandonedShipRoom1Key(void) u16 flag = FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_1_KEY; *specVar = flag; if (!FlagGet(flag)) - { return FALSE; - } + return TRUE; } @@ -1365,9 +1300,8 @@ bool8 FoundAbandonedShipRoom2Key(void) u16 flag = FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_2_KEY; *specVar = flag; if (!FlagGet(flag)) - { return FALSE; - } + return TRUE; } @@ -1377,9 +1311,8 @@ bool8 FoundAbandonedShipRoom4Key(void) u16 flag = FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_4_KEY; *specVar = flag; if (!FlagGet(flag)) - { return FALSE; - } + return TRUE; } @@ -1389,9 +1322,8 @@ bool8 FoundAbandonedShipRoom6Key(void) u16 flag = FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_6_KEY; *specVar = flag; if (!FlagGet(flag)) - { return FALSE; - } + return TRUE; } @@ -1410,17 +1342,14 @@ void GiveLeadMonEffortRibbon(void) leadMon = &gPlayerParty[GetLeadMonIndex()]; SetMonData(leadMon, MON_DATA_EFFORT_RIBBON, &ribbonSet); if (GetRibbonCount(leadMon) > NUM_CUTIES_RIBBONS) - { TryPutSpotTheCutiesOnAir(leadMon, MON_DATA_EFFORT_RIBBON); - } } bool8 Special_AreLeadMonEVsMaxedOut(void) { if (GetMonEVCount(&gPlayerParty[GetLeadMonIndex()]) >= MAX_TOTAL_EVS) - { return TRUE; - } + return FALSE; } @@ -1471,9 +1400,7 @@ bool8 IsStarterInParty(void) for (i = 0; i < partyCount; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) == starter) - { return TRUE; - } } return FALSE; } @@ -1486,9 +1413,8 @@ bool8 ScriptCheckFreePokemonStorageSpace(void) bool8 IsPokerusInParty(void) { if (!CheckPartyPokerus(gPlayerParty, 0x3f)) - { return FALSE; - } + return TRUE; } @@ -1550,17 +1476,13 @@ bool8 FoundBlackGlasses(void) void SetRoute119Weather(void) { if (IsMapTypeOutdoors(GetLastUsedWarpMapType()) != TRUE) - { - SetSav1Weather(WEATHER_ROUTE119_CYCLE); - } + SetSavedWeather(WEATHER_ROUTE119_CYCLE); } void SetRoute123Weather(void) { if (IsMapTypeOutdoors(GetLastUsedWarpMapType()) != TRUE) - { - SetSav1Weather(WEATHER_ROUTE123_CYCLE); - } + SetSavedWeather(WEATHER_ROUTE123_CYCLE); } u8 GetLeadMonIndex(void) @@ -1570,9 +1492,7 @@ u8 GetLeadMonIndex(void) for (i = 0; i < partyCount; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != SPECIES_EGG && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != 0) - { return i; - } } return 0; } @@ -1592,13 +1512,10 @@ u16 GetDaysUntilPacifidlogTMAvailable(void) { u16 tmReceivedDay = VarGet(VAR_PACIFIDLOG_TM_RECEIVED_DAY); if (gLocalTime.days - tmReceivedDay >= 7) - { return 0; - } else if (gLocalTime.days < 0) - { return 8; - } + return 7 - (gLocalTime.days - tmReceivedDay); } @@ -1659,18 +1576,18 @@ u16 GetMysteryGiftCardStat(void) { switch (gSpecialVar_Result) { - case GET_NUM_STAMPS: - return MysteryGift_GetCardStat(CARD_STAT_NUM_STAMPS); - case GET_MAX_STAMPS: - return MysteryGift_GetCardStat(CARD_STAT_MAX_STAMPS); - case GET_CARD_BATTLES_WON: - return MysteryGift_GetCardStat(CARD_STAT_BATTLES_WON); - case GET_CARD_BATTLES_LOST: // Never occurs - return MysteryGift_GetCardStat(CARD_STAT_BATTLES_LOST); - case GET_CARD_NUM_TRADES: // Never occurs - return MysteryGift_GetCardStat(CARD_STAT_NUM_TRADES); - default: - return 0; + case GET_NUM_STAMPS: + return MysteryGift_GetCardStat(CARD_STAT_NUM_STAMPS); + case GET_MAX_STAMPS: + return MysteryGift_GetCardStat(CARD_STAT_MAX_STAMPS); + case GET_CARD_BATTLES_WON: + return MysteryGift_GetCardStat(CARD_STAT_BATTLES_WON); + case GET_CARD_BATTLES_LOST: // Never occurs + return MysteryGift_GetCardStat(CARD_STAT_BATTLES_LOST); + case GET_CARD_NUM_TRADES: // Never occurs + return MysteryGift_GetCardStat(CARD_STAT_NUM_TRADES); + default: + return 0; } } @@ -1788,27 +1705,27 @@ void SetDeptStoreFloor(void) u8 deptStoreFloor; switch (gSaveBlock1Ptr->dynamicWarp.mapNum) { - case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_1F): - deptStoreFloor = DEPT_STORE_FLOORNUM_1F; - break; - case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_2F): - deptStoreFloor = DEPT_STORE_FLOORNUM_2F; - break; - case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_3F): - deptStoreFloor = DEPT_STORE_FLOORNUM_3F; - break; - case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_4F): - deptStoreFloor = DEPT_STORE_FLOORNUM_4F; - break; - case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_5F): - deptStoreFloor = DEPT_STORE_FLOORNUM_5F; - break; - case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP): - deptStoreFloor = DEPT_STORE_FLOORNUM_ROOFTOP; - break; - default: - deptStoreFloor = DEPT_STORE_FLOORNUM_1F; - break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_1F): + deptStoreFloor = DEPT_STORE_FLOORNUM_1F; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_2F): + deptStoreFloor = DEPT_STORE_FLOORNUM_2F; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_3F): + deptStoreFloor = DEPT_STORE_FLOORNUM_3F; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_4F): + deptStoreFloor = DEPT_STORE_FLOORNUM_4F; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_5F): + deptStoreFloor = DEPT_STORE_FLOORNUM_5F; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP): + deptStoreFloor = DEPT_STORE_FLOORNUM_ROOFTOP; + break; + default: + deptStoreFloor = DEPT_STORE_FLOORNUM_1F; + break; } VarSet(VAR_DEPT_STORE_FLOOR, deptStoreFloor); } @@ -1822,26 +1739,26 @@ u16 GetDeptStoreDefaultFloorChoice(void) { switch (gSaveBlock1Ptr->dynamicWarp.mapNum) { - case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_5F): - sLilycoveDeptStore_NeverRead = 0; - sLilycoveDeptStore_DefaultFloorChoice = 0; - break; - case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_4F): - sLilycoveDeptStore_NeverRead = 0; - sLilycoveDeptStore_DefaultFloorChoice = 1; - break; - case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_3F): - sLilycoveDeptStore_NeverRead = 0; - sLilycoveDeptStore_DefaultFloorChoice = 2; - break; - case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_2F): - sLilycoveDeptStore_NeverRead = 0; - sLilycoveDeptStore_DefaultFloorChoice = 3; - break; - case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_1F): - sLilycoveDeptStore_NeverRead = 0; - sLilycoveDeptStore_DefaultFloorChoice = 4; - break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_5F): + sLilycoveDeptStore_NeverRead = 0; + sLilycoveDeptStore_DefaultFloorChoice = 0; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_4F): + sLilycoveDeptStore_NeverRead = 0; + sLilycoveDeptStore_DefaultFloorChoice = 1; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_3F): + sLilycoveDeptStore_NeverRead = 0; + sLilycoveDeptStore_DefaultFloorChoice = 2; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_2F): + sLilycoveDeptStore_NeverRead = 0; + sLilycoveDeptStore_DefaultFloorChoice = 3; + break; + case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_1F): + sLilycoveDeptStore_NeverRead = 0; + sLilycoveDeptStore_DefaultFloorChoice = 4; + break; } } @@ -1953,22 +1870,24 @@ static void Task_MoveElevatorWindowLights(u8 taskId) if (data[2] == FALSE) { for (y = 0; y < 3; y++) + { for (x = 0; x < 3; x++) - MapGridSetMetatileIdAt(x + MAP_OFFSET + 1, y + MAP_OFFSET, sElevatorWindowTiles_Ascending[y][data[0] % 3] | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x + MAP_OFFSET + 1, y + MAP_OFFSET, sElevatorWindowTiles_Ascending[y][data[0] % 3] | MAPGRID_COLLISION_MASK); + } } // descending else { for (y = 0; y < 3; y++) + { for (x = 0; x < 3; x++) - MapGridSetMetatileIdAt(x + MAP_OFFSET + 1, y + MAP_OFFSET, sElevatorWindowTiles_Descending[y][data[0] % 3] | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x + MAP_OFFSET + 1, y + MAP_OFFSET, sElevatorWindowTiles_Descending[y][data[0] % 3] | MAPGRID_COLLISION_MASK); + } } DrawWholeMapView(); data[1] = 0; if (data[0] == data[3]) - { DestroyTask(taskId); - } } data[1]++; } @@ -1988,9 +1907,7 @@ void BufferVarsForIVRater(void) gSpecialVar_0x8005 = 0; for (i = 0; i < NUM_STATS; i++) - { gSpecialVar_0x8005 += ivStorage[i]; - } gSpecialVar_0x8006 = 0; gSpecialVar_0x8007 = ivStorage[STAT_HP]; @@ -2054,9 +1971,8 @@ bool8 UsedPokemonCenterWarp(void) bool32 PlayerNotAtTrainerHillEntrance(void) { if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(TRAINER_HILL_ENTRANCE) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_HILL_ENTRANCE)) - { return FALSE; - } + return TRUE; } @@ -2153,86 +2069,58 @@ void ShowFrontierManiacMessage(void) switch (facility) { - case FRONTIER_MANIAC_TOWER_SINGLES: - case FRONTIER_MANIAC_TOWER_DOUBLES: - case FRONTIER_MANIAC_TOWER_MULTIS: - case FRONTIER_MANIAC_TOWER_LINK: - if (gSaveBlock2Ptr->frontier.towerWinStreaks[facility][FRONTIER_LVL_50] - >= gSaveBlock2Ptr->frontier.towerWinStreaks[facility][FRONTIER_LVL_OPEN]) - { - winStreak = gSaveBlock2Ptr->frontier.towerWinStreaks[facility][FRONTIER_LVL_50]; - } - else - { - winStreak = gSaveBlock2Ptr->frontier.towerWinStreaks[facility][FRONTIER_LVL_OPEN]; - } - break; - case FRONTIER_MANIAC_DOME: - if (gSaveBlock2Ptr->frontier.domeWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_50] - >= gSaveBlock2Ptr->frontier.domeWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_OPEN]) - { - winStreak = gSaveBlock2Ptr->frontier.domeWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_50]; - } - else - { - winStreak = gSaveBlock2Ptr->frontier.domeWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_OPEN]; - } - break; - case FRONTIER_MANIAC_FACTORY: - if (gSaveBlock2Ptr->frontier.factoryWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_50] - >= gSaveBlock2Ptr->frontier.factoryWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_OPEN]) - { - winStreak = gSaveBlock2Ptr->frontier.factoryWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_50]; - } - else - { - winStreak = gSaveBlock2Ptr->frontier.factoryWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_OPEN]; - } - break; - case FRONTIER_MANIAC_PALACE: - if (gSaveBlock2Ptr->frontier.palaceWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_50] - >= gSaveBlock2Ptr->frontier.palaceWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_OPEN]) - { - winStreak = gSaveBlock2Ptr->frontier.palaceWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_50]; - } - else - { - winStreak = gSaveBlock2Ptr->frontier.palaceWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_OPEN]; - } - break; - case FRONTIER_MANIAC_ARENA: - if (gSaveBlock2Ptr->frontier.arenaWinStreaks[FRONTIER_LVL_50] - >= gSaveBlock2Ptr->frontier.arenaWinStreaks[FRONTIER_LVL_OPEN]) - { - winStreak = gSaveBlock2Ptr->frontier.arenaWinStreaks[FRONTIER_LVL_50]; - } - else - { - winStreak = gSaveBlock2Ptr->frontier.arenaWinStreaks[FRONTIER_LVL_OPEN]; - } - break; - case FRONTIER_MANIAC_PIKE: - if (gSaveBlock2Ptr->frontier.pikeWinStreaks[FRONTIER_LVL_50] - >= gSaveBlock2Ptr->frontier.pikeWinStreaks[FRONTIER_LVL_OPEN]) - { - winStreak = gSaveBlock2Ptr->frontier.pikeWinStreaks[FRONTIER_LVL_50]; - } - else - { - winStreak = gSaveBlock2Ptr->frontier.pikeWinStreaks[FRONTIER_LVL_OPEN]; - } - break; - case FRONTIER_MANIAC_PYRAMID: - if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[FRONTIER_LVL_50] - >= gSaveBlock2Ptr->frontier.pyramidWinStreaks[FRONTIER_LVL_OPEN]) - { - winStreak = gSaveBlock2Ptr->frontier.pyramidWinStreaks[FRONTIER_LVL_50]; - } - else - { - winStreak = gSaveBlock2Ptr->frontier.pyramidWinStreaks[FRONTIER_LVL_OPEN]; - } - break; + case FRONTIER_MANIAC_TOWER_SINGLES: + case FRONTIER_MANIAC_TOWER_DOUBLES: + case FRONTIER_MANIAC_TOWER_MULTIS: + case FRONTIER_MANIAC_TOWER_LINK: + if (gSaveBlock2Ptr->frontier.towerWinStreaks[facility][FRONTIER_LVL_50] + >= gSaveBlock2Ptr->frontier.towerWinStreaks[facility][FRONTIER_LVL_OPEN]) + winStreak = gSaveBlock2Ptr->frontier.towerWinStreaks[facility][FRONTIER_LVL_50]; + else + winStreak = gSaveBlock2Ptr->frontier.towerWinStreaks[facility][FRONTIER_LVL_OPEN]; + break; + case FRONTIER_MANIAC_DOME: + if (gSaveBlock2Ptr->frontier.domeWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_50] + >= gSaveBlock2Ptr->frontier.domeWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_OPEN]) + winStreak = gSaveBlock2Ptr->frontier.domeWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_50]; + else + winStreak = gSaveBlock2Ptr->frontier.domeWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_OPEN]; + break; + case FRONTIER_MANIAC_FACTORY: + if (gSaveBlock2Ptr->frontier.factoryWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_50] + >= gSaveBlock2Ptr->frontier.factoryWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_OPEN]) + winStreak = gSaveBlock2Ptr->frontier.factoryWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_50]; + else + winStreak = gSaveBlock2Ptr->frontier.factoryWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_OPEN]; + break; + case FRONTIER_MANIAC_PALACE: + if (gSaveBlock2Ptr->frontier.palaceWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_50] + >= gSaveBlock2Ptr->frontier.palaceWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_OPEN]) + winStreak = gSaveBlock2Ptr->frontier.palaceWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_50]; + else + winStreak = gSaveBlock2Ptr->frontier.palaceWinStreaks[FRONTIER_MODE_SINGLES][FRONTIER_LVL_OPEN]; + break; + case FRONTIER_MANIAC_ARENA: + if (gSaveBlock2Ptr->frontier.arenaWinStreaks[FRONTIER_LVL_50] + >= gSaveBlock2Ptr->frontier.arenaWinStreaks[FRONTIER_LVL_OPEN]) + winStreak = gSaveBlock2Ptr->frontier.arenaWinStreaks[FRONTIER_LVL_50]; + else + winStreak = gSaveBlock2Ptr->frontier.arenaWinStreaks[FRONTIER_LVL_OPEN]; + break; + case FRONTIER_MANIAC_PIKE: + if (gSaveBlock2Ptr->frontier.pikeWinStreaks[FRONTIER_LVL_50] + >= gSaveBlock2Ptr->frontier.pikeWinStreaks[FRONTIER_LVL_OPEN]) + winStreak = gSaveBlock2Ptr->frontier.pikeWinStreaks[FRONTIER_LVL_50]; + else + winStreak = gSaveBlock2Ptr->frontier.pikeWinStreaks[FRONTIER_LVL_OPEN]; + break; + case FRONTIER_MANIAC_PYRAMID: + if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[FRONTIER_LVL_50] + >= gSaveBlock2Ptr->frontier.pyramidWinStreaks[FRONTIER_LVL_OPEN]) + winStreak = gSaveBlock2Ptr->frontier.pyramidWinStreaks[FRONTIER_LVL_50]; + else + winStreak = gSaveBlock2Ptr->frontier.pyramidWinStreaks[FRONTIER_LVL_OPEN]; + break; } for (i = 0; i < FRONTIER_MANIAC_MESSAGE_COUNT - 1 && sFrontierManiacStreakThresholds[facility][i] < winStreak; i++); @@ -2297,131 +2185,131 @@ void ShowScrollableMultichoice(void) switch (gSpecialVar_0x8004) { - case SCROLL_MULTI_NONE: - task->tMaxItemsOnScreen = 1; - task->tNumItems = 1; - task->tLeft = 1; - task->tTop = 1; - task->tWidth = 1; - task->tHeight = 1; - task->tKeepOpenAfterSelect = FALSE; - task->tTaskId = taskId; - break; - case SCROLL_MULTI_GLASS_WORKSHOP_VENDOR: - task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN - 1; - task->tNumItems = 8; - task->tLeft = 1; - task->tTop = 1; - task->tWidth = 9; - task->tHeight = 10; - task->tKeepOpenAfterSelect = FALSE; - task->tTaskId = taskId; - break; - case SCROLL_MULTI_POKEMON_FAN_CLUB_RATER: - task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; - task->tNumItems = 12; - task->tLeft = 1; - task->tTop = 1; - task->tWidth = 7; - task->tHeight = 12; - task->tKeepOpenAfterSelect = FALSE; - task->tTaskId = taskId; - break; - case SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_1: - task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; - task->tNumItems = 11; - task->tLeft = 14; - task->tTop = 1; - task->tWidth = 15; - task->tHeight = 12; - task->tKeepOpenAfterSelect = FALSE; - task->tTaskId = taskId; - break; - case SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_2: - task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; - task->tNumItems = 6; - task->tLeft = 14; - task->tTop = 1; - task->tWidth = 15; - task->tHeight = 12; - task->tKeepOpenAfterSelect = FALSE; - task->tTaskId = taskId; - break; - case SCROLL_MULTI_BF_EXCHANGE_CORNER_VITAMIN_VENDOR: - task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; - task->tNumItems = 7; - task->tLeft = 14; - task->tTop = 1; - task->tWidth = 15; - task->tHeight = 12; - task->tKeepOpenAfterSelect = FALSE; - task->tTaskId = taskId; - break; - case SCROLL_MULTI_BF_EXCHANGE_CORNER_HOLD_ITEM_VENDOR: - task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; - task->tNumItems = 10; - task->tLeft = 14; - task->tTop = 1; - task->tWidth = 15; - task->tHeight = 12; - task->tKeepOpenAfterSelect = FALSE; - task->tTaskId = taskId; - break; - case SCROLL_MULTI_BERRY_POWDER_VENDOR: - task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; - task->tNumItems = 12; - task->tLeft = 15; - task->tTop = 1; - task->tWidth = 14; - task->tHeight = 12; - task->tKeepOpenAfterSelect = FALSE; - task->tTaskId = taskId; - break; - case SCROLL_MULTI_BF_RECEPTIONIST: - task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; - task->tNumItems = 10; - task->tLeft = 17; - task->tTop = 1; - task->tWidth = 11; - task->tHeight = 12; - task->tKeepOpenAfterSelect = FALSE; - task->tTaskId = taskId; - break; - case SCROLL_MULTI_BF_MOVE_TUTOR_1: - case SCROLL_MULTI_BF_MOVE_TUTOR_2: - task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; - task->tNumItems = 11; - task->tLeft = 15; - task->tTop = 1; - task->tWidth = 14; - task->tHeight = 12; - task->tKeepOpenAfterSelect = FALSE; - task->tTaskId = taskId; - break; - case SCROLL_MULTI_SS_TIDAL_DESTINATION: - task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; - task->tNumItems = 7; - task->tLeft = 19; - task->tTop = 1; - task->tWidth = 10; - task->tHeight = 12; - task->tKeepOpenAfterSelect = FALSE; - task->tTaskId = taskId; - break; - case SCROLL_MULTI_BATTLE_TENT_RULES: - task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; - task->tNumItems = 7; - task->tLeft = 17; - task->tTop = 1; - task->tWidth = 12; - task->tHeight = 12; - task->tKeepOpenAfterSelect = FALSE; - task->tTaskId = taskId; - break; - default: - gSpecialVar_Result = MULTI_B_PRESSED; - DestroyTask(taskId); - break; + case SCROLL_MULTI_NONE: + task->tMaxItemsOnScreen = 1; + task->tNumItems = 1; + task->tLeft = 1; + task->tTop = 1; + task->tWidth = 1; + task->tHeight = 1; + task->tKeepOpenAfterSelect = FALSE; + task->tTaskId = taskId; + break; + case SCROLL_MULTI_GLASS_WORKSHOP_VENDOR: + task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN - 1; + task->tNumItems = 8; + task->tLeft = 1; + task->tTop = 1; + task->tWidth = 9; + task->tHeight = 10; + task->tKeepOpenAfterSelect = FALSE; + task->tTaskId = taskId; + break; + case SCROLL_MULTI_POKEMON_FAN_CLUB_RATER: + task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; + task->tNumItems = 12; + task->tLeft = 1; + task->tTop = 1; + task->tWidth = 7; + task->tHeight = 12; + task->tKeepOpenAfterSelect = FALSE; + task->tTaskId = taskId; + break; + case SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_1: + task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; + task->tNumItems = 11; + task->tLeft = 14; + task->tTop = 1; + task->tWidth = 15; + task->tHeight = 12; + task->tKeepOpenAfterSelect = FALSE; + task->tTaskId = taskId; + break; + case SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_2: + task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; + task->tNumItems = 6; + task->tLeft = 14; + task->tTop = 1; + task->tWidth = 15; + task->tHeight = 12; + task->tKeepOpenAfterSelect = FALSE; + task->tTaskId = taskId; + break; + case SCROLL_MULTI_BF_EXCHANGE_CORNER_VITAMIN_VENDOR: + task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; + task->tNumItems = 7; + task->tLeft = 14; + task->tTop = 1; + task->tWidth = 15; + task->tHeight = 12; + task->tKeepOpenAfterSelect = FALSE; + task->tTaskId = taskId; + break; + case SCROLL_MULTI_BF_EXCHANGE_CORNER_HOLD_ITEM_VENDOR: + task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; + task->tNumItems = 10; + task->tLeft = 14; + task->tTop = 1; + task->tWidth = 15; + task->tHeight = 12; + task->tKeepOpenAfterSelect = FALSE; + task->tTaskId = taskId; + break; + case SCROLL_MULTI_BERRY_POWDER_VENDOR: + task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; + task->tNumItems = 12; + task->tLeft = 15; + task->tTop = 1; + task->tWidth = 14; + task->tHeight = 12; + task->tKeepOpenAfterSelect = FALSE; + task->tTaskId = taskId; + break; + case SCROLL_MULTI_BF_RECEPTIONIST: + task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; + task->tNumItems = 10; + task->tLeft = 17; + task->tTop = 1; + task->tWidth = 11; + task->tHeight = 12; + task->tKeepOpenAfterSelect = FALSE; + task->tTaskId = taskId; + break; + case SCROLL_MULTI_BF_MOVE_TUTOR_1: + case SCROLL_MULTI_BF_MOVE_TUTOR_2: + task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; + task->tNumItems = 11; + task->tLeft = 15; + task->tTop = 1; + task->tWidth = 14; + task->tHeight = 12; + task->tKeepOpenAfterSelect = FALSE; + task->tTaskId = taskId; + break; + case SCROLL_MULTI_SS_TIDAL_DESTINATION: + task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; + task->tNumItems = 7; + task->tLeft = 19; + task->tTop = 1; + task->tWidth = 10; + task->tHeight = 12; + task->tKeepOpenAfterSelect = FALSE; + task->tTaskId = taskId; + break; + case SCROLL_MULTI_BATTLE_TENT_RULES: + task->tMaxItemsOnScreen = MAX_SCROLL_MULTI_ON_SCREEN; + task->tNumItems = 7; + task->tLeft = 17; + task->tTop = 1; + task->tWidth = 12; + task->tHeight = 12; + task->tKeepOpenAfterSelect = FALSE; + task->tTaskId = taskId; + break; + default: + gSpecialVar_Result = MULTI_B_PRESSED; + DestroyTask(taskId); + break; } } @@ -2611,13 +2499,9 @@ static void Task_ShowScrollableMultichoice(u8 taskId) { int adjustedLeft = MAX_MULTICHOICE_WIDTH + 1 - task->tWidth; if (adjustedLeft < 0) - { task->tLeft = 0; - } else - { task->tLeft = adjustedLeft; - } } template = CreateWindowTemplate(0, task->tLeft, task->tTop, task->tWidth, task->tHeight, 0xF, 0x64); @@ -2697,13 +2581,14 @@ static void ScrollableMultichoice_ProcessInput(u8 taskId) { CloseScrollableMultichoice(taskId); } - // if selected option was the last one (Exit) else if (input == task->tNumItems - 1) { + // Selected option was the last one (Exit) CloseScrollableMultichoice(taskId); } - else // Handle selection while keeping the menu open + else { + // Handle selection while keeping the menu open ScrollableMultichoice_RemoveScrollArrows(taskId); task->func = Task_ScrollableMultichoice_WaitReturnToList; EnableBothScriptContexts(); @@ -2812,13 +2697,9 @@ void SetBattleTowerLinkPlayerGfx(void) for (i = 0; i < 2; i++) { if (gLinkPlayers[i].gender == MALE) - { VarSet(VAR_OBJ_GFX_ID_F - i, OBJ_EVENT_GFX_BRENDAN_NORMAL); - } else - { VarSet(VAR_OBJ_GFX_ID_F - i, OBJ_EVENT_GFX_RIVAL_MAY_NORMAL); - } } } @@ -2855,9 +2736,7 @@ void ShowNatureGirlMessage(void) u8 nature; if (gSpecialVar_0x8004 >= PARTY_SIZE) - { gSpecialVar_0x8004 = 0; - } nature = GetNature(&gPlayerParty[gSpecialVar_0x8004]); ShowFieldMessage(sNatureGirlMessages[nature]); @@ -2941,13 +2820,9 @@ void FrontierGamblerSetWonOrLost(bool8 won) if (sFrontierChallenges[challenge] == FRONTIER_CHALLENGE(frontierFacilityId, battleMode)) { if (won) - { VarSet(VAR_FRONTIER_GAMBLER_STATE, FRONTIER_GAMBLER_WON); - } else - { VarSet(VAR_FRONTIER_GAMBLER_STATE, FRONTIER_GAMBLER_LOST); - } } } } @@ -2963,7 +2838,8 @@ void UpdateBattlePointsWindow(void) void ShowBattlePointsWindow(void) { - static const struct WindowTemplate sBattlePoints_WindowTemplate = { + static const struct WindowTemplate sBattlePoints_WindowTemplate = + { .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, @@ -3008,7 +2884,8 @@ u16 GetFrontierBattlePoints(void) void ShowFrontierExchangeCornerItemIconWindow(void) { - static const struct WindowTemplate sFrontierExchangeCorner_ItemIconWindowTemplate = { + static const struct WindowTemplate sFrontierExchangeCorner_ItemIconWindowTemplate = + { .bg = 0, .tilemapLeft = 2, .tilemapTop = 9, @@ -3029,6 +2906,8 @@ void CloseFrontierExchangeCornerItemIconWindow(void) RemoveWindow(sFrontierExchangeCorner_ItemIconWindowId); } +#define TAG_ITEM_ICON 5500 + static void FillFrontierExchangeCornerWindowAndItemIcon(u16 menu, u16 selection) { #include "data/battle_frontier/battle_frontier_exchange_corner.h" @@ -3038,49 +2917,49 @@ static void FillFrontierExchangeCornerWindowAndItemIcon(u16 menu, u16 selection) FillWindowPixelRect(0, PIXEL_FILL(1), 0, 0, 216, 32); switch (menu) { - case SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_1: - AddTextPrinterParameterized2(0, FONT_NORMAL, sFrontierExchangeCorner_Decor1Descriptions[selection], 0, NULL, 2, 1, 3); - if (sFrontierExchangeCorner_Decor1[selection] == 0xFFFF) - { - ShowFrontierExchangeCornerItemIcon(sFrontierExchangeCorner_Decor1[selection]); - } - else - { - FreeSpriteTilesByTag(5500); - FreeSpritePaletteByTag(5500); - sScrollableMultichoice_ItemSpriteId = AddDecorationIconObject(sFrontierExchangeCorner_Decor1[selection], 33, 88, 0, 5500, 5500); - } - break; - case SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_2: - AddTextPrinterParameterized2(0, FONT_NORMAL, sFrontierExchangeCorner_Decor2Descriptions[selection], 0, NULL, 2, 1, 3); - if (sFrontierExchangeCorner_Decor2[selection] == 0xFFFF) - { - ShowFrontierExchangeCornerItemIcon(sFrontierExchangeCorner_Decor2[selection]); - } - else - { - FreeSpriteTilesByTag(5500); - FreeSpritePaletteByTag(5500); - sScrollableMultichoice_ItemSpriteId = AddDecorationIconObject(sFrontierExchangeCorner_Decor2[selection], 33, 88, 0, 5500, 5500); - } - break; - case SCROLL_MULTI_BF_EXCHANGE_CORNER_VITAMIN_VENDOR: - AddTextPrinterParameterized2(0, FONT_NORMAL, sFrontierExchangeCorner_VitaminsDescriptions[selection], 0, NULL, 2, 1, 3); - ShowFrontierExchangeCornerItemIcon(sFrontierExchangeCorner_Vitamins[selection]); - break; - case SCROLL_MULTI_BF_EXCHANGE_CORNER_HOLD_ITEM_VENDOR: - AddTextPrinterParameterized2(0, FONT_NORMAL, sFrontierExchangeCorner_HoldItemsDescriptions[selection], 0, NULL, 2, 1, 3); - ShowFrontierExchangeCornerItemIcon(sFrontierExchangeCorner_HoldItems[selection]); - break; + case SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_1: + AddTextPrinterParameterized2(0, FONT_NORMAL, sFrontierExchangeCorner_Decor1Descriptions[selection], 0, NULL, 2, 1, 3); + if (sFrontierExchangeCorner_Decor1[selection] == 0xFFFF) + { + ShowFrontierExchangeCornerItemIcon(sFrontierExchangeCorner_Decor1[selection]); + } + else + { + FreeSpriteTilesByTag(TAG_ITEM_ICON); + FreeSpritePaletteByTag(TAG_ITEM_ICON); + sScrollableMultichoice_ItemSpriteId = AddDecorationIconObject(sFrontierExchangeCorner_Decor1[selection], 33, 88, 0, TAG_ITEM_ICON, TAG_ITEM_ICON); + } + break; + case SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_2: + AddTextPrinterParameterized2(0, FONT_NORMAL, sFrontierExchangeCorner_Decor2Descriptions[selection], 0, NULL, 2, 1, 3); + if (sFrontierExchangeCorner_Decor2[selection] == 0xFFFF) + { + ShowFrontierExchangeCornerItemIcon(sFrontierExchangeCorner_Decor2[selection]); + } + else + { + FreeSpriteTilesByTag(TAG_ITEM_ICON); + FreeSpritePaletteByTag(TAG_ITEM_ICON); + sScrollableMultichoice_ItemSpriteId = AddDecorationIconObject(sFrontierExchangeCorner_Decor2[selection], 33, 88, 0, TAG_ITEM_ICON, TAG_ITEM_ICON); + } + break; + case SCROLL_MULTI_BF_EXCHANGE_CORNER_VITAMIN_VENDOR: + AddTextPrinterParameterized2(0, FONT_NORMAL, sFrontierExchangeCorner_VitaminsDescriptions[selection], 0, NULL, 2, 1, 3); + ShowFrontierExchangeCornerItemIcon(sFrontierExchangeCorner_Vitamins[selection]); + break; + case SCROLL_MULTI_BF_EXCHANGE_CORNER_HOLD_ITEM_VENDOR: + AddTextPrinterParameterized2(0, FONT_NORMAL, sFrontierExchangeCorner_HoldItemsDescriptions[selection], 0, NULL, 2, 1, 3); + ShowFrontierExchangeCornerItemIcon(sFrontierExchangeCorner_HoldItems[selection]); + break; } } } static void ShowFrontierExchangeCornerItemIcon(u16 item) { - FreeSpriteTilesByTag(5500); - FreeSpritePaletteByTag(5500); - sScrollableMultichoice_ItemSpriteId = AddItemIconSprite(5500, 5500, item); + FreeSpriteTilesByTag(TAG_ITEM_ICON); + FreeSpritePaletteByTag(TAG_ITEM_ICON); + sScrollableMultichoice_ItemSpriteId = AddItemIconSprite(TAG_ITEM_ICON, TAG_ITEM_ICON, item); if (sScrollableMultichoice_ItemSpriteId != MAX_SPRITES) { @@ -3096,12 +2975,12 @@ static void HideFrontierExchangeCornerItemIcon(u16 menu, u16 unused) { switch (menu) { - case SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_1: - case SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_2: - case SCROLL_MULTI_BF_EXCHANGE_CORNER_VITAMIN_VENDOR: - case SCROLL_MULTI_BF_EXCHANGE_CORNER_HOLD_ITEM_VENDOR: - DestroySpriteAndFreeResources(&gSprites[sScrollableMultichoice_ItemSpriteId]); - break; + case SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_1: + case SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_2: + case SCROLL_MULTI_BF_EXCHANGE_CORNER_VITAMIN_VENDOR: + case SCROLL_MULTI_BF_EXCHANGE_CORNER_HOLD_ITEM_VENDOR: + DestroySpriteAndFreeResources(&gSprites[sScrollableMultichoice_ItemSpriteId]); + break; } sScrollableMultichoice_ItemSpriteId = MAX_SPRITES; } @@ -3138,13 +3017,9 @@ static const u16 sBattleFrontier_TutorMoves2[] = void BufferBattleFrontierTutorMoveName(void) { if (gSpecialVar_0x8005 != 0) - { StringCopy(gStringVar1, gMoveNames[sBattleFrontier_TutorMoves2[gSpecialVar_0x8004]]); - } else - { StringCopy(gStringVar1, gMoveNames[sBattleFrontier_TutorMoves1[gSpecialVar_0x8004]]); - } } static void ShowBattleFrontierTutorWindow(u8 menu, u16 selection) @@ -3207,13 +3082,9 @@ static void ShowBattleFrontierTutorMoveDescription(u8 menu, u16 selection) { FillWindowPixelRect(sTutorMoveAndElevatorWindowId, PIXEL_FILL(1), 0, 0, 96, 48); if (menu == SCROLL_MULTI_BF_MOVE_TUTOR_2) - { AddTextPrinterParameterized(sTutorMoveAndElevatorWindowId, FONT_NORMAL, sBattleFrontier_TutorMoveDescriptions2[selection], 0, 1, 0, NULL); - } else - { AddTextPrinterParameterized(sTutorMoveAndElevatorWindowId, FONT_NORMAL, sBattleFrontier_TutorMoveDescriptions1[selection], 0, 1, 0, NULL); - } } } @@ -3323,17 +3194,17 @@ void DoDeoxysRockInteraction(void) } static const u16 sDeoxysRockPalettes[][16] = { - INCBIN_U16("graphics/misc/deoxys1.gbapal"), - INCBIN_U16("graphics/misc/deoxys2.gbapal"), - INCBIN_U16("graphics/misc/deoxys3.gbapal"), - INCBIN_U16("graphics/misc/deoxys4.gbapal"), - INCBIN_U16("graphics/misc/deoxys5.gbapal"), - INCBIN_U16("graphics/misc/deoxys6.gbapal"), - INCBIN_U16("graphics/misc/deoxys7.gbapal"), - INCBIN_U16("graphics/misc/deoxys8.gbapal"), - INCBIN_U16("graphics/misc/deoxys9.gbapal"), - INCBIN_U16("graphics/misc/deoxys10.gbapal"), - INCBIN_U16("graphics/misc/deoxys11.gbapal"), + INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_1.gbapal"), + INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_2.gbapal"), + INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_3.gbapal"), + INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_4.gbapal"), + INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_5.gbapal"), + INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_6.gbapal"), + INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_7.gbapal"), + INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_8.gbapal"), + INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_9.gbapal"), + INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_10.gbapal"), + INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_11.gbapal"), }; static const u8 sDeoxysRockCoords[][2] = { @@ -3416,7 +3287,7 @@ static void ChangeDeoxysRockLevel(u8 rockLevel) gFieldEffectArguments[5] = 5; FieldEffectStart(FLDEFF_MOVE_DEOXYS_ROCK); - Overworld_SetObjEventTemplateCoords(1, sDeoxysRockCoords[rockLevel][0], sDeoxysRockCoords[rockLevel][1]); + SetObjEventTemplateCoords(LOCALID_BIRTH_ISLAND_EXTERIOR_ROCK, sDeoxysRockCoords[rockLevel][0], sDeoxysRockCoords[rockLevel][1]); } static void WaitForDeoxysRockMovement(u8 taskId) @@ -3435,13 +3306,9 @@ void IncrementBirthIslandRockStepCount(void) { var++; if (var > 99) - { VarSet(VAR_DEOXYS_ROCK_STEP_COUNT, 0); - } else - { VarSet(VAR_DEOXYS_ROCK_STEP_COUNT, var); - } } } @@ -3487,18 +3354,14 @@ bool8 IsDestinationBoxFull(void) if (GetBoxMonData(GetBoxedMonPtr(box, i), MON_DATA_SPECIES, 0) == SPECIES_NONE) { if (GetPCBoxToSendMon() != box) - { FlagClear(FLAG_SHOWN_BOX_WAS_FULL_MESSAGE); - } VarSet(VAR_PC_BOX_TO_SEND_MON, box); return ShouldShowBoxWasFullMessage(); } } if (++box == TOTAL_BOXES_COUNT) - { box = 0; - } } while (box != StorageGetCurrentBox()); return FALSE; } @@ -3564,7 +3427,8 @@ bool32 GetAbnormalWeatherMapNameAndType(void) bool8 AbnormalWeatherHasExpired(void) { // Duplicate array. - static const u8 sAbnormalWeatherMapNumbers[] = { + static const u8 sAbnormalWeatherMapNumbers[] = + { MAP_NUM(ROUTE114), MAP_NUM(ROUTE114), MAP_NUM(ROUTE115), @@ -3587,9 +3451,7 @@ bool8 AbnormalWeatherHasExpired(void) u16 abnormalWeather = VarGet(VAR_ABNORMAL_WEATHER_LOCATION); if (abnormalWeather == ABNORMAL_WEATHER_NONE) - { return FALSE; - } if (++steps > 999) { @@ -3598,15 +3460,15 @@ bool8 AbnormalWeatherHasExpired(void) { switch (gSaveBlock1Ptr->location.mapNum) { - case MAP_NUM(UNDERWATER_MARINE_CAVE): - case MAP_NUM(MARINE_CAVE_ENTRANCE): - case MAP_NUM(MARINE_CAVE_END): - case MAP_NUM(TERRA_CAVE_ENTRANCE): - case MAP_NUM(TERRA_CAVE_END): - VarSet(VAR_SHOULD_END_ABNORMAL_WEATHER, 1); - return FALSE; - default: - break; + case MAP_NUM(UNDERWATER_MARINE_CAVE): + case MAP_NUM(MARINE_CAVE_ENTRANCE): + case MAP_NUM(MARINE_CAVE_END): + case MAP_NUM(TERRA_CAVE_ENTRANCE): + case MAP_NUM(TERRA_CAVE_END): + VarSet(VAR_SHOULD_END_ABNORMAL_WEATHER, 1); + return FALSE; + default: + break; } } @@ -3614,14 +3476,14 @@ bool8 AbnormalWeatherHasExpired(void) { switch (gSaveBlock1Ptr->location.mapNum) { - case MAP_NUM(UNDERWATER_ROUTE127): - case MAP_NUM(UNDERWATER_ROUTE129): - case MAP_NUM(UNDERWATER_ROUTE105): - case MAP_NUM(UNDERWATER_ROUTE125): - VarSet(VAR_SHOULD_END_ABNORMAL_WEATHER, 1); - return FALSE; - default: - break; + case MAP_NUM(UNDERWATER_ROUTE127): + case MAP_NUM(UNDERWATER_ROUTE129): + case MAP_NUM(UNDERWATER_ROUTE105): + case MAP_NUM(UNDERWATER_ROUTE125): + VarSet(VAR_SHOULD_END_ABNORMAL_WEATHER, 1); + return FALSE; + default: + break; } } @@ -3673,9 +3535,7 @@ u32 GetMartEmployeeObjectEventId(void) if (gSaveBlock1Ptr->location.mapGroup == sPokeMarts[i][0]) { if (gSaveBlock1Ptr->location.mapNum == sPokeMarts[i][1]) - { return sPokeMarts[i][2]; - } } } return 1; @@ -3730,9 +3590,7 @@ static void Task_LinkRetireStatusWithBattleTowerPartner(u8 taskId) { case 0: if (!FuncIsActiveTask(Task_ReconnectWithLinkPlayers)) - { gTasks[taskId].tState++; - } break; case 1: if (IsLinkTaskFinished() == TRUE) @@ -3763,23 +3621,15 @@ static void Task_LinkRetireStatusWithBattleTowerPartner(u8 taskId) if (gSpecialVar_0x8004 == BATTLE_TOWER_LINK_RETIRE && gSpecialVar_0x8005 == BATTLE_TOWER_LINK_RETIRE) - { gSpecialVar_Result = BATTLE_TOWER_LINKSTAT_BOTH_RETIRE; - } else if (gSpecialVar_0x8004 == BATTLE_TOWER_LINK_CONTINUE && gSpecialVar_0x8005 == BATTLE_TOWER_LINK_RETIRE) - { gSpecialVar_Result = BATTLE_TOWER_LINKSTAT_MEMBER_RETIRE; - } else if (gSpecialVar_0x8004 == BATTLE_TOWER_LINK_RETIRE && gSpecialVar_0x8005 == BATTLE_TOWER_LINK_CONTINUE) - { gSpecialVar_Result = BATTLE_TOWER_LINKSTAT_LEADER_RETIRE; - } else - { gSpecialVar_Result = BATTLE_TOWER_LINKSTAT_CONTINUE; - } } gTasks[taskId].tState++; } @@ -3894,9 +3744,7 @@ static void Task_LoopWingFlapSE(u8 taskId) } if (playCount == gSpecialVar_0x8004 - 1) - { DestroyTask(taskId); - } } #undef playCount @@ -3958,9 +3806,7 @@ void GetBattlePyramidHint(void) void ResetHealLocationFromDewford(void) { if (gSaveBlock1Ptr->lastHealLocation.mapGroup == MAP_GROUP(DEWFORD_TOWN) && gSaveBlock1Ptr->lastHealLocation.mapNum == MAP_NUM(DEWFORD_TOWN)) - { SetLastHealLocationWarp(HEAL_LOCATION_PETALBURG_CITY); - } } bool8 InPokemonCenter(void) @@ -3997,9 +3843,7 @@ bool8 InPokemonCenter(void) for (i = 0; sPokemonCenters[i] != 0xFFFF; i++) { if (sPokemonCenters[i] == map) - { return TRUE; - } } return FALSE; } @@ -4174,9 +4018,7 @@ static u16 PlayerLoseRandomTrainerFan(void) u8 idx = 0; if (GetNumFansOfPlayerInTrainerFanClub() == 1) - { return 0; - } for (i = 0; i < ARRAY_COUNT(sFanClubMemberIds); i++) { @@ -4192,9 +4034,7 @@ static u16 PlayerLoseRandomTrainerFan(void) } if (GET_TRAINER_FAN_CLUB_FLAG(sFanClubMemberIds[idx])) - { FLIP_TRAINER_FAN_CLUB_FLAG(sFanClubMemberIds[idx]); - } return idx; } @@ -4259,32 +4099,32 @@ void BufferFanClubTrainerName(void) u8 whichNPCTrainer = 0; switch (gSpecialVar_0x8004) { - case FANCLUB_MEMBER1: - break; - case FANCLUB_MEMBER2: - break; - case FANCLUB_MEMBER3: - whichLinkTrainer = 0; - whichNPCTrainer = 3; - break; - case FANCLUB_MEMBER4: - whichLinkTrainer = 0; - whichNPCTrainer = 1; - break; - case FANCLUB_MEMBER5: - whichLinkTrainer = 1; - whichNPCTrainer = 0; - break; - case FANCLUB_MEMBER6: - whichLinkTrainer = 0; - whichNPCTrainer = 4; - break; - case FANCLUB_MEMBER7: - whichLinkTrainer = 1; - whichNPCTrainer = 5; - break; - case FANCLUB_MEMBER8: - break; + case FANCLUB_MEMBER1: + break; + case FANCLUB_MEMBER2: + break; + case FANCLUB_MEMBER3: + whichLinkTrainer = 0; + whichNPCTrainer = 3; + break; + case FANCLUB_MEMBER4: + whichLinkTrainer = 0; + whichNPCTrainer = 1; + break; + case FANCLUB_MEMBER5: + whichLinkTrainer = 1; + whichNPCTrainer = 0; + break; + case FANCLUB_MEMBER6: + whichLinkTrainer = 0; + whichNPCTrainer = 4; + break; + case FANCLUB_MEMBER7: + whichLinkTrainer = 1; + whichNPCTrainer = 5; + break; + case FANCLUB_MEMBER8: + break; } BufferFanClubTrainerName_(&gSaveBlock1Ptr->linkBattleRecords, whichLinkTrainer, whichNPCTrainer); } @@ -4296,27 +4136,27 @@ static void BufferFanClubTrainerName_(struct LinkBattleRecords *linkRecords, u8 { switch (whichNPCTrainer) { - case 0: - StringCopy(gStringVar1, gText_Wallace); - break; - case 1: - StringCopy(gStringVar1, gText_Steven); - break; - case 2: - StringCopy(gStringVar1, gText_Brawly); - break; - case 3: - StringCopy(gStringVar1, gText_Winona); - break; - case 4: - StringCopy(gStringVar1, gText_Phoebe); - break; - case 5: - StringCopy(gStringVar1, gText_Glacia); - break; - default: - StringCopy(gStringVar1, gText_Wallace); - break; + case 0: + StringCopy(gStringVar1, gText_Wallace); + break; + case 1: + StringCopy(gStringVar1, gText_Steven); + break; + case 2: + StringCopy(gStringVar1, gText_Brawly); + break; + case 3: + StringCopy(gStringVar1, gText_Winona); + break; + case 4: + StringCopy(gStringVar1, gText_Phoebe); + break; + case 5: + StringCopy(gStringVar1, gText_Glacia); + break; + default: + StringCopy(gStringVar1, gText_Wallace); + break; } } else diff --git a/src/field_tasks.c b/src/field_tasks.c index 187270f7a8..8e8875993d 100644 --- a/src/field_tasks.c +++ b/src/field_tasks.c @@ -21,20 +21,40 @@ #include "constants/songs.h" #include "constants/metatile_labels.h" +/* This file handles some persistent tasks that run in the overworld. + * - Task_RunTimeBasedEvents: Periodically updates local time and RTC events. Also triggers ambient cries. + * - Task_MuddySlope: Handles the metatile animation when the player steps on muddy slopes. + * - Task_RunPerStepCallback: Calls one of the functions in sPerStepCallbacks, listed below... + * . DummyPerStepCallback: Default, does nothing + * . AshGrassPerStepCallback: Removes the ash from ash-covered grass that the player steps on. + * . FortreeBridgePerStepCallback: Depresses Fortree log bridges that the player steps on. + * . PacifidlogBridgePerStepCallback: Submerges Pacifidlog log bridges that the player steps on. + * . SootopolisGymIcePerStepCallback: Cracks/breaks ice in Sootopolis Gym that the player steps on. + * . EndTruckSequence: Sets the moving truck boxes to their final position when the truck sequence ends. + * . SecretBasePerStepCallback: Records the decorations in a friend's secret base that the player steps on. + * . CrackedFloorPerStepCallback: Breaks cracked floors that the player steps on. + * + * NOTE: "PerStep" is perhaps misleading. One function in sPerStepCallbacks is called + * every frame while in the overworld by Task_RunPerStepCallback regardless of + * whether or not steps are being taken. However, nearly all of the functions in + * the table check if the player has moved from their previous position before + * doing anything else. + */ + struct PacifidlogMetatileOffsets { s8 x; s8 y; - u16 tileId; + u16 metatileId; }; -static void DummyPerStepCallback(u8 taskId); -static void AshGrassPerStepCallback(u8 taskId); -static void FortreeBridgePerStepCallback(u8 taskId); -static void PacifidlogBridgePerStepCallback(u8 taskId); -static void SootopolisGymIcePerStepCallback(u8 taskId); -static void CrackedFloorPerStepCallback(u8 taskId); -static void Task_MuddySlope(u8 taskId); +static void DummyPerStepCallback(u8); +static void AshGrassPerStepCallback(u8); +static void FortreeBridgePerStepCallback(u8); +static void PacifidlogBridgePerStepCallback(u8); +static void SootopolisGymIcePerStepCallback(u8); +static void CrackedFloorPerStepCallback(u8); +static void Task_MuddySlope(u8); static const TaskFunc sPerStepCallbacks[] = { @@ -48,29 +68,35 @@ static const TaskFunc sPerStepCallbacks[] = [STEP_CB_CRACKED_FLOOR] = CrackedFloorPerStepCallback }; -// they are in pairs but declared as 1D array +// Each array has 4 pairs of data, each pair representing two metatiles of a log and their relative position. +// The 4 pairs are for: +// 0: If the player is standing on the top of a vertical log +// 1: If the player is standing on the bottom of a vertical log +// 2: If the player is standing on the left of a horizontal log +// 3: If the player is standing on the right of a horizontal log +// i.e. the element with an offset of 0,0 is the one the player is standing on. static const struct PacifidlogMetatileOffsets sHalfSubmergedBridgeMetatileOffsets[] = { - { 0, 0, METATILE_Pacifidlog_HalfSubmergedLogs_Vertical0}, {0, 1, METATILE_Pacifidlog_HalfSubmergedLogs_Vertical1}, - { 0, -1, METATILE_Pacifidlog_HalfSubmergedLogs_Vertical0}, {0, 0, METATILE_Pacifidlog_HalfSubmergedLogs_Vertical1}, - { 0, 0, METATILE_Pacifidlog_HalfSubmergedLogs_Horizontal0}, {1, 0, METATILE_Pacifidlog_HalfSubmergedLogs_Horizontal1}, - {-1, 0, METATILE_Pacifidlog_HalfSubmergedLogs_Horizontal0}, {0, 0, METATILE_Pacifidlog_HalfSubmergedLogs_Horizontal1} + { 0, 0, METATILE_Pacifidlog_HalfSubmergedLogs_VerticalTop}, {0, 1, METATILE_Pacifidlog_HalfSubmergedLogs_VerticalBottom}, + { 0, -1, METATILE_Pacifidlog_HalfSubmergedLogs_VerticalTop}, {0, 0, METATILE_Pacifidlog_HalfSubmergedLogs_VerticalBottom}, + { 0, 0, METATILE_Pacifidlog_HalfSubmergedLogs_HorizontalLeft}, {1, 0, METATILE_Pacifidlog_HalfSubmergedLogs_HorizontalRight}, + {-1, 0, METATILE_Pacifidlog_HalfSubmergedLogs_HorizontalLeft}, {0, 0, METATILE_Pacifidlog_HalfSubmergedLogs_HorizontalRight} }; static const struct PacifidlogMetatileOffsets sFullySubmergedBridgeMetatileOffsets[] = { - { 0, 0, METATILE_Pacifidlog_SubmergedLogs_Vertical0}, {0, 1, METATILE_Pacifidlog_SubmergedLogs_Vertical1}, - { 0, -1, METATILE_Pacifidlog_SubmergedLogs_Vertical0}, {0, 0, METATILE_Pacifidlog_SubmergedLogs_Vertical1}, - { 0, 0, METATILE_Pacifidlog_SubmergedLogs_Horizontal0}, {1, 0, METATILE_Pacifidlog_SubmergedLogs_Horizontal1}, - {-1, 0, METATILE_Pacifidlog_SubmergedLogs_Horizontal0}, {0, 0, METATILE_Pacifidlog_SubmergedLogs_Horizontal1} + { 0, 0, METATILE_Pacifidlog_SubmergedLogs_VerticalTop}, {0, 1, METATILE_Pacifidlog_SubmergedLogs_VerticalBottom}, + { 0, -1, METATILE_Pacifidlog_SubmergedLogs_VerticalTop}, {0, 0, METATILE_Pacifidlog_SubmergedLogs_VerticalBottom}, + { 0, 0, METATILE_Pacifidlog_SubmergedLogs_HorizontalLeft}, {1, 0, METATILE_Pacifidlog_SubmergedLogs_HorizontalRight}, + {-1, 0, METATILE_Pacifidlog_SubmergedLogs_HorizontalLeft}, {0, 0, METATILE_Pacifidlog_SubmergedLogs_HorizontalRight} }; static const struct PacifidlogMetatileOffsets sFloatingBridgeMetatileOffsets[] = { - { 0, 0, METATILE_Pacifidlog_FloatingLogs_Vertical0}, {0, 1, METATILE_Pacifidlog_FloatingLogs_Vertical1}, - { 0, -1, METATILE_Pacifidlog_FloatingLogs_Vertical0}, {0, 0, METATILE_Pacifidlog_FloatingLogs_Vertical1}, - { 0, 0, METATILE_Pacifidlog_FloatingLogs_Horizontal0}, {1, 0, METATILE_Pacifidlog_FloatingLogs_Horizontal1}, - {-1, 0, METATILE_Pacifidlog_FloatingLogs_Horizontal0}, {0, 0, METATILE_Pacifidlog_FloatingLogs_Horizontal1} + { 0, 0, METATILE_Pacifidlog_FloatingLogs_VerticalTop}, {0, 1, METATILE_Pacifidlog_FloatingLogs_VerticalBottom}, + { 0, -1, METATILE_Pacifidlog_FloatingLogs_VerticalTop}, {0, 0, METATILE_Pacifidlog_FloatingLogs_VerticalBottom}, + { 0, 0, METATILE_Pacifidlog_FloatingLogs_HorizontalLeft}, {1, 0, METATILE_Pacifidlog_FloatingLogs_HorizontalRight}, + {-1, 0, METATILE_Pacifidlog_FloatingLogs_HorizontalLeft}, {0, 0, METATILE_Pacifidlog_FloatingLogs_HorizontalRight} }; // Each element corresponds to a y coordinate row in the sootopolis gym 1F map. @@ -104,16 +130,11 @@ static const u16 sSootopolisGymIceRowVars[] = 0 }; -static const u16 sMuddySlopeMetatiles[] = { - METATILE_General_MuddySlope_Frame0, - METATILE_General_MuddySlope_Frame3, - METATILE_General_MuddySlope_Frame2, - METATILE_General_MuddySlope_Frame1 -}; +#define tCallbackId data[0] static void Task_RunPerStepCallback(u8 taskId) { - int idx = gTasks[taskId].data[0]; + int idx = gTasks[taskId].tCallbackId; sPerStepCallbacks[idx](taskId); } @@ -121,23 +142,23 @@ static void Task_RunPerStepCallback(u8 taskId) #define tAmbientCryState data[1] #define tAmbientCryDelay data[2] +#define TIME_UPDATE_INTERVAL (1 << 12) + static void RunTimeBasedEvents(s16 *data) { switch (tState) { - case 0: - if (gMain.vblankCounter1 & 0x1000) - { - DoTimeBasedEvents(); - tState++; - } - break; - case 1: - if (!(gMain.vblankCounter1 & 0x1000)) - { - tState--; - } - break; + case 0: + if (gMain.vblankCounter1 & TIME_UPDATE_INTERVAL) + { + DoTimeBasedEvents(); + tState++; + } + break; + case 1: + if (!(gMain.vblankCounter1 & TIME_UPDATE_INTERVAL)) + tState--; + break; } } @@ -153,22 +174,20 @@ static void Task_RunTimeBasedEvents(u8 taskId) } #undef tState -#undef tAmbientCryState -#undef tAmbientCryDelay void SetUpFieldTasks(void) { if (!FuncIsActiveTask(Task_RunPerStepCallback)) { - u8 taskId = CreateTask(Task_RunPerStepCallback, 0x50); - gTasks[taskId].data[0] = 0; + u8 taskId = CreateTask(Task_RunPerStepCallback, 80); + gTasks[taskId].tCallbackId = STEP_CB_DUMMY; } if (!FuncIsActiveTask(Task_MuddySlope)) - CreateTask(Task_MuddySlope, 0x50); + CreateTask(Task_MuddySlope, 80); if (!FuncIsActiveTask(Task_RunTimeBasedEvents)) - CreateTask(Task_RunTimeBasedEvents, 0x50); + CreateTask(Task_RunTimeBasedEvents, 80); } void ActivatePerStepCallback(u8 callbackId) @@ -179,17 +198,13 @@ void ActivatePerStepCallback(u8 callbackId) s32 i; s16 *data = gTasks[taskId].data; - for (i = 0; i < 16; i++) + for (i = 0; i < NUM_TASK_DATA; i++) data[i] = 0; if (callbackId >= ARRAY_COUNT(sPerStepCallbacks)) - { - data[0] = 0; - } + tCallbackId = STEP_CB_DUMMY; else - { - data[0] = callbackId; - } + tCallbackId = callbackId; } } @@ -200,18 +215,20 @@ void ResetFieldTasksArgs(void) taskId = FindTaskIdByFunc(Task_RunPerStepCallback); if (taskId != TASK_NONE) - { data = gTasks[taskId].data; - } + taskId = FindTaskIdByFunc(Task_RunTimeBasedEvents); if (taskId != TASK_NONE) { data = gTasks[taskId].data; - data[1] = 0; - data[2] = 0; + tAmbientCryState = 0; + tAmbientCryDelay = 0; } } +#undef tAmbientCryState +#undef tAmbientCryDelay + static void DummyPerStepCallback(u8 taskId) { @@ -219,101 +236,129 @@ static void DummyPerStepCallback(u8 taskId) static const struct PacifidlogMetatileOffsets *GetPacifidlogBridgeMetatileOffsets(const struct PacifidlogMetatileOffsets *offsets, u16 metatileBehavior) { - if (MetatileBehavior_IsPacifidlogVerticalLog1(metatileBehavior)) + if (MetatileBehavior_IsPacifidlogVerticalLogTop(metatileBehavior)) return &offsets[0 * 2]; - else if (MetatileBehavior_IsPacifidlogVerticalLog2(metatileBehavior)) + else if (MetatileBehavior_IsPacifidlogVerticalLogBottom(metatileBehavior)) return &offsets[1 * 2]; - else if (MetatileBehavior_IsPacifidlogHorizontalLog1(metatileBehavior)) + else if (MetatileBehavior_IsPacifidlogHorizontalLogLeft(metatileBehavior)) return &offsets[2 * 2]; - else if (MetatileBehavior_IsPacifidlogHorizontalLog2(metatileBehavior)) + else if (MetatileBehavior_IsPacifidlogHorizontalLogRight(metatileBehavior)) return &offsets[3 * 2]; else return NULL; } -static void SetPacifidlogBridgeMetatiles(const struct PacifidlogMetatileOffsets *offsets, s16 x, s16 y, bool32 redrawMap) +static void TrySetPacifidlogBridgeMetatiles(const struct PacifidlogMetatileOffsets *offsets, s16 x, s16 y, bool32 redrawMap) { offsets = GetPacifidlogBridgeMetatileOffsets(offsets, MapGridGetMetatileBehaviorAt(x, y)); + + // If offsets is NULL, position is not a log (don't set it) if (offsets) { - MapGridSetMetatileIdAt(x + offsets[0].x, y + offsets[0].y, offsets[0].tileId); + // Set both metatiles of the log + MapGridSetMetatileIdAt(x + offsets[0].x, y + offsets[0].y, offsets[0].metatileId); if (redrawMap) CurrentMapDrawMetatileAt(x + offsets[0].x, y + offsets[0].y); - MapGridSetMetatileIdAt(x + offsets[1].x, y + offsets[1].y, offsets[1].tileId); + MapGridSetMetatileIdAt(x + offsets[1].x, y + offsets[1].y, offsets[1].metatileId); if (redrawMap) CurrentMapDrawMetatileAt(x + offsets[1].x, y + offsets[1].y); } } -static void UpdateHalfSubmergedBridgeMetatiles(s16 x, s16 y, bool32 redrawMap) +static void TrySetLogBridgeHalfSubmerged(s16 x, s16 y, bool32 redrawMap) { - SetPacifidlogBridgeMetatiles(sHalfSubmergedBridgeMetatileOffsets, x, y, redrawMap); + TrySetPacifidlogBridgeMetatiles(sHalfSubmergedBridgeMetatileOffsets, x, y, redrawMap); } -static void UpdateFullySubmergedBridgeMetatiles(s16 x, s16 y, bool32 redrawMap) +static void TrySetLogBridgeFullySubmerged(s16 x, s16 y, bool32 redrawMap) { - SetPacifidlogBridgeMetatiles(sFullySubmergedBridgeMetatileOffsets, x, y, redrawMap); + TrySetPacifidlogBridgeMetatiles(sFullySubmergedBridgeMetatileOffsets, x, y, redrawMap); } -static void UpdateFloatingBridgeMetatiles(s16 x, s16 y, bool32 redrawMap) +static void TrySetLogBridgeFloating(s16 x, s16 y, bool32 redrawMap) { - SetPacifidlogBridgeMetatiles(sFloatingBridgeMetatileOffsets, x, y, redrawMap); + TrySetPacifidlogBridgeMetatiles(sFloatingBridgeMetatileOffsets, x, y, redrawMap); } -static bool32 StandingOnNewPacifidlogBridge(s16 x1, s16 y1, s16 x2, s16 y2) +// Returns FALSE if player has moved from one end of a log to the other (log should remain submerged). +// Otherwise it returns TRUE. +static bool32 ShouldRaisePacifidlogLogs(s16 newX, s16 newY, s16 oldX, s16 oldY) { - u16 metatileBehavior = MapGridGetMetatileBehaviorAt(x2, y2); + u16 oldBehavior = MapGridGetMetatileBehaviorAt(oldX, oldY); - if (MetatileBehavior_IsPacifidlogVerticalLog1(metatileBehavior)) + if (MetatileBehavior_IsPacifidlogVerticalLogTop(oldBehavior)) { - if (y1 > y2) + // Still on same one if moved from top to bottom + if (newY > oldY) return FALSE; } - else if (MetatileBehavior_IsPacifidlogVerticalLog2(metatileBehavior)) + else if (MetatileBehavior_IsPacifidlogVerticalLogBottom(oldBehavior)) { - if (y1 < y2) + // Still on same one if moved from bottom to top + if (newY < oldY) return FALSE; } - else if (MetatileBehavior_IsPacifidlogHorizontalLog1(metatileBehavior)) + else if (MetatileBehavior_IsPacifidlogHorizontalLogLeft(oldBehavior)) { - if (x1 > x2) + // Still on same one if moved from left to right + if (newX > oldX) return FALSE; } - else if (MetatileBehavior_IsPacifidlogHorizontalLog2(metatileBehavior)) + else if (MetatileBehavior_IsPacifidlogHorizontalLogRight(oldBehavior)) { - if (x1 < x2) + // Still on same one if moved from right to left + if (newX < oldX) + return FALSE; + } + + // Player is either on a different log or no log at all + return TRUE; +} + +// Returns FALSE if player has moved from one end of a log to the other (log should remain submerged). +// Otherwise it returns TRUE. +// This is the effectively the same as ShouldRaisePacifidlogLogs, as it swaps both the conditions and which position's behavior to check. +// In effect the previous function asks "was the player's previous position not the other end of a log they're standing on?" +// while this function asks "is the player's current position not the other end of a log they were previously standing on?" +// and with the same positions both questions always have the same answer. +static bool32 ShouldSinkPacifidlogLogs(s16 newX, s16 newY, s16 oldX, s16 oldY) +{ + u16 newBehavior = MapGridGetMetatileBehaviorAt(newX, newY); + + if (MetatileBehavior_IsPacifidlogVerticalLogTop(newBehavior)) + { + // Still on same one if moved from bottom to top + if (newY < oldY) + return FALSE; + } + else if (MetatileBehavior_IsPacifidlogVerticalLogBottom(newBehavior)) + { + // Still on same one if moved from top to bottom + if (newY > oldY) + return FALSE; + } + else if (MetatileBehavior_IsPacifidlogHorizontalLogLeft(newBehavior)) + { + // Still on same one if moved from right to left + if (newX < oldX) + return FALSE; + } + else if (MetatileBehavior_IsPacifidlogHorizontalLogRight(newBehavior)) + { + // Still on same one if moved from left to right + if (newX > oldX) return FALSE; } return TRUE; } -static bool32 StandingOnSamePacifidlogBridge(s16 x1, s16 y1, s16 x2, s16 y2) -{ - u16 metatileBehavior = MapGridGetMetatileBehaviorAt(x1, y1); - - if (MetatileBehavior_IsPacifidlogVerticalLog1(metatileBehavior)) - { - if (y1 < y2) - return FALSE; - } - else if (MetatileBehavior_IsPacifidlogVerticalLog2(metatileBehavior)) - { - if (y1 > y2) - return FALSE; - } - else if (MetatileBehavior_IsPacifidlogHorizontalLog1(metatileBehavior)) - { - if (x1 < x2) - return FALSE; - } - else if (MetatileBehavior_IsPacifidlogHorizontalLog2(metatileBehavior)) - { - if (x1 > x2) - return FALSE; - } - return TRUE; -} +#define tState data[1] +#define tPrevX data[2] +#define tPrevY data[3] +#define tToRaiseX data[4] +#define tToRaiseY data[5] +#define tDelay data[6] static void PacifidlogBridgePerStepCallback(u8 taskId) { @@ -321,180 +366,247 @@ static void PacifidlogBridgePerStepCallback(u8 taskId) s16 x, y; data = gTasks[taskId].data; PlayerGetDestCoords(&x, &y); - switch (data[1]) + switch (tState) { - case 0: - data[2] = x; - data[3] = y; - UpdateFullySubmergedBridgeMetatiles(x, y, TRUE); - data[1] = 1; - break; - case 1: - if (x != data[2] || y != data[3]) - { - if (StandingOnNewPacifidlogBridge(x, y, data[2], data[3])) - { - UpdateHalfSubmergedBridgeMetatiles(data[2], data[3], TRUE); - UpdateFloatingBridgeMetatiles(data[2], data[3], FALSE); - data[4] = data[2]; - data[5] = data[3]; - data[1] = 2; - data[6] = 8; - } - else - { - data[4] = -1; - data[5] = -1; - } + case 0: + tPrevX = x; + tPrevY = y; + + // If player is already standing on a log when the callback + // is set then immediately set it to submerged + TrySetLogBridgeFullySubmerged(x, y, TRUE); + tState = 1; + break; + case 1: + // Skip if player hasn't moved + if (x == tPrevX && y == tPrevY) + return; - if (StandingOnSamePacifidlogBridge(x, y, data[2], data[3])) - { - UpdateHalfSubmergedBridgeMetatiles(x, y, TRUE); - data[1] = 2; - data[6] = 8; - } + if (ShouldRaisePacifidlogLogs(x, y, tPrevX, tPrevY)) + { + // Player's previous position is not the other end of a log + // they're standing on, try and set it half-submerged (rising to surface). + // The floating metatile is queued up by setting it but not drawing it, + // but this is pointless as state 2 will handle it in full anyway. + TrySetLogBridgeHalfSubmerged(tPrevX, tPrevY, TRUE); + TrySetLogBridgeFloating(tPrevX, tPrevY, FALSE); + tToRaiseX = tPrevX; + tToRaiseY = tPrevY; + tState = 2; + tDelay = 8; + } + else + { + // Player has moved but is still on the same log bridge section. + // Keep it submerged. + tToRaiseX = -1; + tToRaiseY = -1; + } - data[2] = x; - data[3] = y; - if (MetatileBehavior_IsPacifidlogLog(MapGridGetMetatileBehaviorAt(x, y))) - PlaySE(SE_PUDDLE); - } - break; - case 2: - if ((--data[6]) == 0) - { - UpdateFullySubmergedBridgeMetatiles(x, y, TRUE); - if (data[4] != -1 && data[5] != -1) - UpdateFloatingBridgeMetatiles(data[4], data[5], TRUE); + if (ShouldSinkPacifidlogLogs(x, y, tPrevX, tPrevY)) + { + // Player's current position is not the other end of a log + // they were previously standing on, try and set it half-submerged (sinking) + TrySetLogBridgeHalfSubmerged(x, y, TRUE); + tState = 2; + tDelay = 8; + } - data[1] = 1; - } - break; + tPrevX = x; + tPrevY = y; + + // If player's new position is a log play the puddle SE + if (MetatileBehavior_IsPacifidlogLog(MapGridGetMetatileBehaviorAt(x, y))) + PlaySE(SE_PUDDLE); + break; + case 2: + if (--tDelay == 0) + { + // If player's current position is a log submerge it fully. + TrySetLogBridgeFullySubmerged(x, y, TRUE); + + // Player's previous position is not the other end of a log + // they're standing on, try to raise their previous position. + if (tToRaiseX != -1 && tToRaiseY != -1) + TrySetLogBridgeFloating(tToRaiseX, tToRaiseY, TRUE); + + tState = 1; + } + break; } } -static void SetLoweredForetreeBridgeMetatile(s16 x, s16 y) +#undef tState +#undef tPrevX +#undef tPrevY +#undef tToRaiseX +#undef tToRaiseY +#undef tDelay + +static void TryLowerFortreeBridge(s16 x, s16 y) { - u8 z = PlayerGetZCoord(); - if (!(z & 1)) + u8 elevation = PlayerGetElevation(); + if (!(elevation & 1)) { switch (MapGridGetMetatileIdAt(x, y)) { - case METATILE_Fortree_BridgeOverGrass_Raised: - MapGridSetMetatileIdAt(x, y, METATILE_Fortree_BridgeOverGrass_Lowered); - break; - case METATILE_Fortree_BridgeOverTrees_Raised: - MapGridSetMetatileIdAt(x, y, METATILE_Fortree_BridgeOverTrees_Lowered); - break; + case METATILE_Fortree_BridgeOverGrass_Raised: + MapGridSetMetatileIdAt(x, y, METATILE_Fortree_BridgeOverGrass_Lowered); + break; + case METATILE_Fortree_BridgeOverTrees_Raised: + MapGridSetMetatileIdAt(x, y, METATILE_Fortree_BridgeOverTrees_Lowered); + break; } } } -static void SetNormalFortreeBridgeMetatile(s16 x, s16 y) +static void TryRaiseFortreeBridge(s16 x, s16 y) { - u8 z = PlayerGetZCoord(); - if (!(z & 1)) + u8 elevation = PlayerGetElevation(); + if (!(elevation & 1)) { switch (MapGridGetMetatileIdAt(x, y)) { - case METATILE_Fortree_BridgeOverGrass_Lowered: - MapGridSetMetatileIdAt(x, y, METATILE_Fortree_BridgeOverGrass_Raised); - break; - case METATILE_Fortree_BridgeOverTrees_Lowered: - MapGridSetMetatileIdAt(x, y, METATILE_Fortree_BridgeOverTrees_Raised); - break; + case METATILE_Fortree_BridgeOverGrass_Lowered: + MapGridSetMetatileIdAt(x, y, METATILE_Fortree_BridgeOverGrass_Raised); + break; + case METATILE_Fortree_BridgeOverTrees_Lowered: + MapGridSetMetatileIdAt(x, y, METATILE_Fortree_BridgeOverTrees_Raised); + break; } } } +#define tState data[1] +#define tPrevX data[2] +#define tPrevY data[3] +#define tOldBridgeX data[4] +#define tOldBridgeY data[5] +#define tBounceTime data[6] + static void FortreeBridgePerStepCallback(u8 taskId) { bool8 isFortreeBridgeCur; bool8 isFortreeBridgePrev; - u8 z, flag; - s16 x, y, x2, y2; + u8 elevation, onBridgeElevation; + s16 x, y, prevX, prevY; s16 *data = gTasks[taskId].data; PlayerGetDestCoords(&x, &y); - switch (data[1]) + switch (tState) { - default: + default: + break; + case 0: + tPrevX = x; + tPrevY = y; + + // If player is already on bridge when callback is set then lower it immediately. + if (MetatileBehavior_IsFortreeBridge(MapGridGetMetatileBehaviorAt(x, y))) + { + TryLowerFortreeBridge(x, y); + CurrentMapDrawMetatileAt(x, y); + } + tState = 1; + break; + case 1: + prevX = tPrevX; + prevY = tPrevY; + + // Skip if player hasn't moved + if (x == prevX && y == prevY) break; + + isFortreeBridgeCur = MetatileBehavior_IsFortreeBridge(MapGridGetMetatileBehaviorAt(x, y)); + isFortreeBridgePrev = MetatileBehavior_IsFortreeBridge(MapGridGetMetatileBehaviorAt(prevX, prevY)); + + // Make sure player isn't below bridge + elevation = PlayerGetElevation(); + onBridgeElevation = FALSE; + if ((u8)(elevation & 1) == 0) + onBridgeElevation = TRUE; + + if (onBridgeElevation && (isFortreeBridgeCur == TRUE || isFortreeBridgePrev == TRUE)) + PlaySE(SE_BRIDGE_WALK); + + // Because this doesn't check for isFortreeBridgeCur, bridge sections aren't + // lowered when first stepping onto them from anything other than another bridge. + #ifdef BUGFIX + if (isFortreeBridgePrev || isFortreeBridgeCur) + #else + if (isFortreeBridgePrev) + #endif + { + // Raise old bridge + TryRaiseFortreeBridge(prevX, prevY); + CurrentMapDrawMetatileAt(prevX, prevY); + + // Lower new bridge + TryLowerFortreeBridge(x, y); + CurrentMapDrawMetatileAt(x, y); + } + + // These should really be set below the !isFortreeBridgePrev conditional, + // but it doesn't matter because it's not read until case 2 anyway. + tOldBridgeX = prevX; + tOldBridgeY = prevY; + + tPrevX = x; + tPrevY = y; + if (!isFortreeBridgePrev) + break; + + tBounceTime = 16; + tState = 2; + // fallthrough + case 2: + tBounceTime--; + prevX = tOldBridgeX; + prevY = tOldBridgeY; + switch (tBounceTime % 7) + { case 0: - data[2] = x; - data[3] = y; - if (MetatileBehavior_IsFortreeBridge(MapGridGetMetatileBehaviorAt(x, y))) - { - SetLoweredForetreeBridgeMetatile(x, y); - CurrentMapDrawMetatileAt(x, y); - } - data[1] = 1; - break; + CurrentMapDrawMetatileAt(prevX, prevY); case 1: - x2 = data[2]; - y2 = data[3]; - if (x == x2 && y == y2) - break; - - isFortreeBridgeCur = MetatileBehavior_IsFortreeBridge(MapGridGetMetatileBehaviorAt(x, y)); - isFortreeBridgePrev = MetatileBehavior_IsFortreeBridge(MapGridGetMetatileBehaviorAt(x2, y2)); - z = PlayerGetZCoord(); - flag = 0; - if ((u8)(z & 1) == 0) - flag = 1; - - if (flag && (isFortreeBridgeCur == 1 || isFortreeBridgePrev == 1)) - PlaySE(SE_BRIDGE_WALK); - - if (isFortreeBridgePrev) - { - SetNormalFortreeBridgeMetatile(x2, y2); - CurrentMapDrawMetatileAt(x2, y2); - SetLoweredForetreeBridgeMetatile(x, y); - CurrentMapDrawMetatileAt(x, y); - } - - data[4] = x2; - data[5] = y2; - data[2] = x; - data[3] = y; - if (!isFortreeBridgePrev) - break; - - data[6] = 16; - data[1] = 2; - // fallthrough case 2: - data[6]--; - x2 = data[4]; - y2 = data[5]; - switch (data[6] % 7) - { - case 0: - CurrentMapDrawMetatileAt(x2, y2); - case 1: - case 2: - case 3: - break; - case 4: - SetLoweredForetreeBridgeMetatile(x2, y2); - CurrentMapDrawMetatileAt(x2, y2); - SetNormalFortreeBridgeMetatile(x2, y2); - case 5: - case 6: - case 7: - break; - } - if (data[6] == 0) - { - data[1] = 1; - } + case 3: break; + case 4: + // Bounce bridge section that player has stepped off of + TryLowerFortreeBridge(prevX, prevY); + CurrentMapDrawMetatileAt(prevX, prevY); + TryRaiseFortreeBridge(prevX, prevY); + case 5: + case 6: + case 7: // Not possible with % 7 + break; + } + if (tBounceTime == 0) + tState = 1; + break; } } +#undef tState +#undef tPrevX +#undef tPrevY +#undef tOldBridgeX +#undef tOldBridgeY +#undef tBounceTime + +// Boundaries of the ice puzzle in Sootopolis Gym +#define ICE_PUZZLE_L 3 +#define ICE_PUZZLE_R 13 +#define ICE_PUZZLE_T 6 +#define ICE_PUZZLE_B 19 + +#define ICE_PUZZLE_WIDTH (ICE_PUZZLE_R - ICE_PUZZLE_L + 1) +#define ICE_PUZZLE_HEIGHT (ICE_PUZZLE_B - ICE_PUZZLE_T + 1) + static bool32 CoordInIcePuzzleRegion(s16 x, s16 y) { - if ((u16)(x - 3) < 11 && (u16)(y - 6) < 14 && sSootopolisGymIceRowVars[y]) + if ((u16)(x - ICE_PUZZLE_L) < ICE_PUZZLE_WIDTH + && (u16)(y - ICE_PUZZLE_T) < ICE_PUZZLE_HEIGHT + && sSootopolisGymIceRowVars[y]) return TRUE; else return FALSE; @@ -503,17 +615,17 @@ static bool32 CoordInIcePuzzleRegion(s16 x, s16 y) static void MarkIcePuzzleCoordVisited(s16 x, s16 y) { if (CoordInIcePuzzleRegion(x, y)) - *GetVarPointer(sSootopolisGymIceRowVars[y]) |= (1 << (x - 3)); + *GetVarPointer(sSootopolisGymIceRowVars[y]) |= (1 << (x - ICE_PUZZLE_L)); } static bool32 IsIcePuzzleCoordVisited(s16 x, s16 y) { - u32 var; + u16 var; if (!CoordInIcePuzzleRegion(x, y)) return FALSE; - var = VarGet(sSootopolisGymIceRowVars[y]) << 16; - if ((0x10000 << (x - 3)) & var) // TODO: fix that if + var = VarGet(sSootopolisGymIceRowVars[y]); + if (var &= (1 << (x - ICE_PUZZLE_L))) return TRUE; else return FALSE; @@ -534,116 +646,155 @@ void SetSootopolisGymCrackedIceMetatiles(void) } } +#define tState data[1] +#define tPrevX data[2] +#define tPrevY data[3] +#define tIceX data[4] +#define tIceY data[5] +#define tDelay data[6] + static void SootopolisGymIcePerStepCallback(u8 taskId) { s16 x, y; u16 tileBehavior; u16 *iceStepCount; s16 *data = gTasks[taskId].data; - switch (data[1]) + switch (tState) { - case 0: - PlayerGetDestCoords(&x, &y); - data[2] = x; - data[3] = y; - data[1] = 1; - break; - case 1: - PlayerGetDestCoords(&x, &y); - if (x != data[2] || y != data[3]) - { - data[2] = x; - data[3] = y; - tileBehavior = MapGridGetMetatileBehaviorAt(x, y); - iceStepCount = GetVarPointer(VAR_ICE_STEP_COUNT); - if (MetatileBehavior_IsThinIce(tileBehavior) == TRUE) - { - (*iceStepCount)++; - data[6] = 4; - data[1] = 2; - data[4] = x; - data[5] = y; - } - else if (MetatileBehavior_IsCrackedIce(tileBehavior) == TRUE) - { - *iceStepCount = 0; - data[6] = 4; - data[1] = 3; - data[4] = x; - data[5] = y; - } - } - break; - case 2: - if (data[6] != 0) - { - data[6]--; - } - else - { - x = data[4]; - y = data[5]; - PlaySE(SE_ICE_CRACK); - MapGridSetMetatileIdAt(x, y, METATILE_SootopolisGym_Ice_Cracked); - CurrentMapDrawMetatileAt(x, y); - MarkIcePuzzleCoordVisited(x - MAP_OFFSET, y - MAP_OFFSET); - data[1] = 1; - } - break; - case 3: - if (data[6] != 0) - { - data[6]--; - } - else - { - x = data[4]; - y = data[5]; - PlaySE(SE_ICE_BREAK); - MapGridSetMetatileIdAt(x, y, METATILE_SootopolisGym_Ice_Broken); - CurrentMapDrawMetatileAt(x, y); - data[1] = 1; - } - break; + case 0: + PlayerGetDestCoords(&x, &y); + tPrevX = x; + tPrevY = y; + tState = 1; + break; + case 1: + PlayerGetDestCoords(&x, &y); + // End if player hasn't moved + if (x == tPrevX && y == tPrevY) + return; + + tPrevX = x; + tPrevY = y; + tileBehavior = MapGridGetMetatileBehaviorAt(x, y); + iceStepCount = GetVarPointer(VAR_ICE_STEP_COUNT); + if (MetatileBehavior_IsThinIce(tileBehavior) == TRUE) + { + // Thin ice, set it to cracked ice + (*iceStepCount)++; + tDelay = 4; + tState = 2; + tIceX = x; + tIceY = y; + } + else if (MetatileBehavior_IsCrackedIce(tileBehavior) == TRUE) + { + // Cracked ice, set it to broken ice + *iceStepCount = 0; + tDelay = 4; + tState = 3; + tIceX = x; + tIceY = y; + } + break; + case 2: + if (tDelay != 0) + { + tDelay--; + } + else + { + // Crack ice + x = tIceX; + y = tIceY; + PlaySE(SE_ICE_CRACK); + MapGridSetMetatileIdAt(x, y, METATILE_SootopolisGym_Ice_Cracked); + CurrentMapDrawMetatileAt(x, y); + MarkIcePuzzleCoordVisited(x - MAP_OFFSET, y - MAP_OFFSET); + tState = 1; + } + break; + case 3: + if (tDelay != 0) + { + tDelay--; + } + else + { + // Break ice + x = tIceX; + y = tIceY; + PlaySE(SE_ICE_BREAK); + MapGridSetMetatileIdAt(x, y, METATILE_SootopolisGym_Ice_Broken); + CurrentMapDrawMetatileAt(x, y); + tState = 1; + } + break; } } +#undef tState +#undef tPrevX +#undef tPrevY +#undef tIceX +#undef tIceY +#undef tDelay + +#define tPrevX data[1] +#define tPrevY data[2] + static void AshGrassPerStepCallback(u8 taskId) { s16 x, y; u16 *ashGatherCount; s16 *data = gTasks[taskId].data; PlayerGetDestCoords(&x, &y); - if (x != data[1] || y != data[2]) - { - data[1] = x; - data[2] = y; - if (MetatileBehavior_IsAshGrass(MapGridGetMetatileBehaviorAt(x, y))) - { - if (MapGridGetMetatileIdAt(x, y) == METATILE_Fallarbor_AshGrass) - StartAshFieldEffect(x, y, METATILE_Fallarbor_NormalGrass, 4); - else - StartAshFieldEffect(x, y, METATILE_Lavaridge_NormalGrass, 4); - if (CheckBagHasItem(ITEM_SOOT_SACK, 1)) - { - ashGatherCount = GetVarPointer(VAR_ASH_GATHER_COUNT); - if (*ashGatherCount < 9999) - (*ashGatherCount)++; - } + // End if player hasn't moved + if (x == tPrevX && y == tPrevY) + return; + + tPrevX = x; + tPrevY = y; + if (MetatileBehavior_IsAshGrass(MapGridGetMetatileBehaviorAt(x, y))) + { + // Remove ash from grass + if (MapGridGetMetatileIdAt(x, y) == METATILE_Fallarbor_AshGrass) + StartAshFieldEffect(x, y, METATILE_Fallarbor_NormalGrass, 4); + else + StartAshFieldEffect(x, y, METATILE_Lavaridge_NormalGrass, 4); + + // Try to gather ash + if (CheckBagHasItem(ITEM_SOOT_SACK, 1)) + { + ashGatherCount = GetVarPointer(VAR_ASH_GATHER_COUNT); + if (*ashGatherCount < 9999) + (*ashGatherCount)++; } } } +#undef tPrevX +#undef tPrevY + // This function uses the constants for gTileset_Cave's metatile labels, but other tilesets with // the CrackedFloorPerStepCallback callback use the same metatile numbers for the cracked floor // and hole metatiles, such as gTileset_MirageTower. static void SetCrackedFloorHoleMetatile(s16 x, s16 y) { - MapGridSetMetatileIdAt(x, y, MapGridGetMetatileIdAt(x, y) == METATILE_Cave_CrackedFloor ? METATILE_Cave_CrackedFloor_Hole : METATILE_Pacifidlog_SkyPillar_CrackedFloor_Hole); + u16 metatileId = MapGridGetMetatileIdAt(x, y) == METATILE_Cave_CrackedFloor ? METATILE_Cave_CrackedFloor_Hole : METATILE_Pacifidlog_SkyPillar_CrackedFloor_Hole; + MapGridSetMetatileIdAt(x, y, metatileId); CurrentMapDrawMetatileAt(x, y); } +#define tPrevX data[2] +#define tPrevY data[3] +#define tFloor1Delay data[4] +#define tFloor1X data[5] +#define tFloor1Y data[6] +#define tFloor2Delay data[7] +#define tFloor2X data[8] +#define tFloor2Y data[9] + static void CrackedFloorPerStepCallback(u8 taskId) { s16 x, y; @@ -651,113 +802,153 @@ static void CrackedFloorPerStepCallback(u8 taskId) s16 *data = gTasks[taskId].data; PlayerGetDestCoords(&x, &y); behavior = MapGridGetMetatileBehaviorAt(x, y); - if (data[4] != 0 && (--data[4]) == 0) - SetCrackedFloorHoleMetatile(data[5], data[6]); - if (data[7] != 0 && (--data[7]) == 0) - SetCrackedFloorHoleMetatile(data[8], data[9]); + // Update up to 2 previous cracked floor spaces + if (tFloor1Delay != 0 && (--tFloor1Delay) == 0) + SetCrackedFloorHoleMetatile(tFloor1X, tFloor1Y); + if (tFloor2Delay != 0 && (--tFloor2Delay) == 0) + SetCrackedFloorHoleMetatile(tFloor2X, tFloor2Y); if (MetatileBehavior_IsCrackedFloorHole(behavior)) VarSet(VAR_ICE_STEP_COUNT, 0); // this var does double duty - if ((x != data[2] || y != data[3])) - { - data[2] = x; - data[3] = y; - if (MetatileBehavior_IsCrackedFloor(behavior)) - { - if (GetPlayerSpeed() != 4) - VarSet(VAR_ICE_STEP_COUNT, 0); // this var does double duty + // End if player hasn't moved + if (x == tPrevX && y == tPrevY) + return; - if (data[4] == 0) - { - data[4] = 3; - data[5] = x; - data[6] = y; - } - else if (data[7] == 0) - { - data[7] = 3; - data[8] = x; - data[9] = y; - } + tPrevX = x; + tPrevY = y; + if (MetatileBehavior_IsCrackedFloor(behavior)) + { + if (GetPlayerSpeed() != PLAYER_SPEED_FASTEST) + VarSet(VAR_ICE_STEP_COUNT, 0); // this var does double duty + + if (tFloor1Delay == 0) + { + tFloor1Delay = 3; + tFloor1X = x; + tFloor1Y = y; + } + else if (tFloor2Delay == 0) + { + tFloor2Delay = 3; + tFloor2X = x; + tFloor2Y = y; } } } +#undef tPrevX +#undef tPrevY +#undef tFloor1Delay +#undef tFloor1X +#undef tFloor1Y +#undef tFloor2Delay +#undef tFloor2X +#undef tFloor2Y + +#define tMapId data[0] +#define tState data[1] +#define tPrevX data[2] +#define tPrevY data[3] +// data[4] - data[15] are data about up to 4 individual animating muddy slope metatiles +// They're divided into groups of 3, i.e data[4]-[6] track one metatile, data[7]-[9] another, and so on. +// For each data triplet, the 1sst is the animation time, and the 2nd/3rd are the x/y coordinates. +#define SLOPE_DATA_START 4 +#define SLOPE_DATA_END (3 * SLOPE_DATA_SIZE + SLOPE_DATA_START) // 13, which is the last slope data start point +enum { + SLOPE_TIME, + SLOPE_X, + SLOPE_Y, + SLOPE_DATA_SIZE +}; +#define tSlopeAnimTime(i) data[(i) * SLOPE_DATA_SIZE + SLOPE_DATA_START + SLOPE_TIME] + +static const u16 sMuddySlopeMetatiles[] = { + METATILE_General_MuddySlope_Frame0, + METATILE_General_MuddySlope_Frame3, + METATILE_General_MuddySlope_Frame2, + METATILE_General_MuddySlope_Frame1 +}; + +#define SLOPE_ANIM_TIME 32 +#define SLOPE_ANIM_STEP_TIME (SLOPE_ANIM_TIME / (int)ARRAY_COUNT(sMuddySlopeMetatiles)) + static void SetMuddySlopeMetatile(s16 *data, s16 x, s16 y) { - u16 tile; - if ((--data[0]) == 0) - tile = METATILE_General_MuddySlope_Frame0; + u16 metatileId; + if ((--data[SLOPE_TIME]) == 0) + metatileId = METATILE_General_MuddySlope_Frame0; else - tile = sMuddySlopeMetatiles[data[0] / 8]; + metatileId = sMuddySlopeMetatiles[data[SLOPE_TIME] / SLOPE_ANIM_STEP_TIME]; - MapGridSetMetatileIdAt(x, y, tile); + MapGridSetMetatileIdAt(x, y, metatileId); CurrentMapDrawMetatileAt(x, y); MapGridSetMetatileIdAt(x, y, METATILE_General_MuddySlope_Frame0); } static void Task_MuddySlope(u8 taskId) { - s16 x, y, x2, y2; + s16 x, y, cameraOffsetX, cameraOffsetY; int i; u16 mapId; s16 *data = gTasks[taskId].data; PlayerGetDestCoords(&x, &y); mapId = (gSaveBlock1Ptr->location.mapGroup << 8) | gSaveBlock1Ptr->location.mapNum; - switch (data[1]) + switch (tState) { - case 0: - data[0] = mapId; - data[2] = x; - data[3] = y; - data[1] = 1; - data[4] = 0; - data[7] = 0; - data[10] = 0; - data[13] = 0; + case 0: + tMapId = mapId; + tPrevX = x; + tPrevY = y; + tState = 1; + tSlopeAnimTime(0) = 0; + tSlopeAnimTime(1) = 0; + tSlopeAnimTime(2) = 0; + tSlopeAnimTime(3) = 0; + break; + case 1: + // Skip if player hasn't moved + if (tPrevX == x && tPrevY == y) break; - case 1: - if (data[2] != x || data[3] != y) + + tPrevX = x; + tPrevY = y; + if (MetatileBehavior_IsMuddySlope(MapGridGetMetatileBehaviorAt(x, y))) + { + for (i = SLOPE_DATA_START; i <= SLOPE_DATA_END; i += SLOPE_DATA_SIZE) { - data[2] = x; - data[3] = y; - if (MetatileBehavior_IsMuddySlope(MapGridGetMetatileBehaviorAt(x, y))) + if (data[i] == 0) { - for (i = 4; i < 14; i += 3) - { - if (data[i] == 0) - { - data[i] = 32; - data[i + 1] = x; - data[i + 2] = y; - break; - } - } + data[i + SLOPE_TIME] = SLOPE_ANIM_TIME; + data[i + SLOPE_X] = x; + data[i + SLOPE_Y] = y; + break; } } - break; + } + break; } - if (gCamera.active && mapId != data[0]) + + if (gCamera.active && mapId != tMapId) { - data[0] = mapId; - x2 = gCamera.x; - y2 = gCamera.y; + tMapId = mapId; + cameraOffsetX = gCamera.x; + cameraOffsetY = gCamera.y; } else { - x2 = 0; - y2 = 0; + cameraOffsetX = 0; + cameraOffsetY = 0; } - for (i = 4; i < 14; i += 3) + for (i = SLOPE_DATA_START; i <= SLOPE_DATA_END; i += SLOPE_DATA_SIZE) { - if (data[i]) + if (data[i + SLOPE_TIME]) { - data[i + 1] -= x2; - data[i + 2] -= y2; - SetMuddySlopeMetatile(&data[i], data[i + 1], data[i + 2]); + data[i + SLOPE_X] -= cameraOffsetX; + data[i + SLOPE_Y] -= cameraOffsetY; + SetMuddySlopeMetatile(&data[i + SLOPE_TIME], data[i + SLOPE_X], data[i + SLOPE_Y]); } } } diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c index 5720363c21..2b87557c21 100644 --- a/src/field_weather_effect.c +++ b/src/field_weather_effect.c @@ -2487,19 +2487,19 @@ static void CreateAbnormalWeatherTask(void) static u8 TranslateWeatherNum(u8); static void UpdateRainCounter(u8, u8); -void SetSav1Weather(u32 weather) +void SetSavedWeather(u32 weather) { u8 oldWeather = gSaveBlock1Ptr->weather; gSaveBlock1Ptr->weather = TranslateWeatherNum(weather); UpdateRainCounter(gSaveBlock1Ptr->weather, oldWeather); } -u8 GetSav1Weather(void) +u8 GetSavedWeather(void) { return gSaveBlock1Ptr->weather; } -void SetSav1WeatherFromCurrMapHeader(void) +void SetSavedWeatherFromCurrMapHeader(void) { u8 oldWeather = gSaveBlock1Ptr->weather; gSaveBlock1Ptr->weather = TranslateWeatherNum(gMapHeader.weather); @@ -2508,19 +2508,19 @@ void SetSav1WeatherFromCurrMapHeader(void) void SetWeather(u32 weather) { - SetSav1Weather(weather); - SetNextWeather(GetSav1Weather()); + SetSavedWeather(weather); + SetNextWeather(GetSavedWeather()); } void SetWeather_Unused(u32 weather) { - SetSav1Weather(weather); - SetCurrentAndNextWeather(GetSav1Weather()); + SetSavedWeather(weather); + SetCurrentAndNextWeather(GetSavedWeather()); } void DoCurrentWeather(void) { - u8 weather = GetSav1Weather(); + u8 weather = GetSavedWeather(); if (weather == WEATHER_ABNORMAL) { @@ -2539,7 +2539,7 @@ void DoCurrentWeather(void) void ResumePausedWeather(void) { - u8 weather = GetSav1Weather(); + u8 weather = GetSavedWeather(); if (weather == WEATHER_ABNORMAL) { diff --git a/src/fieldmap.c b/src/fieldmap.c index aff72c4c68..4dbf981cf5 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -43,12 +43,12 @@ static void FillWestConnection(struct MapHeader const *mapHeader, struct MapHead static void FillEastConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset); static void InitBackupMapLayoutConnections(struct MapHeader *mapHeader); static void LoadSavedMapView(void); -static bool8 SkipCopyingMetatileFromSavedMap(u16* mapMetatilePtr, u16 mapWidth, u8 yMode); +static bool8 SkipCopyingMetatileFromSavedMap(u16* mapBlock, u16 mapWidth, u8 yMode); static struct MapConnection *GetIncomingConnection(u8 direction, int x, int y); static bool8 IsPosInIncomingConnectingMap(u8 direction, int x, int y, struct MapConnection *connection); static bool8 IsCoordInIncomingConnectingMap(int coord, int srcMax, int destMax, int offset); -#define MapGridGetBorderTileAt(x, y) ({ \ +#define GetBorderBlockAt(x, y)({ \ u16 block; \ int i; \ u16 *border = gMapHeader.mapLayout->border; \ @@ -56,12 +56,12 @@ static bool8 IsCoordInIncomingConnectingMap(int coord, int srcMax, int destMax, i = (x + 1) & 1; \ i += ((y + 1) & 1) * 2; \ \ - block = gMapHeader.mapLayout->border[i] | METATILE_COLLISION_MASK; \ + block = gMapHeader.mapLayout->border[i] | MAPGRID_COLLISION_MASK; \ }) #define AreCoordsWithinMapGridBounds(x, y) (x >= 0 && x < gBackupMapLayout.width && y >= 0 && y < gBackupMapLayout.height) -#define MapGridGetTileAt(x, y) (AreCoordsWithinMapGridBounds(x, y) ? gBackupMapLayout.map[x + gBackupMapLayout.width * y] : MapGridGetBorderTileAt(x, y)) +#define GetMapGridBlockAt(x, y) (AreCoordsWithinMapGridBounds(x, y) ? gBackupMapLayout.map[x + gBackupMapLayout.width * y] : GetBorderBlockAt(x, y)) struct MapHeader const *const GetMapHeaderFromConnection(struct MapConnection *connection) { @@ -87,13 +87,13 @@ void InitMapFromSavedGame(void) void InitBattlePyramidMap(bool8 setPlayerPosition) { - CpuFastFill(METATILE_ID_UNDEFINED << 16 | METATILE_ID_UNDEFINED, gBackupMapData, sizeof(gBackupMapData)); + CpuFastFill(MAPGRID_UNDEFINED << 16 | MAPGRID_UNDEFINED, gBackupMapData, sizeof(gBackupMapData)); GenerateBattlePyramidFloorLayout(gBackupMapData, setPlayerPosition); } void InitTrainerHillMap(void) { - CpuFastFill(METATILE_ID_UNDEFINED << 16 | METATILE_ID_UNDEFINED, gBackupMapData, sizeof(gBackupMapData)); + CpuFastFill(MAPGRID_UNDEFINED << 16 | MAPGRID_UNDEFINED, gBackupMapData, sizeof(gBackupMapData)); GenerateTrainerHillFloorLayout(gBackupMapData); } @@ -103,7 +103,7 @@ static void InitMapLayoutData(struct MapHeader *mapHeader) int width; int height; mapLayout = mapHeader->mapLayout; - CpuFastFill16(METATILE_ID_UNDEFINED, gBackupMapData, sizeof(gBackupMapData)); + CpuFastFill16(MAPGRID_UNDEFINED, gBackupMapData, sizeof(gBackupMapData)); gBackupMapLayout.map = gBackupMapData; width = mapLayout->width + MAP_OFFSET_W; gBackupMapLayout.width = width; @@ -342,46 +342,46 @@ static void FillEastConnection(struct MapHeader const *mapHeader, struct MapHead } } -u8 MapGridGetZCoordAt(int x, int y) +u8 MapGridGetElevationAt(int x, int y) { - u16 block = MapGridGetTileAt(x, y); + u16 block = GetMapGridBlockAt(x, y); - if (block == METATILE_ID_UNDEFINED) + if (block == MAPGRID_UNDEFINED) return 0; - return block >> METATILE_ELEVATION_SHIFT; + return block >> MAPGRID_ELEVATION_SHIFT; } bool8 MapGridIsImpassableAt(int x, int y) { - u16 block = MapGridGetTileAt(x, y); + u16 block = GetMapGridBlockAt(x, y); - if (block == METATILE_ID_UNDEFINED) + if (block == MAPGRID_UNDEFINED) return TRUE; - return (block & METATILE_COLLISION_MASK) >> METATILE_COLLISION_SHIFT; + return (block & MAPGRID_COLLISION_MASK) >> MAPGRID_COLLISION_SHIFT; } u32 MapGridGetMetatileIdAt(int x, int y) { - u16 block = MapGridGetTileAt(x, y); + u16 block = GetMapGridBlockAt(x, y); - if (block == METATILE_ID_UNDEFINED) - return MapGridGetBorderTileAt(x, y) & METATILE_ID_MASK; + if (block == MAPGRID_UNDEFINED) + return GetBorderBlockAt(x, y) & MAPGRID_METATILE_ID_MASK; - return block & METATILE_ID_MASK; + return block & MAPGRID_METATILE_ID_MASK; } u32 MapGridGetMetatileBehaviorAt(int x, int y) { u16 metatile = MapGridGetMetatileIdAt(x, y); - return GetBehaviorByMetatileId(metatile) & METATILE_BEHAVIOR_MASK; + return GetMetatileAttributesById(metatile) & METATILE_ATTR_BEHAVIOR_MASK; } u8 MapGridGetMetatileLayerTypeAt(int x, int y) { u16 metatile = MapGridGetMetatileIdAt(x, y); - return (GetBehaviorByMetatileId(metatile) & METATILE_ELEVATION_MASK) >> METATILE_ELEVATION_SHIFT; + return (GetMetatileAttributesById(metatile) & METATILE_ATTR_LAYER_MASK) >> METATILE_ATTR_LAYER_SHIFT; } void MapGridSetMetatileIdAt(int x, int y, u16 metatile) @@ -390,7 +390,7 @@ void MapGridSetMetatileIdAt(int x, int y, u16 metatile) if (AreCoordsWithinMapGridBounds(x, y)) { i = x + y * gBackupMapLayout.width; - gBackupMapLayout.map[i] = (gBackupMapLayout.map[i] & METATILE_ELEVATION_MASK) | (metatile & ~METATILE_ELEVATION_MASK); + gBackupMapLayout.map[i] = (gBackupMapLayout.map[i] & MAPGRID_ELEVATION_MASK) | (metatile & ~MAPGRID_ELEVATION_MASK); } } @@ -404,7 +404,7 @@ void MapGridSetMetatileEntryAt(int x, int y, u16 metatile) } } -u16 GetBehaviorByMetatileId(u16 metatile) +u16 GetMetatileAttributesById(u16 metatile) { u16 *attributes; if (metatile < NUM_METATILES_IN_PRIMARY) @@ -565,7 +565,7 @@ static void MoveMapViewToBackup(u8 direction) int GetMapBorderIdAt(int x, int y) { - if (MapGridGetTileAt(x, y) == METATILE_ID_UNDEFINED) + if (GetMapGridBlockAt(x, y) == MAPGRID_UNDEFINED) return CONNECTION_INVALID; if (x >= (gBackupMapLayout.width - (MAP_OFFSET + 1))) @@ -817,23 +817,23 @@ void MapGridSetMetatileImpassabilityAt(int x, int y, bool32 impassable) if (AreCoordsWithinMapGridBounds(x, y)) { if (impassable) - gBackupMapLayout.map[x + gBackupMapLayout.width * y] |= METATILE_COLLISION_MASK; + gBackupMapLayout.map[x + gBackupMapLayout.width * y] |= MAPGRID_COLLISION_MASK; else - gBackupMapLayout.map[x + gBackupMapLayout.width * y] &= ~METATILE_COLLISION_MASK; + gBackupMapLayout.map[x + gBackupMapLayout.width * y] &= ~MAPGRID_COLLISION_MASK; } } -static bool8 SkipCopyingMetatileFromSavedMap(u16* mapMetatilePtr, u16 mapWidth, u8 yMode) +static bool8 SkipCopyingMetatileFromSavedMap(u16* mapBlock, u16 mapWidth, u8 yMode) { if (yMode == 0xFF) return FALSE; if (yMode == 0) - mapMetatilePtr -= mapWidth; + mapBlock -= mapWidth; else - mapMetatilePtr += mapWidth; + mapBlock += mapWidth; - if (IsLargeBreakableDecoration(*mapMetatilePtr & METATILE_ID_MASK, yMode) == TRUE) + if (IsLargeBreakableDecoration(*mapBlock & MAPGRID_METATILE_ID_MASK, yMode) == TRUE) return TRUE; return FALSE; } diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index daa46ad765..9129c5208c 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -181,7 +181,7 @@ bool8 SetUpFieldMove_Cut(void) for (j = 0; j < CUT_NORMAL_SIDE; j++) { x = j - 1 + gPlayerFacingPosition.x; - if (MapGridGetZCoordAt(x, y) == gPlayerFacingPosition.height) + if (MapGridGetElevationAt(x, y) == gPlayerFacingPosition.elevation) { tileBehavior = MapGridGetMetatileBehaviorAt(x, y); if (MetatileBehavior_IsPokeGrass(tileBehavior) == TRUE @@ -238,7 +238,7 @@ bool8 SetUpFieldMove_Cut(void) if (tileCuttable == TRUE) { - if (MapGridGetZCoordAt(x, y) == gPlayerFacingPosition.height) + if (MapGridGetElevationAt(x, y) == gPlayerFacingPosition.elevation) { u8 tileArrayId = ((sHyperCutStruct[i].y * 5) + 12) + (sHyperCutStruct[i].x); tileBehavior = MapGridGetMetatileBehaviorAt(x, y); diff --git a/src/fldeff_escalator.c b/src/fldeff_escalator.c index 769e735623..0dc98c319c 100644 --- a/src/fldeff_escalator.c +++ b/src/fldeff_escalator.c @@ -126,13 +126,13 @@ static void Task_DrawEscalator(u8 taskId) SetEscalatorMetatile(taskId, sEscalatorMetatiles_1F_1, 0); break; case 2: - SetEscalatorMetatile(taskId, sEscalatorMetatiles_1F_2, METATILE_COLLISION_MASK); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_1F_2, MAPGRID_COLLISION_MASK); break; case 3: SetEscalatorMetatile(taskId, sEscalatorMetatiles_1F_3, 0); break; case 4: - SetEscalatorMetatile(taskId, sEscalatorMetatiles_2F_0, METATILE_COLLISION_MASK); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_2F_0, MAPGRID_COLLISION_MASK); break; case 5: SetEscalatorMetatile(taskId, sEscalatorMetatiles_2F_1, 0); diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index 9c166d0085..a303b8423b 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -61,13 +61,13 @@ static const struct FlashStruct sTransitionTypes[] = {}, }; -static const u16 sCaveTransitionPalette_White[] = INCBIN_U16("graphics/misc/cave_transition_white.gbapal"); -static const u16 sCaveTransitionPalette_Black[] = INCBIN_U16("graphics/misc/cave_transition_black.gbapal"); +static const u16 sCaveTransitionPalette_White[] = INCBIN_U16("graphics/cave_transition/white.gbapal"); +static const u16 sCaveTransitionPalette_Black[] = INCBIN_U16("graphics/cave_transition/black.gbapal"); -static const u16 sCaveTransitionPalette_Enter[] = INCBIN_U16("graphics/misc/cave_transition_enter.gbapal"); -static const u16 sCaveTransitionPalette_Exit[] = INCBIN_U16("graphics/misc/cave_transition_exit.gbapal"); -static const u32 sCaveTransitionTilemap[] = INCBIN_U32("graphics/misc/cave_transition_map.bin.lz"); -static const u32 sCaveTransitionTiles[] = INCBIN_U32("graphics/misc/cave_transition.4bpp.lz"); +static const u16 sCaveTransitionPalette_Enter[] = INCBIN_U16("graphics/cave_transition/enter.gbapal"); +static const u16 sCaveTransitionPalette_Exit[] = INCBIN_U16("graphics/cave_transition/exit.gbapal"); +static const u32 sCaveTransitionTilemap[] = INCBIN_U32("graphics/cave_transition/tilemap.bin.lz"); +static const u32 sCaveTransitionTiles[] = INCBIN_U32("graphics/cave_transition/tiles.4bpp.lz"); bool8 SetUpFieldMove_Flash(void) { diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c index c01babb68a..4f3f53fa60 100644 --- a/src/fldeff_misc.c +++ b/src/fldeff_misc.c @@ -840,9 +840,9 @@ void DoSecretBasePCTurnOffEffect(void) PlaySE(SE_PC_OFF); if (!VarGet(VAR_CURRENT_SECRET_BASE)) - MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_PC | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_PC | MAPGRID_COLLISION_MASK); else - MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_RegisterPC | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_RegisterPC | MAPGRID_COLLISION_MASK); CurrentMapDrawMetatileAt(x, y); } @@ -1083,7 +1083,7 @@ static void SpriteCB_SandPillar_BreakTop(struct Sprite *sprite) PlaySE(SE_M_ROCK_THROW); if (MapGridGetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1) == METATILE_SecretBase_SandOrnament_TopWall) - MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, METATILE_SecretBase_Wall_TopMid | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, METATILE_SecretBase_Wall_TopMid | MAPGRID_COLLISION_MASK); else MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, METATILE_SecretBase_SandOrnament_BrokenTop); @@ -1103,7 +1103,7 @@ static void SpriteCB_SandPillar_BreakBase(struct Sprite *sprite) } else { - MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], METATILE_SecretBase_SandOrnament_BrokenBase | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], METATILE_SecretBase_SandOrnament_BrokenBase | MAPGRID_COLLISION_MASK); CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6]); sprite->data[0] = 0; sprite->callback = SpriteCB_SandPillar_End; diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c index 6f4ce8002b..a30000e526 100644 --- a/src/fldeff_rocksmash.c +++ b/src/fldeff_rocksmash.c @@ -19,7 +19,6 @@ #include "constants/map_types.h" #include "constants/songs.h" -// static functions static void Task_DoFieldMove_Init(u8 taskId); static void Task_DoFieldMove_ShowMonAfterPose(u8 taskId); static void Task_DoFieldMove_WaitForMon(u8 taskId); @@ -28,14 +27,13 @@ static void Task_DoFieldMove_RunFunc(u8 taskId); static void FieldCallback_RockSmash(void); static void FieldMove_RockSmash(void); -// text bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId) { u8 objEventId; GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); - gPlayerFacingPosition.height = PlayerGetZCoord(); - objEventId = GetObjectEventIdByXYZ(gPlayerFacingPosition.x, gPlayerFacingPosition.y, gPlayerFacingPosition.height); + gPlayerFacingPosition.elevation = PlayerGetElevation(); + objEventId = GetObjectEventIdByPosition(gPlayerFacingPosition.x, gPlayerFacingPosition.y, gPlayerFacingPosition.elevation); if (gObjectEvents[objEventId].graphicsId != graphicsId) { return FALSE; diff --git a/src/frontier_pass.c b/src/frontier_pass.c index 8ce1e14dc4..b143587415 100644 --- a/src/frontier_pass.c +++ b/src/frontier_pass.c @@ -26,7 +26,6 @@ #include "overworld.h" #include "math_util.h" #include "constants/battle_frontier.h" -#include "constants/maps.h" #include "constants/rgb.h" #include "constants/region_map_sections.h" #include "constants/songs.h" @@ -174,7 +173,7 @@ static const u32 sHeads_Gfx[] = INCBIN_U32("graphics/frontier static const u32 sMapCursor_Gfx[] = INCBIN_U32("graphics/frontier_pass/map_cursor.4bpp.lz"); static const u32 sMapScreen_Tilemap[] = INCBIN_U32("graphics/frontier_pass/map_screen.bin.lz"); static const u32 sMapAndCard_ZoomedOut_Tilemap[] = INCBIN_U32("graphics/frontier_pass/small_map_and_card.bin.lz"); -static const u32 sUnusedData[] = INCBIN_U32("graphics/frontier_pass/unused.bin"); +static const u32 sCardBall_Filled_Tilemap[] = INCBIN_U32("graphics/frontier_pass/card_ball_filled.bin"); // Unused static const u32 sBattleRecord_Tilemap[] = INCBIN_U32("graphics/frontier_pass/record_frame.bin.lz"); static const u32 sMapAndCard_Zooming_Tilemap[] = INCBIN_U32("graphics/frontier_pass/small_map_and_card_affine.bin.lz"); diff --git a/src/graphics.c b/src/graphics.c index 73825aebf3..9f708f18b4 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -16,7 +16,7 @@ const u32 gUnusedPal_OldCharmap[] = INCBIN_U32("graphics/unused/old_charmap.gbap const u32 gSmokescreenImpactTiles[] = INCBIN_U32("graphics/battle_anims/sprites/smokescreen_impact.4bpp.lz"); const u32 gSmokescreenImpactPalette[] = INCBIN_U32("graphics/battle_anims/sprites/smokescreen_impact.gbapal.lz"); -#include "data/graphics/interface_pokeballs.h" +#include "data/graphics/pokeballs.h" const u32 gBlankGfxCompressed[] = INCBIN_U32("graphics/interface/blank.4bpp.lz"); @@ -147,7 +147,7 @@ const u32 gBattleAnimSpriteGfx_ClawSlash[] = INCBIN_U32("graphics/battle_anims/s const u32 gBattleAnimSpriteGfx_Scratch3[] = INCBIN_U32("graphics/battle_anims/sprites/scratch_3.4bpp.lz"); const u32 gBattleAnimSpriteGfx_Scratch2[] = INCBIN_U32("graphics/battle_anims/sprites/scratch_2.4bpp.lz"); -const u32 gPartyMenuHpBar_Gfx[] = INCBIN_U32("graphics/interface/party_menu_hpbar.4bpp.lz"); +const u32 gUnusedHpBar_Gfx[] = INCBIN_U32("graphics/battle_interface/hpbar_unused.4bpp.lz"); const u32 gBattleAnimSpriteGfx_BubbleBurst2[] = INCBIN_U32("graphics/battle_anims/sprites/bubble_burst_2.4bpp.lz"); @@ -165,7 +165,7 @@ const u32 gBattleAnimSpriteGfx_PinkHeart2[] = INCBIN_U32("graphics/battle_anims/ const u32 gBattleInterfaceGfx_UnusedWindow1[] = INCBIN_U32("graphics/battle_interface/unused_window.4bpp.lz"); const u32 gBattleInterfacePal_UnusedWindow1[] = INCBIN_U32("graphics/battle_interface/unused_window.gbapal.lz"); -const u32 gBattleInterfaceGfx_BattleBar[] = INCBIN_U32("graphics/interface/battle_bar.4bpp.lz"); +const u32 gBattleInterfaceGfx_BattleBar[] = INCBIN_U32("graphics/battle_interface/battle_bar.4bpp.lz"); const u32 gBattleAnimSpriteGfx_SapDrip[] = INCBIN_U32("graphics/battle_anims/sprites/sap_drip.4bpp.lz"); const u32 gBattleAnimSpritePal_SapDrip[] = INCBIN_U32("graphics/battle_anims/sprites/sap_drip.gbapal.lz"); @@ -435,15 +435,15 @@ const u32 gBattleAnimSpriteGfx_BlueFlames2[] = INCBIN_U32("graphics/battle_anims // Contest const u32 gJPContestGfx1[] = INCBIN_U32("graphics/contest/japanese/composite_1.4bpp.lz"); const u32 gJPContestPal[] = INCBIN_U32("graphics/contest/japanese/palette.gbapal.lz"); -const u32 gJPContestTilemap1[] = INCBIN_U32("graphics/contest/japanese/tilemap_1.bin.lz"); -const u32 gJPContestTilemap2[] = INCBIN_U32("graphics/contest/japanese/tilemap_2.bin.lz"); +const u32 gJPContestBgTilemap[] = INCBIN_U32("graphics/contest/japanese/bg.bin.lz"); +const u32 gJPContestWindowsTilemap[] = INCBIN_U32("graphics/contest/japanese/windows.bin.lz"); const u32 gJPContestGfx2[] = INCBIN_U32("graphics/contest/japanese/composite_2.4bpp.lz"); const u32 gContestInterfaceAudiencePalette[] = INCBIN_U32("graphics/contest/interface_audience.gbapal.lz"); const u32 gContestAudienceTilemap[] = INCBIN_U32("graphics/contest/audience.bin.lz"); const u32 gContestInterfaceTilemap[] = INCBIN_U32("graphics/contest/interface.bin.lz"); -const u32 gContestUnusedTilemap1[] = INCBIN_U32("graphics/contest/unused_tilemap_1.bin.lz"); -const u32 gContestUnusedTilemap2[] = INCBIN_U32("graphics/contest/unused_tilemap_2.bin.lz"); +const u32 gJPContestInterfaceTilemap[] = INCBIN_U32("graphics/contest/japanese/interface.bin.lz"); +const u32 gJPContestAudienceTilemap[] = INCBIN_U32("graphics/contest/japanese/audience.bin.lz"); const u32 gContestCurtainTilemap[] = INCBIN_U32("graphics/contest/curtain.bin.lz"); const u32 gContestInterfaceGfx[] = INCBIN_U32("graphics/contest/interface.4bpp.lz"); @@ -950,9 +950,9 @@ const u32 gVsLettersGfx[] = INCBIN_U32("graphics/battle_transitions/vs.4bpp.lz") #include "data/graphics/battle_terrain.h" // Battle Dome -const u32 gDomeTourneyBg_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_bg.4bpp.lz"); +const u32 gDomeTourneyTree_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_tree.4bpp.lz"); const u32 gDomeTourneyLine_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_line.4bpp.lz"); // the red glow mask for the tourney advancement lines -const u32 gDomeTourneyLineMask_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_line_mask_map.bin.lz"); +const u32 gDomeTourneyTree_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_tree.bin.lz"); const u32 gDomeTourneyLineDown_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_line_down_map.bin.lz"); const u32 gDomeTourneyLineUp_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_line_up_map.bin.lz"); const u32 gDomeTourneyInfoCard_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_info_card.4bpp.lz"); @@ -967,7 +967,7 @@ const u32 gBattleArenaJudgementSymbolsGfx[] = INCBIN_U32("graphics/battle_fronti const u32 gBattleArenaJudgementSymbolsPalette[] = INCBIN_U32("graphics/battle_frontier/arena_judgement_symbols.gbapal.lz"); const u32 gBattleWindowTextPalette[] = INCBIN_U32("graphics/battle_interface/text.gbapal.lz"); -const u16 gPPTextPalette[] = INCBIN_U16("graphics/battle_frontier/text_pp.gbapal"); +const u16 gPPTextPalette[] = INCBIN_U16("graphics/battle_interface/text_pp.gbapal"); const u16 gTilesetAnims_BattleDomePals0_0[] = INCBIN_U16("graphics/battle_frontier/dome_anim1.gbapal"); const u16 gTilesetAnims_BattleDomePals0_1[] = INCBIN_U16("graphics/battle_frontier/dome_anim2.gbapal"); @@ -1112,13 +1112,13 @@ const u32 gBattleAnimSpritePal_Slash2[] = INCBIN_U32("graphics/battle_anims/spri const u32 gBattleAnimSpriteGfx_WhiteShadow[] = INCBIN_U32("graphics/battle_anims/sprites/white_shadow.4bpp.lz"); const u32 gBattleAnimSpritePal_WhiteShadow[] = INCBIN_U32("graphics/battle_anims/sprites/white_shadow.gbapal.lz"); -const u32 gPartyMenuBg_Gfx[] = INCBIN_U32("graphics/interface/party_menu_bg.4bpp.lz"); -const u32 gPartyMenuBg_Pal[] = INCBIN_U32("graphics/interface/party_menu_bg.gbapal.lz"); -const u32 gPartyMenuBg_Tilemap[] = INCBIN_U32("graphics/interface/party_menu_bg.bin.lz"); +const u32 gPartyMenuBg_Gfx[] = INCBIN_U32("graphics/party_menu/bg.4bpp.lz"); +const u32 gPartyMenuBg_Pal[] = INCBIN_U32("graphics/party_menu/bg.gbapal.lz"); +const u32 gPartyMenuBg_Tilemap[] = INCBIN_U32("graphics/party_menu/bg.bin.lz"); -const u32 gPartyMenuPokeball_Gfx[] = INCBIN_U32("graphics/interface/party_menu_pokeball.4bpp.lz"); -const u32 gPartyMenuPokeballSmall_Gfx[] = INCBIN_U32("graphics/interface/party_menu_pokeball_small.4bpp.lz"); //unused -const u32 gPartyMenuPokeball_Pal[] = INCBIN_U32("graphics/interface/party_menu_pokeball.gbapal.lz"); +const u32 gPartyMenuPokeball_Gfx[] = INCBIN_U32("graphics/party_menu/pokeball.4bpp.lz"); +const u32 gPartyMenuPokeballSmall_Gfx[] = INCBIN_U32("graphics/party_menu/pokeball_small.4bpp.lz"); //unused +const u32 gPartyMenuPokeball_Pal[] = INCBIN_U32("graphics/party_menu/pokeball.gbapal.lz"); const u32 gStatusGfx_Icons[] = INCBIN_U32("graphics/interface/status_icons.4bpp.lz"); const u32 gStatusPal_Icons[] = INCBIN_U32("graphics/interface/status_icons.gbapal.lz"); @@ -1126,50 +1126,50 @@ const u32 gStatusPal_Icons[] = INCBIN_U32("graphics/interface/status_icons.gbapa const u32 gMoveTypes_Gfx[] = INCBIN_U32("graphics/types/move_types.4bpp.lz"); const u32 gMoveTypes_Pal[] = INCBIN_U32("graphics/types/move_types.gbapal.lz"); -const u32 gSummaryMoveSelect_Gfx[] = INCBIN_U32("graphics/interface/summary_frames.4bpp.lz"); -const u32 gSummaryMoveSelect_Pal[] = INCBIN_U32("graphics/interface/summary_frames.gbapal.lz"); +const u32 gSummaryMoveSelect_Gfx[] = INCBIN_U32("graphics/summary_screen/move_select.4bpp.lz"); +const u32 gSummaryMoveSelect_Pal[] = INCBIN_U32("graphics/summary_screen/move_select.gbapal.lz"); -const u32 gSummaryScreen_Gfx[] = INCBIN_U32("graphics/interface/summary_screen.4bpp.lz"); -const u32 gSummaryScreen_Pal[] = INCBIN_U32("graphics/interface/summary_screen.gbapal.lz"); -const u32 gSummaryPage_Info_Tilemap[] = INCBIN_U32("graphics/interface/summary_page_info.bin.lz"); -const u32 gSummaryPage_Skills_Tilemap[] = INCBIN_U32("graphics/interface/summary_page_skills.bin.lz"); -const u32 gSummaryPage_BattleMoves_Tilemap[] = INCBIN_U32("graphics/interface/summary_page_battle_moves.bin.lz"); -const u32 gSummaryPage_ContestMoves_Tilemap[] = INCBIN_U32("graphics/interface/summary_page_contest_moves.bin.lz"); -const u32 gSummaryPage_InfoCopy_Tilemap[] = INCBIN_U32("graphics/interface/summary_page_info_copy.bin.lz"); +const u32 gSummaryScreen_Gfx[] = INCBIN_U32("graphics/summary_screen/tiles.4bpp.lz"); +const u32 gSummaryScreen_Pal[] = INCBIN_U32("graphics/summary_screen/tiles.gbapal.lz"); +const u32 gSummaryPage_Info_Tilemap[] = INCBIN_U32("graphics/summary_screen/page_info.bin.lz"); +const u32 gSummaryPage_Skills_Tilemap[] = INCBIN_U32("graphics/summary_screen/page_skills.bin.lz"); +const u32 gSummaryPage_BattleMoves_Tilemap[] = INCBIN_U32("graphics/summary_screen/page_battle_moves.bin.lz"); +const u32 gSummaryPage_ContestMoves_Tilemap[] = INCBIN_U32("graphics/summary_screen/page_contest_moves.bin.lz"); +const u32 gSummaryPage_InfoEgg_Tilemap[] = INCBIN_U32("graphics/summary_screen/page_info_egg.bin.lz"); -const u32 gBagMaleTiles[] = INCBIN_U32("graphics/misc/bag_male.4bpp.lz"); -const u32 gBagFemaleTiles[] = INCBIN_U32("graphics/misc/bag_female.4bpp.lz"); -const u32 gBagPalette[] = INCBIN_U32("graphics/misc/bag.gbapal.lz"); +const u32 gBagMaleTiles[] = INCBIN_U32("graphics/bag/bag_male.4bpp.lz"); +const u32 gBagFemaleTiles[] = INCBIN_U32("graphics/bag/bag_female.4bpp.lz"); +const u32 gBagPalette[] = INCBIN_U32("graphics/bag/bag.gbapal.lz"); -const u32 gBagScreenMale_Pal[] = INCBIN_U32("graphics/interface/bag_screen_male.gbapal.lz"); -const u32 gBagScreenFemale_Pal[] = INCBIN_U32("graphics/interface/bag_screen_female.gbapal.lz"); +const u32 gBagScreenMale_Pal[] = INCBIN_U32("graphics/bag/menu_male.gbapal.lz"); +const u32 gBagScreenFemale_Pal[] = INCBIN_U32("graphics/bag/menu_female.gbapal.lz"); -const u32 gBagScreen_Gfx[] = INCBIN_U32("graphics/interface/bag_screen.4bpp.lz"); -const u32 gBagScreen_GfxTileMap[] = INCBIN_U32("graphics/interface/bag_screen_tilemap.bin.lz"); +const u32 gBagScreen_Gfx[] = INCBIN_U32("graphics/bag/menu.4bpp.lz"); +const u32 gBagScreen_GfxTileMap[] = INCBIN_U32("graphics/bag/menu.bin.lz"); -const u32 gBattlePyramidBag_Gfx[] = INCBIN_U32("graphics/interface/bag_pyramid.4bpp.lz"); -const u32 gBattlePyramidBag_Pal[] = INCBIN_U32("graphics/interface/bag_pyramid.gbapal.lz"); // female palette is first and male is second. -const u32 gBattlePyramidBagTilemap[] = INCBIN_U32("graphics/interface/bag_pyramid_tilemap.bin.lz"); -const u32 gBattlePyramidBagInterface_Pal[] = INCBIN_U32("graphics/interface/bag_pyramid_interface.gbapal.lz"); +const u32 gBattlePyramidBag_Gfx[] = INCBIN_U32("graphics/bag/bag_pyramid.4bpp.lz"); +const u32 gBattlePyramidBag_Pal[] = INCBIN_U32("graphics/bag/bag_pyramid.gbapal.lz"); // female palette is first and male is second. +const u32 gBattlePyramidBagTilemap[] = INCBIN_U32("graphics/bag/menu_pyramid.bin.lz"); +const u32 gBattlePyramidBagInterface_Pal[] = INCBIN_U32("graphics/bag/menu_pyramid.gbapal.lz"); -const u32 gBagSwapLineGfx[] = INCBIN_U32("graphics/interface/bag_swap.4bpp.lz"); -const u32 gBagSwapLinePal[] = INCBIN_U32("graphics/interface/bag_swap.gbapal.lz"); +const u32 gSwapLineGfx[] = INCBIN_U32("graphics/interface/swap_line.4bpp.lz"); +const u32 gSwapLinePal[] = INCBIN_U32("graphics/interface/swap_line.gbapal.lz"); -const u32 gBuyMenuFrame_Gfx[] = INCBIN_U32("graphics/interface/mart_frame.4bpp.lz"); -const u32 gMenuMoneyPal[] = INCBIN_U32("graphics/interface/mart_frame.gbapal.lz"); -const u32 gBuyMenuFrame_Tilemap[] = INCBIN_U32("graphics/interface/mart_frame.bin.lz"); - -const u32 gMenuMoneyGfx[] = INCBIN_U32("graphics/interface/money.4bpp.lz"); +const u32 gShopMenu_Gfx[] = INCBIN_U32("graphics/shop/menu.4bpp.lz"); +const u32 gShopMenu_Pal[] = INCBIN_U32("graphics/shop/menu.gbapal.lz"); +const u32 gShopMenu_Tilemap[] = INCBIN_U32("graphics/shop/menu.bin.lz"); +const u32 gShopMenuMoney_Gfx[] = INCBIN_U32("graphics/shop/money.4bpp.lz"); // Pokeblock -const u32 gMenuPokeblock_Gfx[] = INCBIN_U32("graphics/interface/pokeblock_case_frame.4bpp.lz"); -const u32 gMenuPokeblock_Pal[] = INCBIN_U32("graphics/interface/pokeblock_case_frame.gbapal.lz"); +const u32 gMenuPokeblock_Gfx[] = INCBIN_U32("graphics/pokeblock/menu.4bpp.lz"); +const u32 gMenuPokeblock_Pal[] = INCBIN_U32("graphics/pokeblock/menu.gbapal.lz"); -const u32 gMenuPokeblockDevice_Gfx[] = INCBIN_U32("graphics/interface/pokeblock_device.4bpp.lz"); -const u32 gMenuPokeblockDevice_Pal[] = INCBIN_U32("graphics/interface/pokeblock_device.gbapal.lz"); +const u32 gMenuPokeblockDevice_Gfx[] = INCBIN_U32("graphics/pokeblock/device.4bpp.lz"); +const u32 gMenuPokeblockDevice_Pal[] = INCBIN_U32("graphics/pokeblock/device.gbapal.lz"); + +const u32 gMenuPokeblock_Tilemap[] = INCBIN_U32("graphics/pokeblock/menu.bin.lz"); -const u32 gMenuPokeblock_Tilemap[] = INCBIN_U32("graphics/interface/pokeblock.bin.lz"); const u32 gPokeblock_Gfx[] = INCBIN_U32("graphics/pokeblock/pokeblock.4bpp.lz"); const u32 gPokeblockRed_Pal[] = INCBIN_U32("graphics/pokeblock/red.gbapal.lz"); const u32 gPokeblockBlue_Pal[] = INCBIN_U32("graphics/pokeblock/blue.gbapal.lz"); @@ -1186,7 +1186,7 @@ const u32 gPokeblockBlack_Pal[] = INCBIN_U32("graphics/pokeblock/black.gbapal.lz const u32 gPokeblockWhite_Pal[] = INCBIN_U32("graphics/pokeblock/white.gbapal.lz"); const u32 gPokeblockGold_Pal[] = INCBIN_U32("graphics/pokeblock/gold.gbapal.lz"); -const u32 gPokeblockFeedBg_Tilemap[] = INCBIN_U32("graphics/interface/pokeblock_feeding_bg_map.bin.lz"); +const u32 gPokeblockFeedBg_Tilemap[] = INCBIN_U32("graphics/pokeblock/feeding_bg.bin.lz"); #include "data/graphics/berries.h" #include "data/graphics/rayquaza_scene.h" @@ -1259,9 +1259,9 @@ const u32 gPokedexSearchMenu_Gfx[] = INCBIN_U32("graphics/pokedex/search_menu.4b const u32 gPokedexSearchMenuNational_Tilemap[] = INCBIN_U32("graphics/pokedex/search_menu_national.bin.lz"); const u32 gPokedexSearchMenuHoenn_Tilemap[] = INCBIN_U32("graphics/pokedex/search_menu_hoenn.bin.lz"); -const u16 gSummaryScreenPowAcc_Tilemap[] = INCBIN_U16("graphics/interface/powacc_tilemap.bin"); -const u16 gSummaryScreenAppealJam_Tilemap[] = INCBIN_U16("graphics/interface/appealjam_tilemap.bin"); -const u16 gSummaryScreenWindow_Tilemap[] = INCBIN_U16("graphics/interface/summary.bin"); +const u16 gSummaryScreen_MoveEffect_Battle_Tilemap[] = INCBIN_U16("graphics/summary_screen/effect_battle.bin"); +const u16 gSummaryScreen_MoveEffect_Contest_Tilemap[] = INCBIN_U16("graphics/summary_screen/effect_contest.bin"); +const u16 gSummaryScreen_MoveEffect_Cancel_Tilemap[] = INCBIN_U16("graphics/summary_screen/effect_cancel.bin"); const u16 gIntroCopyright_Pal[] = INCBIN_U16("graphics/intro/copyright.gbapal"); const u32 gIntroCopyright_Gfx[] = INCBIN_U32("graphics/intro/copyright.4bpp.lz"); @@ -1270,14 +1270,12 @@ const u32 gIntroCopyright_Tilemap[] = INCBIN_U32("graphics/intro/copyright.bin.l const u16 gPokedexAreaScreenAreaUnknown_Pal[] = INCBIN_U16("graphics/pokedex/area_unknown.gbapal"); const u32 gPokedexAreaScreenAreaUnknown_Gfx[] = INCBIN_U32("graphics/pokedex/area_unknown.4bpp.lz"); -// seems to be fire red leftovers, but the menu elements is reused in the item menu for TM descriptions. - const u16 gMenuInfoElements1_Pal[] = INCBIN_U16("graphics/interface/menu_info1.gbapal"); const u16 gMenuInfoElements2_Pal[] = INCBIN_U16("graphics/interface/menu_info2.gbapal"); const u16 gMenuInfoElements3_Pal[] = INCBIN_U16("graphics/interface/menu_info3.gbapal"); -const u8 gMenuInfoElements_Gfx[] = INCBIN_U8("graphics/interface/menu_info.4bpp"); //the types are reused for item menu +const u8 gMenuInfoElements_Gfx[] = INCBIN_U8("graphics/interface/menu_info.4bpp"); -const u8 gBagMenuHMIcon_Gfx[] = INCBIN_U8("graphics/interface/hm.4bpp"); +const u8 gBagMenuHMIcon_Gfx[] = INCBIN_U8("graphics/bag/hm.4bpp"); // contest results screen @@ -1331,8 +1329,8 @@ const u32 gRegionMapCityZoomText_Gfx[] = INCBIN_U32("graphics/pokenav/city_zoom_ const u16 gPokenavConditionCancel_Pal[] = INCBIN_U16("graphics/pokenav/condition/cancel.gbapal"); const u8 gPokenavConditionCancel_Gfx[] = INCBIN_U8("graphics/pokenav/condition/cancel.4bpp"); -const u16 gMonMarkingsMenu_Pal[] = INCBIN_U16("graphics/misc/mon_markings_menu.gbapal"); -const u8 gMonMarkingsMenu_Gfx[] = INCBIN_U8("graphics/misc/mon_markings_menu.4bpp"); +const u16 gMonMarkingsMenu_Pal[] = INCBIN_U16("graphics/interface/mon_markings_menu.gbapal"); +const u8 gMonMarkingsMenu_Gfx[] = INCBIN_U8("graphics/interface/mon_markings_menu.4bpp"); const u16 gBerryBlenderMiscPalette[] = INCBIN_U16("graphics/berry_blender/misc.gbapal"); const u16 gBerryBlenderArrowPalette[] = INCBIN_U16("graphics/berry_blender/arrow.gbapal"); @@ -1449,9 +1447,9 @@ const u32 gTilesetTiles_General[] = INCBIN_U32("data/tilesets/primary/general/ti // trade/egg hatch -const u16 gTradeGba_Pal[] = INCBIN_U16("graphics/link/gba.gbapal"); -const u16 gTradeGba2_Pal[] = INCBIN_U16("graphics/link/gba_pal2.gbapal"); -const u8 gTradeGba_Gfx[] = INCBIN_U8("graphics/link/gba.4bpp"); +const u16 gTradeGba_Pal[] = INCBIN_U16("graphics/trade/gba.gbapal"); +const u16 gTradeGba2_Pal[] = INCBIN_U16("graphics/trade/gba_pal2.gbapal"); +const u8 gTradeGba_Gfx[] = INCBIN_U8("graphics/trade/gba.4bpp"); static const u16 sEmptyPal[16] = {0}; @@ -1505,12 +1503,12 @@ const u16 gMonIconPalettes[][16] = const u16 gTitleScreenBgPalettes[] = INCBIN_U16("graphics/title_screen/pokemon_logo.gbapal", "graphics/title_screen/rayquaza_and_clouds.gbapal"); const u16 gTitleScreenEmeraldVersionPal[] = INCBIN_U16("graphics/title_screen/emerald_version.gbapal"); -const u32 gTitleScreenCloudsTilemap[] = INCBIN_U32("graphics/title_screen/title_screen1.bin.lz"); +const u32 gTitleScreenCloudsTilemap[] = INCBIN_U32("graphics/title_screen/clouds.bin.lz"); const u32 gTitleScreenPokemonLogoGfx[] = INCBIN_U32("graphics/title_screen/pokemon_logo.8bpp.lz"); const u32 gTitleScreenEmeraldVersionGfx[] = INCBIN_U32("graphics/title_screen/emerald_version.8bpp.lz"); const u16 gTitleScreenPressStartPal[] = INCBIN_U16("graphics/title_screen/press_start.gbapal"); const u32 gTitleScreenPressStartGfx[] = INCBIN_U32("graphics/title_screen/press_start.4bpp.lz"); -const u32 gTitleScreenPokemonLogoTilemap[] = INCBIN_U32("graphics/title_screen/title_screen2.bin.lz"); +const u32 gTitleScreenPokemonLogoTilemap[] = INCBIN_U32("graphics/title_screen/pokemon_logo.bin.lz"); // size in LoadPalette calls is reported as 0xD0 << 1, which is 0x1A0, but palette is only 0x100 bytes long so it loads garbage as well const u16 gFrontierPassBg_Pal[][16] = INCBIN_U16("graphics/frontier_pass/bg.gbapal"); @@ -1523,7 +1521,7 @@ const u16 gFrontierPassCancelButtonHighlighted_Tilemap[] = INCBIN_U16("graphics/ // Berry Crush const u16 gBerryCrush_Crusher_Pal[] = INCBIN_U16("graphics/berry_crush/crusher.gbapal"); const u32 gBerryCrush_Crusher_Gfx[] = INCBIN_U32("graphics/berry_crush/crusher.4bpp.lz"); -const u32 gBerryCrush_Crusher_Tilemap[] = INCBIN_U32("graphics/berry_crush/crusher.bin.lz"); +const u32 gBerryCrush_TextWindows_Tilemap[] = INCBIN_U32("graphics/berry_crush/text_windows.bin.lz"); // random garbage at the end. static const u8 sEmpty3[0x54BAC] = {0}; diff --git a/src/heal_location.c b/src/heal_location.c index 5eda24d67a..ab8dc52650 100644 --- a/src/heal_location.c +++ b/src/heal_location.c @@ -1,6 +1,5 @@ #include "global.h" #include "heal_location.h" -#include "constants/maps.h" #include "constants/heal_locations.h" #include "data/heal_locations.h" diff --git a/src/item.c b/src/item.c index 1560342629..63287693a8 100644 --- a/src/item.c +++ b/src/item.c @@ -913,9 +913,9 @@ u8 ItemId_GetImportance(u16 itemId) } // unused -u8 ItemId_GetUnknownValue(u16 itemId) +u8 ItemId_GetRegistrability(u16 itemId) { - return gItems[SanitizeItemId(itemId)].unk19; + return gItems[SanitizeItemId(itemId)].registrability; } u8 ItemId_GetPocket(u16 itemId) diff --git a/src/item_menu.c b/src/item_menu.c index 56ef3cba32..9eaca9597d 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -372,7 +372,7 @@ static const struct ScrollArrowsTemplate sBagScrollArrowsTemplate = { .palNum = 0, }; -static const u8 sRegisteredSelect_Gfx[] = INCBIN_U8("graphics/interface/select_button.4bpp"); +static const u8 sRegisteredSelect_Gfx[] = INCBIN_U8("graphics/bag/select_button.4bpp"); enum { COLORID_NORMAL, diff --git a/src/item_menu_icons.c b/src/item_menu_icons.c index 60de132b04..a5c265f908 100644 --- a/src/item_menu_icons.c +++ b/src/item_menu_icons.c @@ -33,8 +33,8 @@ static void SpriteCB_SwitchPocketRotatingBallInit(struct Sprite *sprite); static void SpriteCB_SwitchPocketRotatingBallContinue(struct Sprite *sprite); // static const rom data -static const u16 gRotatingBall_Pal[] = INCBIN_U16("graphics/interface/bag_spinner.gbapal"); -static const u8 gRotatingBall[] = INCBIN_U8("graphics/interface/bag_spinner.4bpp"); +static const u16 sRotatingBall_Pal[] = INCBIN_U16("graphics/bag/rotating_ball.gbapal"); +static const u8 sRotatingBall_Gfx[] = INCBIN_U8("graphics/bag/rotating_ball.4bpp"); static const u8 gCherryUnused[] = INCBIN_U8("graphics/unused/cherry.4bpp"); static const u16 gCherryUnused_Pal[] = INCBIN_U16("graphics/unused/cherry.gbapal"); @@ -200,12 +200,12 @@ static const union AffineAnimCmd *const sRotatingBallAnimCmds_FullRotation[] = static const struct SpriteSheet sRotatingBallTable = { - gRotatingBall, 0x80, TAG_ROTATING_BALL_GFX + sRotatingBall_Gfx, 0x80, TAG_ROTATING_BALL_GFX }; static const struct SpritePalette sRotatingBallPaletteTable = { - gRotatingBall_Pal, TAG_ROTATING_BALL_GFX + sRotatingBall_Pal, TAG_ROTATING_BALL_GFX }; static const struct SpriteTemplate sRotatingBallSpriteTemplate = diff --git a/src/item_use.c b/src/item_use.c index 6e33dad33e..61e84e5ba2 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -404,25 +404,25 @@ static bool8 IsHiddenItemPresentInConnection(struct MapConnection *connection, i switch (connection->direction) { // same weird temp variable behavior seen in IsHiddenItemPresentAtCoords - case 2: + case CONNECTION_NORTH: localOffset = connection->offset + MAP_OFFSET; localX = x - localOffset; localLength = mapHeader->mapLayout->height - MAP_OFFSET; localY = localLength + y; // additions are reversed for some reason break; - case 1: + case CONNECTION_SOUTH: localOffset = connection->offset + MAP_OFFSET; localX = x - localOffset; localLength = gMapHeader.mapLayout->height + MAP_OFFSET; localY = y - localLength; break; - case 3: + case CONNECTION_WEST: localLength = mapHeader->mapLayout->width - MAP_OFFSET; localX = localLength + x; // additions are reversed for some reason localOffset = connection->offset + MAP_OFFSET; localY = y - localOffset; break; - case 4: + case CONNECTION_EAST: localLength = gMapHeader.mapLayout->width + MAP_OFFSET; localX = x - localLength; localOffset = connection->offset + MAP_OFFSET; @@ -726,11 +726,11 @@ static void ItemUseOnFieldCB_WailmerPailBerry(u8 taskId) static bool8 TryToWaterSudowoodo(void) { u16 x, y; - u8 z; + u8 elevation; u8 objId; GetXYCoordsOneStepInFrontOfPlayer(&x, &y); - z = PlayerGetZCoord(); - objId = GetObjectEventIdByXYZ(x, y, z); + elevation = PlayerGetElevation(); + objId = GetObjectEventIdByPosition(x, y, elevation); if (objId == OBJECT_EVENTS_COUNT || gObjectEvents[objId].graphicsId != OBJ_EVENT_GFX_SUDOWOODO) return FALSE; else diff --git a/src/libgcnmultiboot.s b/src/libgcnmultiboot.s index 5ecc7d2f90..968a0836ec 100644 --- a/src/libgcnmultiboot.s +++ b/src/libgcnmultiboot.s @@ -40,7 +40,7 @@ .text thumb_func_start GameCubeMultiBoot_Hash -GameCubeMultiBoot_Hash: @ 82DED70 +GameCubeMultiBoot_Hash: push {r4,lr} ldr r4, pool_HashVal eors r3, r1 @@ -61,7 +61,7 @@ GameCubeMultiBoot_Hash_SkipEor: thumb_func_start GameCubeMultiBoot_Main @ void GameCubeMultiBoot_Main(struct GameCubeMultiBoot *mb); -GameCubeMultiBoot_Main: @ 82DED84 +GameCubeMultiBoot_Main: @ If there is no interrupt handler, skip counter manipulation ldr r1, [r0, GCMB_STRUCT_SERIAL_INTR_HANDLER] cmp r1, 0 @@ -246,7 +246,7 @@ pool_NintendoLogo: .4byte RomHeaderNintendoLogo thumb_func_start GameCubeMultiBoot_ExecuteProgram @ void GameCubeMultiBoot_ExecuteProgram(struct GameCubeMultiBoot *mb); -GameCubeMultiBoot_ExecuteProgram: @ 82DEE84 +GameCubeMultiBoot_ExecuteProgram: @ If there's no multiboot image ready, just return to caller ldrb r1, [r0, GCMB_STRUCT_MBPROGRESS] cmp r1, MBPROGRESS_READY_TO_BOOT @@ -265,7 +265,7 @@ GameCubeMultiBoot_ExecuteProgram_Fail: thumb_func_start GameCubeMultiBoot_Init @ void GameCubeMultiBoot_Init(struct GameCubeMultiBoot *mb); -GameCubeMultiBoot_Init: @ 82DEE98 +GameCubeMultiBoot_Init: ldr r3, pool_InterruptRegs @ Save IME register. @@ -336,7 +336,7 @@ GameCubeMultiBoot_Init_ClearStructLoop: non_word_aligned_thumb_func_start GameCubeMultiBoot_HandleSerialInterrupt @ void GameCubeMultiBoot_HandleSerialInterrupt(struct GameCubeMultiBoot *mb); -GameCubeMultiBoot_HandleSerialInterrupt: @ 82DEEE2 +GameCubeMultiBoot_HandleSerialInterrupt: ldr r3, pool_SerialRegs @ Acknowledge reset/receive/send flags. @@ -400,7 +400,7 @@ GameCubeMultiBoot_BeginHandshake: .align 2, 0 -GcMbIntrHandler_CheckGameCodeSent: @ 82DEF24 +GcMbIntrHandler_CheckGameCodeSent: lsls r1, 31 bcc GcMbIntrHandler_Stop @ stop if send failed bmi GameCubeMultiBoot_CheckHandshakeResponse @ branch if receive is complete @@ -412,7 +412,7 @@ GcMbIntrHandler_CheckGameCodeSent: @ 82DEF24 .align 2, 0 -GcMbIntrHandler_CheckHandshakeResponse: @ 82DEF30 +GcMbIntrHandler_CheckHandshakeResponse: lsrs r1, 1 @ is receive complete? bcc GcMbIntrHandler_Stop @ stop if not @@ -429,7 +429,7 @@ GameCubeMultiBoot_CheckHandshakeResponse: .align 2, 0 -GcMbIntrHandler_ReceiveKeyA: @ 82DEF44 +GcMbIntrHandler_ReceiveKeyA: lsrs r1, 1 @ is receive complete? bcc GcMbIntrHandler_Stop @ branch if not ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120] @@ -473,7 +473,7 @@ GameCubeMultiBoot_KeyBCheckEnd: .align 2, 0 -GcMbIntrHandler_CheckKeyBSent: @ 82DEF84 +GcMbIntrHandler_CheckKeyBSent: lsls r1, 31 bcc GcMbIntrHandler_Stop @ stop if send failed bmi GameCubeMultiBoot_CheckImageSizeResponse @ branch if receive is complete @@ -482,7 +482,7 @@ GcMbIntrHandler_CheckKeyBSent: @ 82DEF84 .align 2, 0 -GcMbIntrHandler_CheckImageSizeResponse: @ 82DEF90 +GcMbIntrHandler_CheckImageSizeResponse: lsrs r1, 1 @ is receive complete? bcc GcMbIntrHandler_Stop @ branch if not GameCubeMultiBoot_CheckImageSizeResponse: @@ -505,7 +505,7 @@ GcMbIntrHandler_StopIfNotEqual: .align 2, 0 -GcMbIntrHandler_CheckImageResponse: @ 82DEFB4 +GcMbIntrHandler_CheckImageResponse: lsrs r1, 1 @ is receive complete? bcc GcMbIntrHandler_Stop @ branch if not ldr r2, [r0, GCMB_STRUCT_CUR_DEST_PTR] @@ -553,7 +553,7 @@ GcMbIntrHandler_StopIfSendFailed: .align 2, 0 -GcMbIntrHandler_CheckKeyCDerivationSent: @ 82DEFF0 +GcMbIntrHandler_CheckKeyCDerivationSent: lsls r1, 31 bcc GcMbIntrHandler_StopIfSendFailed @ branch if send failed bmi GameCubeMultiBoot_CheckBootKeyResponse @ branch if receive is complete @@ -562,7 +562,7 @@ GcMbIntrHandler_CheckKeyCDerivationSent: @ 82DEFF0 .align 2, 0 -GcMbIntrHandler_CheckBootKeyResponse: @ 82DEFFC +GcMbIntrHandler_CheckBootKeyResponse: lsrs r1, 1 @ is receive complete? bcc GcMbIntrHandler_StopIfSendFailed @ branch if not @@ -580,14 +580,14 @@ GameCubeMultiBoot_CheckBootKeyResponse: .align 2, 0 -GcMbIntrHandler_StopUnconditionally: @ 82DF010 +GcMbIntrHandler_StopUnconditionally: b GcMbIntrHandler_Stop thumb_func_end GameCubeMultiBoot_HandleSerialInterrupt non_word_aligned_thumb_func_start GameCubeMultiBoot_Quit @ void GameCubeMultiBoot_Quit(); -GameCubeMultiBoot_Quit: @ 82DF012 +GameCubeMultiBoot_Quit: ldr r3, pool_InterruptRegs @ Save IME register. diff --git a/src/libisagbprn.c b/src/libisagbprn.c index 69c6986aef..7a70cf41fa 100644 --- a/src/libisagbprn.c +++ b/src/libisagbprn.c @@ -31,7 +31,7 @@ void AGBPrintFlush1Block(void); void AGBPrintInit(void) { volatile struct AGBPrintStruct *pPrint = (struct AGBPrintStruct *)AGB_PRINT_STRUCT_ADDR; - u16 *pWSCNT = ®_WAITCNT; + vu16 *pWSCNT = ®_WAITCNT; u16 *pProtect = (u16 *)AGB_PRINT_PROTECT_ADDR; u16 nOldWSCNT = *pWSCNT; *pWSCNT = WSCNT_DATA; @@ -57,7 +57,7 @@ static void AGBPutcInternal(const char cChr) void AGBPutc(const char cChr) { - u16 *pWSCNT = ®_WAITCNT; + vu16 *pWSCNT = ®_WAITCNT; u16 nOldWSCNT = *pWSCNT; volatile struct AGBPrintStruct *pPrint; *pWSCNT = WSCNT_DATA; @@ -71,7 +71,7 @@ void AGBPutc(const char cChr) void AGBPrint(const char *pBuf) { volatile struct AGBPrintStruct *pPrint = (struct AGBPrintStruct *)AGB_PRINT_STRUCT_ADDR; - u16 *pWSCNT = ®_WAITCNT; + vu16 *pWSCNT = ®_WAITCNT; u16 nOldWSCNT = *pWSCNT; *pWSCNT = WSCNT_DATA; while (*pBuf) @@ -95,9 +95,9 @@ void AGBPrintf(const char *pBuf, ...) static void AGBPrintTransferDataInternal(u32 bAllData) { LPFN_PRINT_FLUSH lpfnFuncFlush; - u16 *pIME; + vu16 *pIME; u16 nIME; - u16 *pWSCNT; + vu16 *pWSCNT; u16 nOldWSCNT; u16 *pProtect; volatile struct AGBPrintStruct *pPrint; diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 0b2be39b5d..85340ed96e 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -183,7 +183,7 @@ bool8 HasAnotherPlayerGivenFavorLadyItem(void) sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; if (sFavorLadyPtr->playerName[0] != EOS) { - StringCopy7(gStringVar3, sFavorLadyPtr->playerName); + StringCopy_PlayerName(gStringVar3, sFavorLadyPtr->playerName); ConvertInternationalString(gStringVar3, sFavorLadyPtr->language); return TRUE; } @@ -204,7 +204,7 @@ void BufferFavorLadyItemName(void) static void SetFavorLadyPlayerName(const u8 *src, u8 *dest) { memset(dest, EOS, PLAYER_NAME_LENGTH + 1); - StringCopy7(dest, src); + StringCopy_PlayerName(dest, src); } void BufferFavorLadyPlayerName(void) @@ -396,12 +396,12 @@ static u8 BufferQuizAuthorName(void) sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; if (sQuizLadyPtr->playerName[0] == EOS) { - StringCopy7(gStringVar1, gText_QuizLady_Lady); + StringCopy_PlayerName(gStringVar1, gText_QuizLady_Lady); authorNameId = QUIZ_AUTHOR_NAME_LADY; } else { - StringCopy7(gStringVar1, sQuizLadyPtr->playerName); + StringCopy_PlayerName(gStringVar1, sQuizLadyPtr->playerName); ConvertInternationalString(gStringVar1, sQuizLadyPtr->language); nameLen = GetPlayerNameLength(sQuizLadyPtr->playerName); if (nameLen == GetPlayerNameLength(gSaveBlock2Ptr->playerName)) @@ -552,7 +552,7 @@ void QuizLadyRecordCustomQuizData(void) sQuizLadyPtr->prize = gSpecialVar_ItemId; for (i = 0; i < TRAINER_ID_LENGTH; i++) sQuizLadyPtr->playerTrainerId[i] = gSaveBlock2Ptr->playerTrainerId[i]; - StringCopy7(sQuizLadyPtr->playerName, gSaveBlock2Ptr->playerName); + StringCopy_PlayerName(sQuizLadyPtr->playerName, gSaveBlock2Ptr->playerName); sQuizLadyPtr->language = gGameLanguage; } @@ -696,7 +696,7 @@ static void BufferContestLadyCategoryAndMonName(u8 *category, u8 *nickname) { sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; StringCopy(category, sContestLadyCategoryNames[sContestLadyPtr->category]); - StringCopy10(nickname, sContestLadyMonNames[sContestLadyPtr->category]); + StringCopy_Nickname(nickname, sContestLadyMonNames[sContestLadyPtr->category]); } void BufferContestLadyMonName(u8 *category, u8 *nickname) diff --git a/src/link.c b/src/link.c index 01cc06e7c0..aa9a0d73df 100644 --- a/src/link.c +++ b/src/link.c @@ -158,13 +158,13 @@ static void DoSend(void); static void StopTimer(void); static void SendRecvDone(void); -static const u16 sWirelessLinkDisplayPal[] = INCBIN_U16("graphics/interface/wireless_link_display.gbapal"); -static const u32 sWirelessLinkDisplayGfx[] = INCBIN_U32("graphics/interface/wireless_link_display.4bpp.lz"); -static const u32 sWirelessLinkDisplayTilemap[] = INCBIN_U32("graphics/interface/wireless_link_display.bin.lz"); -static const u16 sLinkTestDigitsPal[] = INCBIN_U16("graphics/interface/link_test_digits.gbapal"); -static const u16 sLinkTestDigitsGfx[] = INCBIN_U16("graphics/interface/link_test_digits.4bpp"); +static const u16 sWirelessLinkDisplayPal[] = INCBIN_U16("graphics/link/wireless_display.gbapal"); +static const u32 sWirelessLinkDisplayGfx[] = INCBIN_U32("graphics/link/wireless_display.4bpp.lz"); +static const u32 sWirelessLinkDisplayTilemap[] = INCBIN_U32("graphics/link/wireless_display.bin.lz"); +static const u16 sLinkTestDigitsPal[] = INCBIN_U16("graphics/link/test_digits.gbapal"); +static const u16 sLinkTestDigitsGfx[] = INCBIN_U16("graphics/link/test_digits.4bpp"); static const u8 sUnusedTransparentWhite[] = _("{HIGHLIGHT TRANSPARENT}{COLOR WHITE}"); -static const u16 sCommErrorBg_Gfx[] = INCBIN_U16("graphics/interface/comm_error_bg.4bpp"); +static const u16 sCommErrorBg_Gfx[] = INCBIN_U16("graphics/link/comm_error_bg.4bpp"); static const struct BlockRequest sBlockRequests[] = { [BLOCK_REQ_SIZE_NONE] = {gBlockSendBuffer, 200}, [BLOCK_REQ_SIZE_200] = {gBlockSendBuffer, 200}, @@ -292,10 +292,9 @@ static void LinkTestScreen(void) gLinkType = LINKTYPE_TRADE; OpenLink(); SeedRng(gMain.vblankCounter2); - for (i = 0; i < MAX_LINK_PLAYERS; i++) - { + for (i = 0; i < TRAINER_ID_LENGTH; i++) gSaveBlock2Ptr->playerTrainerId[i] = Random() % 256; - } + InitLinkTestBG(0, 2, 4, 0, 0); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON); CreateTask(Task_DestroySelf, 0); diff --git a/src/link_rfu_3.c b/src/link_rfu_3.c index 571f305d0e..1e1fe5b347 100644 --- a/src/link_rfu_3.c +++ b/src/link_rfu_3.c @@ -34,8 +34,8 @@ EWRAM_DATA u8 gWirelessStatusIndicatorSpriteId = 0; static u8 sSequenceArrayValOffset; -static const u16 sWirelessLinkIconPalette[] = INCBIN_U16("graphics/interface/wireless_link_icon.gbapal"); -static const u32 sWirelessLinkIconPic[] = INCBIN_U32("graphics/interface/wireless_link_icon.4bpp.lz"); +static const u16 sWirelessLinkIconPalette[] = INCBIN_U16("graphics/link/wireless_icon.gbapal"); +static const u32 sWirelessLinkIconPic[] = INCBIN_U32("graphics/link/wireless_icon.4bpp.lz"); // Most of the below two tables won't make sense with ASCII encoding. static const u8 sWireless_ASCIItoRSETable[256] = { diff --git a/src/lottery_corner.c b/src/lottery_corner.c index 2cbf0a8089..f19e9f7b7b 100644 --- a/src/lottery_corner.c +++ b/src/lottery_corner.c @@ -113,7 +113,7 @@ void PickLotteryCornerTicket(void) gSpecialVar_0x8006 = 1; GetBoxMonData(&gPokemonStoragePtr->boxes[box][slot], MON_DATA_NICKNAME, gStringVar1); } - StringGetEnd10(gStringVar1); + StringGet_Nickname(gStringVar1); } } diff --git a/src/m4a.c b/src/m4a.c index b159e3873d..faeef83e79 100644 --- a/src/m4a.c +++ b/src/m4a.c @@ -83,7 +83,7 @@ void m4aSoundInit(void) for (i = 0; i < NUM_MUSIC_PLAYERS; i++) { struct MusicPlayerInfo *mplayInfo = gMPlayTable[i].info; - MPlayOpen(mplayInfo, gMPlayTable[i].track, gMPlayTable[i].unk_8); + MPlayOpen(mplayInfo, gMPlayTable[i].track, gMPlayTable[i].numTracks); mplayInfo->unk_B = gMPlayTable[i].unk_A; mplayInfo->memAccArea = gMPlayMemAccArea; } diff --git a/src/m4a_1.s b/src/m4a_1.s index f71a5546e4..cc5d3238d6 100644 --- a/src/m4a_1.s +++ b/src/m4a_1.s @@ -1910,27 +1910,7 @@ _081DDD90: .align 2, 0 @ Don't pad with nop. - .bss + .bss gDecodingBuffer: @ Used as a buffer for audio decoded from compressed DPCM - .space 0x40 - .size gDecodingBuffer, .-gDecodingBuffer - - .global gMPlayTrack_BGM -gMPlayTrack_BGM: - .space 0x320 - .size gMPlayTrack_BGM, .-gMPlayTrack_BGM - - .global gMPlayTrack_SE1 -gMPlayTrack_SE1: - .space 0xF0 - .size gMPlayTrack_SE1, .-gMPlayTrack_SE1 - - .global gMPlayTrack_SE2 -gMPlayTrack_SE2: - .space 0x2D0 - .size gMPlayTrack_SE2, .-gMPlayTrack_SE2 - - .global gMPlayTrack_SE3 -gMPlayTrack_SE3: - .space 0x50 - .size gMPlayTrack_SE3, .-gMPlayTrack_SE3 + .space 0x40 + .size gDecodingBuffer, .-gDecodingBuffer diff --git a/src/mail_data.c b/src/mail_data.c index 683bd854ea..99cf1f9edd 100644 --- a/src/mail_data.c +++ b/src/mail_data.c @@ -5,7 +5,6 @@ #include "pokemon_icon.h" #include "text.h" #include "international_string_util.h" -#include "constants/easy_chat.h" #define UNOWN_OFFSET 30000 @@ -157,7 +156,7 @@ void ClearMailItemId(u8 mailId) gSaveBlock1Ptr->mail[mailId].itemId = ITEM_NONE; } -u8 TakeMailFromMon2(struct Pokemon *mon) +u8 TakeMailFromMonAndSave(struct Pokemon *mon) { u8 i; u8 newHeldItem[2]; @@ -179,6 +178,7 @@ u8 TakeMailFromMon2(struct Pokemon *mon) } } + // No space to save mail return MAIL_NONE; } diff --git a/src/main_menu.c b/src/main_menu.c index 85626f30d8..c2d4198e9f 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -105,7 +105,7 @@ * printing, and then wait for A or B to be pressed. * - Then advance to Task_HandleMainMenuBPressed. * - * Task_NewGameBirchSpeechInit + * Task_NewGameBirchSpeech_Init * - Load the sprites for the intro speech, start playing music * Task_NewGameBirchSpeech_WaitToShowBirch * - Spawn Task_NewGameBirchSpeech_FadeInTarget1OutTarget2 @@ -403,8 +403,8 @@ static const struct WindowTemplate gNewGameBirchSpeechTextWindows[] = DUMMY_WIN_TEMPLATE }; -static const u16 sMainMenuBgPal[] = INCBIN_U16("graphics/misc/main_menu_bg.gbapal"); -static const u16 sMainMenuTextPal[] = INCBIN_U16("graphics/misc/main_menu_text.gbapal"); +static const u16 sMainMenuBgPal[] = INCBIN_U16("graphics/interface/main_menu_bg.gbapal"); +static const u16 sMainMenuTextPal[] = INCBIN_U16("graphics/interface/main_menu_text.gbapal"); static const u8 sTextColor_Headers[] = {TEXT_DYNAMIC_COLOR_1, TEXT_DYNAMIC_COLOR_2, TEXT_DYNAMIC_COLOR_3}; static const u8 sTextColor_MenuInfo[] = {TEXT_DYNAMIC_COLOR_1, TEXT_COLOR_WHITE, TEXT_DYNAMIC_COLOR_3}; @@ -2090,7 +2090,7 @@ static void NewGameBirchSpeech_ShowGenderMenu(void) DrawMainMenuWindowBorder(&gNewGameBirchSpeechTextWindows[1], 0xF3); FillWindowPixelBuffer(1, PIXEL_FILL(1)); PrintMenuTable(1, ARRAY_COUNT(sMenuActions_Gender), sMenuActions_Gender); - InitMenuInUpperLeftCornerNormal(1, 2, 0); + InitMenuInUpperLeftCornerNormal(1, ARRAY_COUNT(sMenuActions_Gender), 0); PutWindowTilemap(1); CopyWindowToVram(1, COPYWIN_FULL); } diff --git a/src/map_name_popup.c b/src/map_name_popup.c index e44fb33833..8cf1a6bab1 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -38,35 +38,35 @@ static EWRAM_DATA u8 sPopupTaskId = 0; // .rodata static const u8 sMapPopUp_Table[][960] = { - [MAPPOPUP_THEME_WOOD] = INCBIN_U8("graphics/interface/map_popup/wood.4bpp"), - [MAPPOPUP_THEME_MARBLE] = INCBIN_U8("graphics/interface/map_popup/marble.4bpp"), - [MAPPOPUP_THEME_STONE] = INCBIN_U8("graphics/interface/map_popup/stone.4bpp"), - [MAPPOPUP_THEME_BRICK] = INCBIN_U8("graphics/interface/map_popup/brick.4bpp"), - [MAPPOPUP_THEME_UNDERWATER] = INCBIN_U8("graphics/interface/map_popup/underwater.4bpp"), - [MAPPOPUP_THEME_STONE2] = INCBIN_U8("graphics/interface/map_popup/stone2.4bpp"), + [MAPPOPUP_THEME_WOOD] = INCBIN_U8("graphics/map_popup/wood.4bpp"), + [MAPPOPUP_THEME_MARBLE] = INCBIN_U8("graphics/map_popup/marble.4bpp"), + [MAPPOPUP_THEME_STONE] = INCBIN_U8("graphics/map_popup/stone.4bpp"), + [MAPPOPUP_THEME_BRICK] = INCBIN_U8("graphics/map_popup/brick.4bpp"), + [MAPPOPUP_THEME_UNDERWATER] = INCBIN_U8("graphics/map_popup/underwater.4bpp"), + [MAPPOPUP_THEME_STONE2] = INCBIN_U8("graphics/map_popup/stone2.4bpp"), }; static const u8 sMapPopUp_OutlineTable[][960] = { - [MAPPOPUP_THEME_WOOD] = INCBIN_U8("graphics/interface/map_popup/wood_outline.4bpp"), - [MAPPOPUP_THEME_MARBLE] = INCBIN_U8("graphics/interface/map_popup/marble_outline.4bpp"), - [MAPPOPUP_THEME_STONE] = INCBIN_U8("graphics/interface/map_popup/stone_outline.4bpp"), - [MAPPOPUP_THEME_BRICK] = INCBIN_U8("graphics/interface/map_popup/brick_outline.4bpp"), - [MAPPOPUP_THEME_UNDERWATER] = INCBIN_U8("graphics/interface/map_popup/underwater_outline.4bpp"), - [MAPPOPUP_THEME_STONE2] = INCBIN_U8("graphics/interface/map_popup/stone2_outline.4bpp"), + [MAPPOPUP_THEME_WOOD] = INCBIN_U8("graphics/map_popup/wood_outline.4bpp"), + [MAPPOPUP_THEME_MARBLE] = INCBIN_U8("graphics/map_popup/marble_outline.4bpp"), + [MAPPOPUP_THEME_STONE] = INCBIN_U8("graphics/map_popup/stone_outline.4bpp"), + [MAPPOPUP_THEME_BRICK] = INCBIN_U8("graphics/map_popup/brick_outline.4bpp"), + [MAPPOPUP_THEME_UNDERWATER] = INCBIN_U8("graphics/map_popup/underwater_outline.4bpp"), + [MAPPOPUP_THEME_STONE2] = INCBIN_U8("graphics/map_popup/stone2_outline.4bpp"), }; static const u16 sMapPopUp_PaletteTable[][16] = { - [MAPPOPUP_THEME_WOOD] = INCBIN_U16("graphics/interface/map_popup/wood.gbapal"), - [MAPPOPUP_THEME_MARBLE] = INCBIN_U16("graphics/interface/map_popup/marble_outline.gbapal"), - [MAPPOPUP_THEME_STONE] = INCBIN_U16("graphics/interface/map_popup/stone_outline.gbapal"), - [MAPPOPUP_THEME_BRICK] = INCBIN_U16("graphics/interface/map_popup/brick_outline.gbapal"), - [MAPPOPUP_THEME_UNDERWATER] = INCBIN_U16("graphics/interface/map_popup/underwater_outline.gbapal"), - [MAPPOPUP_THEME_STONE2] = INCBIN_U16("graphics/interface/map_popup/stone2_outline.gbapal"), + [MAPPOPUP_THEME_WOOD] = INCBIN_U16("graphics/map_popup/wood.gbapal"), + [MAPPOPUP_THEME_MARBLE] = INCBIN_U16("graphics/map_popup/marble_outline.gbapal"), + [MAPPOPUP_THEME_STONE] = INCBIN_U16("graphics/map_popup/stone_outline.gbapal"), + [MAPPOPUP_THEME_BRICK] = INCBIN_U16("graphics/map_popup/brick_outline.gbapal"), + [MAPPOPUP_THEME_UNDERWATER] = INCBIN_U16("graphics/map_popup/underwater_outline.gbapal"), + [MAPPOPUP_THEME_STONE2] = INCBIN_U16("graphics/map_popup/stone2_outline.gbapal"), }; -static const u16 sMapPopUp_Palette_Underwater[16] = INCBIN_U16("graphics/interface/map_popup/underwater.gbapal"); +static const u16 sMapPopUp_Palette_Underwater[16] = INCBIN_U16("graphics/map_popup/underwater.gbapal"); static const u8 sRegionMapSectionId_To_PopUpThemeIdMapping[] = { diff --git a/src/match_call.c b/src/match_call.c index 85df5822d2..de7f13416d 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -29,7 +29,6 @@ #include "constants/abilities.h" #include "constants/battle_frontier.h" #include "constants/event_objects.h" -#include "constants/maps.h" #include "constants/region_map_sections.h" #include "constants/songs.h" #include "constants/trainers.h" diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index 06c3b82886..681a3dadfd 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -1,7 +1,6 @@ #include "global.h" #include "main.h" #include "constants/songs.h" -#include "constants/easy_chat.h" #include "constants/event_objects.h" #include "mauville_old_man.h" #include "event_data.h" diff --git a/src/menu.c b/src/menu.c index 6b915f9cec..49baddded5 100644 --- a/src/menu.c +++ b/src/menu.c @@ -1542,25 +1542,25 @@ static s8 Menu_ProcessGridInputRepeat(void) { return MENU_B_PRESSED; } - else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_UP) + else if (JOY_REPEAT(DPAD_ANY) == DPAD_UP) { if (oldPos != ChangeGridMenuCursorPosition(0, -1)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } - else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_DOWN) + else if (JOY_REPEAT(DPAD_ANY) == DPAD_DOWN) { if (oldPos != ChangeGridMenuCursorPosition(0, 1)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } - else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED) + else if (JOY_REPEAT(DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED) { if (oldPos != ChangeGridMenuCursorPosition(-1, 0)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } - else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED) + else if (JOY_REPEAT(DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED) { if (oldPos != ChangeGridMenuCursorPosition(1, 0)) PlaySE(SE_SELECT); diff --git a/src/menu_helpers.c b/src/menu_helpers.c index 5bc197010b..e9f3e571f0 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -16,7 +16,6 @@ #include "decompress.h" #include "constants/songs.h" #include "constants/items.h" -#include "constants/maps.h" #define TAG_SWAP_LINE 109 @@ -72,12 +71,12 @@ static const union AnimCmd *const sAnims_SwapLine[] = static const struct CompressedSpriteSheet sSpriteSheet_SwapLine = { - gBagSwapLineGfx, 0x100, TAG_SWAP_LINE + gSwapLineGfx, 0x100, TAG_SWAP_LINE }; static const struct CompressedSpritePalette sSpritePalette_SwapLine = { - gBagSwapLinePal, TAG_SWAP_LINE + gSwapLinePal, TAG_SWAP_LINE }; static const struct SpriteTemplate sSpriteTemplate_SwapLine = diff --git a/src/menu_specialized.c b/src/menu_specialized.c index 20d67ca7f9..cd77f4a59c 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -919,7 +919,7 @@ static u8 *GetConditionMenuMonString(u8 *dst, u16 boxId, u16 monId) if (GetBoxOrPartyMonData(box, mon, MON_DATA_IS_EGG, NULL)) return StringCopyPadded(dst, gText_EggNickname, 0, 12); GetBoxOrPartyMonData(box, mon, MON_DATA_NICKNAME, dst); - StringGetEnd10(dst); + StringGet_Nickname(dst); species = GetBoxOrPartyMonData(box, mon, MON_DATA_SPECIES, NULL); if (box == TOTAL_BOXES_COUNT) // Party mon. { diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c index ad5eb42ccd..72d3ac632f 100644 --- a/src/metatile_behavior.c +++ b/src/metatile_behavior.c @@ -2,254 +2,129 @@ #include "metatile_behavior.h" #include "constants/metatile_behaviors.h" -#define TILE_FLAG_ENCOUNTER_TILE 1 -#define TILE_FLAG_SURFABLE 2 +#define TILE_FLAG_HAS_ENCOUNTERS (1 << 0) +#define TILE_FLAG_SURFABLE (1 << 1) +#define TILE_FLAG_UNUSED (1 << 2) // Roughly all of the traversable metatiles. Set but never read -#define TILE_ATTRIBUTES(unused, surfable, wildEncounter) (((wildEncounter) ? 1 : 0) | ((surfable) ? 2 : 0) | ((unused) ? 4 : 0)) - -// wonder what the third flag is supposed to do -static const u8 sTileBitAttributes[] = +static const u8 sTileBitAttributes[NUM_METATILE_BEHAVIORS] = { - [MB_NORMAL] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SECRET_BASE_WALL] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_TALL_GRASS] = TILE_ATTRIBUTES(TRUE, FALSE, TRUE), - [MB_LONG_GRASS] = TILE_ATTRIBUTES(TRUE, FALSE, TRUE), - [MB_UNUSED_04] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_05] = TILE_ATTRIBUTES(FALSE, FALSE, TRUE), - [MB_DEEP_SAND] = TILE_ATTRIBUTES(TRUE, FALSE, TRUE), - [MB_SHORT_GRASS] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_UNUSED_CAVE] = TILE_ATTRIBUTES(TRUE, FALSE, TRUE), - [MB_LONG_GRASS_SOUTH_EDGE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_NO_RUNNING] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_INDOOR_ENCOUNTER] = TILE_ATTRIBUTES(TRUE, FALSE, TRUE), - [MB_MOUNTAIN_TOP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_BATTLE_PYRAMID_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_MOSSDEEP_GYM_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_MT_PYRE_HOLE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_POND_WATER] = TILE_ATTRIBUTES(TRUE, TRUE, TRUE), - [MB_SEMI_DEEP_WATER] = TILE_ATTRIBUTES(TRUE, TRUE, TRUE), - [MB_DEEP_WATER] = TILE_ATTRIBUTES(TRUE, TRUE, TRUE), - [MB_WATERFALL] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), - [MB_SOOTOPOLIS_DEEP_WATER] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), - [MB_OCEAN_WATER] = TILE_ATTRIBUTES(TRUE, TRUE, TRUE), - [MB_PUDDLE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SHALLOW_WATER] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_UNUSED_SOOTOPOLIS_DEEP_WATER] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_NO_SURFACING] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), - [MB_UNUSED_SOOTOPOLIS_DEEP_WATER_2] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_STAIRS_OUTSIDE_ABANDONED_SHIP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SHOAL_CAVE_ENTRANCE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_UNUSED_1D] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_1E] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_1F] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_ICE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SAND] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SEAWEED] = TILE_ATTRIBUTES(TRUE, TRUE, TRUE), - [MB_UNUSED_23] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_ASHGRASS] = TILE_ATTRIBUTES(TRUE, FALSE, TRUE), - [MB_FOOTPRINTS] = TILE_ATTRIBUTES(TRUE, FALSE, TRUE), - [MB_THIN_ICE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_CRACKED_ICE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_HOT_SPRINGS] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_LAVARIDGE_GYM_B1F_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SEAWEED_NO_SURFACING] = TILE_ATTRIBUTES(TRUE, TRUE, TRUE), - [MB_REFLECTION_UNDER_BRIDGE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_UNUSED_2C] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_2D] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_2E] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_2F] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_IMPASSABLE_EAST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_IMPASSABLE_WEST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_IMPASSABLE_NORTH] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_IMPASSABLE_SOUTH] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_IMPASSABLE_NORTHEAST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_IMPASSABLE_NORTHWEST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_IMPASSABLE_SOUTHEAST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_IMPASSABLE_SOUTHWEST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_JUMP_EAST] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_JUMP_WEST] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_JUMP_NORTH] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_JUMP_SOUTH] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_JUMP_NORTHEAST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_JUMP_NORTHWEST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_JUMP_SOUTHEAST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_JUMP_SOUTHWEST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_WALK_EAST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_WALK_WEST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_WALK_NORTH] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_WALK_SOUTH] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SLIDE_EAST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SLIDE_WEST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SLIDE_NORTH] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SLIDE_SOUTH] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_TRICK_HOUSE_PUZZLE_8_FLOOR] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_UNUSED_49] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_UNUSED_4A] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_UNUSED_4B] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_4C] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_4D] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_4E] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_4F] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_EASTWARD_CURRENT] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), - [MB_WESTWARD_CURRENT] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), - [MB_NORTHWARD_CURRENT] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), - [MB_SOUTHWARD_CURRENT] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), - [MB_UNUSED_54] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_55] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_56] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_57] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_58] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_59] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_5A] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_5B] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_5C] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_5D] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_5E] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_5F] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_NON_ANIMATED_DOOR] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_LADDER] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_EAST_ARROW_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_WEST_ARROW_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_NORTH_ARROW_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SOUTH_ARROW_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_CRACKED_FLOOR_HOLE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_AQUA_HIDEOUT_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_LAVARIDGE_GYM_1F_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_ANIMATED_DOOR] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_UP_ESCALATOR] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_DOWN_ESCALATOR] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_WATER_DOOR] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), - [MB_WATER_SOUTH_ARROW_WARP] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), - [MB_DEEP_SOUTH_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_UNUSED_6F] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), - [MB_BRIDGE_OVER_OCEAN] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_BRIDGE_OVER_POND_LOW] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_BRIDGE_OVER_POND_MED] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_BRIDGE_OVER_POND_HIGH] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_PACIFIDLOG_VERTICAL_LOG_1] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_PACIFIDLOG_VERTICAL_LOG_2] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_PACIFIDLOG_HORIZONTAL_LOG_1] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_PACIFIDLOG_HORIZONTAL_LOG_2] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_FORTREE_BRIDGE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_UNUSED_79] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_BRIDGE_OVER_POND_MED_EDGE_1] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_BRIDGE_OVER_POND_MED_EDGE_2] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_BRIDGE_OVER_POND_HIGH_EDGE_1] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_BRIDGE_OVER_POND_HIGH_EDGE_2] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_UNUSED_BRIDGE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_BIKE_BRIDGE_OVER_BARRIER] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_COUNTER] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_81] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_82] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_PC] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_CABLE_BOX_RESULTS_1] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_REGION_MAP] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_TELEVISION] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_POKEBLOCK_FEEDER] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_88] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SLOT_MACHINE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_ROULETTE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_CLOSED_SOOTOPOLIS_DOOR] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_TRICK_HOUSE_PUZZLE_DOOR] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_PETALBURG_GYM_DOOR] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_RUNNING_SHOES_INSTRUCTION] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_QUESTIONNAIRE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_SPOT_RED_CAVE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_SPOT_RED_CAVE_OPEN] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_SPOT_BROWN_CAVE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_SPOT_BROWN_CAVE_OPEN] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_SPOT_YELLOW_CAVE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_SPOT_YELLOW_CAVE_OPEN] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_SPOT_TREE_LEFT] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_SPOT_TREE_LEFT_OPEN] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_SPOT_SHRUB] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_SPOT_SHRUB_OPEN] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_SPOT_BLUE_CAVE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_SPOT_BLUE_CAVE_OPEN] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_SPOT_TREE_RIGHT] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_SPOT_TREE_RIGHT_OPEN] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_9E] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_9F] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_BERRY_TREE_SOIL] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_A1] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_A2] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_A3] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_A4] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_A5] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_A6] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_A7] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_A8] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_A9] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_AA] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_AB] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_AC] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_AD] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_AE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_AF] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_PC] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_REGISTER_PC] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_UNUSED] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_BLOCK_DECORATION] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SECRET_BASE_DECORATION] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_HOLDS_SMALL_DECORATION] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_UNUSED_B6] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_NORTH_WALL] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_BALLOON] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SECRET_BASE_IMPASSABLE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SECRET_BASE_GLITTER_MAT] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SECRET_BASE_JUMP_MAT] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SECRET_BASE_SPIN_MAT] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SECRET_BASE_SOUND_MAT] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SECRET_BASE_BREAKABLE_DOOR] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SECRET_BASE_SAND_ORNAMENT] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_IMPASSABLE_SOUTH_AND_NORTH] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_IMPASSABLE_WEST_AND_EAST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SECRET_BASE_HOLE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_HOLDS_LARGE_DECORATION] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SECRET_BASE_TV_SHIELD] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_PLAYER_ROOM_PC_ON] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_SECRET_BASE_DECORATION_BASE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_POSTER] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_C8] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_C9] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_CA] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_CB] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_CC] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_CD] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_CE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_CF] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_MUDDY_SLOPE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_BUMPY_SLOPE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_CRACKED_FLOOR] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_ISOLATED_VERTICAL_RAIL] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_ISOLATED_HORIZONTAL_RAIL] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_VERTICAL_RAIL] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_HORIZONTAL_RAIL] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_UNUSED_D7] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_D8] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_D9] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_DA] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_DB] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_DC] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_DD] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_DE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_DF] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_PICTURE_BOOK_SHELF] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_BOOKSHELF] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_POKEMON_CENTER_BOOKSHELF] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_VASE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_TRASH_CAN] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SHOP_SHELF] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_BLUEPRINT] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_CABLE_BOX_RESULTS_2] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_WIRELESS_BOX_RESULTS] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_TRAINER_HILL_TIMER] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SKY_PILLAR_CLOSED_DOOR] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_EB] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_EC] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_ED] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_EE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_UNUSED_EF] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_NORMAL] = TILE_FLAG_UNUSED, + [MB_TALL_GRASS] = TILE_FLAG_UNUSED | TILE_FLAG_HAS_ENCOUNTERS, + [MB_LONG_GRASS] = TILE_FLAG_UNUSED | TILE_FLAG_HAS_ENCOUNTERS, + [MB_UNUSED_05] = TILE_FLAG_HAS_ENCOUNTERS, + [MB_DEEP_SAND] = TILE_FLAG_UNUSED | TILE_FLAG_HAS_ENCOUNTERS, + [MB_SHORT_GRASS] = TILE_FLAG_UNUSED, + [MB_CAVE] = TILE_FLAG_UNUSED | TILE_FLAG_HAS_ENCOUNTERS, + [MB_LONG_GRASS_SOUTH_EDGE] = TILE_FLAG_UNUSED, + [MB_NO_RUNNING] = TILE_FLAG_UNUSED, + [MB_INDOOR_ENCOUNTER] = TILE_FLAG_UNUSED | TILE_FLAG_HAS_ENCOUNTERS, + [MB_MOUNTAIN_TOP] = TILE_FLAG_UNUSED, + [MB_BATTLE_PYRAMID_WARP] = TILE_FLAG_UNUSED, + [MB_MOSSDEEP_GYM_WARP] = TILE_FLAG_UNUSED, + [MB_MT_PYRE_HOLE] = TILE_FLAG_UNUSED, + [MB_POND_WATER] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE | TILE_FLAG_HAS_ENCOUNTERS, + [MB_SEMI_DEEP_WATER] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE | TILE_FLAG_HAS_ENCOUNTERS, + [MB_DEEP_WATER] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE | TILE_FLAG_HAS_ENCOUNTERS, + [MB_WATERFALL] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE, + [MB_SOOTOPOLIS_DEEP_WATER] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE, + [MB_OCEAN_WATER] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE | TILE_FLAG_HAS_ENCOUNTERS, + [MB_PUDDLE] = TILE_FLAG_UNUSED, + [MB_SHALLOW_WATER] = TILE_FLAG_UNUSED, + [MB_NO_SURFACING] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE, + [MB_STAIRS_OUTSIDE_ABANDONED_SHIP] = TILE_FLAG_UNUSED, + [MB_SHOAL_CAVE_ENTRANCE] = TILE_FLAG_UNUSED, + [MB_ICE] = TILE_FLAG_UNUSED, + [MB_SAND] = TILE_FLAG_UNUSED, + [MB_SEAWEED] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE | TILE_FLAG_HAS_ENCOUNTERS, + [MB_UNUSED_23] = TILE_FLAG_UNUSED, + [MB_ASHGRASS] = TILE_FLAG_UNUSED | TILE_FLAG_HAS_ENCOUNTERS, + [MB_FOOTPRINTS] = TILE_FLAG_UNUSED | TILE_FLAG_HAS_ENCOUNTERS, + [MB_THIN_ICE] = TILE_FLAG_UNUSED, + [MB_CRACKED_ICE] = TILE_FLAG_UNUSED, + [MB_HOT_SPRINGS] = TILE_FLAG_UNUSED, + [MB_LAVARIDGE_GYM_B1F_WARP] = TILE_FLAG_UNUSED, + [MB_SEAWEED_NO_SURFACING] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE | TILE_FLAG_HAS_ENCOUNTERS, + [MB_REFLECTION_UNDER_BRIDGE] = TILE_FLAG_UNUSED, + [MB_IMPASSABLE_EAST] = TILE_FLAG_UNUSED, + [MB_IMPASSABLE_WEST] = TILE_FLAG_UNUSED, + [MB_IMPASSABLE_NORTH] = TILE_FLAG_UNUSED, + [MB_IMPASSABLE_SOUTH] = TILE_FLAG_UNUSED, + [MB_IMPASSABLE_NORTHEAST] = TILE_FLAG_UNUSED, + [MB_IMPASSABLE_NORTHWEST] = TILE_FLAG_UNUSED, + [MB_IMPASSABLE_SOUTHEAST] = TILE_FLAG_UNUSED, + [MB_IMPASSABLE_SOUTHWEST] = TILE_FLAG_UNUSED, + [MB_JUMP_NORTHEAST] = TILE_FLAG_UNUSED, + [MB_JUMP_NORTHWEST] = TILE_FLAG_UNUSED, + [MB_JUMP_SOUTHEAST] = TILE_FLAG_UNUSED, + [MB_JUMP_SOUTHWEST] = TILE_FLAG_UNUSED, + [MB_WALK_EAST] = TILE_FLAG_UNUSED, + [MB_WALK_WEST] = TILE_FLAG_UNUSED, + [MB_WALK_NORTH] = TILE_FLAG_UNUSED, + [MB_WALK_SOUTH] = TILE_FLAG_UNUSED, + [MB_SLIDE_EAST] = TILE_FLAG_UNUSED, + [MB_SLIDE_WEST] = TILE_FLAG_UNUSED, + [MB_SLIDE_NORTH] = TILE_FLAG_UNUSED, + [MB_SLIDE_SOUTH] = TILE_FLAG_UNUSED, + [MB_TRICK_HOUSE_PUZZLE_8_FLOOR] = TILE_FLAG_UNUSED, + [MB_UNUSED_49] = TILE_FLAG_UNUSED, + [MB_UNUSED_4A] = TILE_FLAG_UNUSED, + [MB_EASTWARD_CURRENT] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE, + [MB_WESTWARD_CURRENT] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE, + [MB_NORTHWARD_CURRENT] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE, + [MB_SOUTHWARD_CURRENT] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE, + [MB_NON_ANIMATED_DOOR] = TILE_FLAG_UNUSED, + [MB_LADDER] = TILE_FLAG_UNUSED, + [MB_EAST_ARROW_WARP] = TILE_FLAG_UNUSED, + [MB_WEST_ARROW_WARP] = TILE_FLAG_UNUSED, + [MB_NORTH_ARROW_WARP] = TILE_FLAG_UNUSED, + [MB_SOUTH_ARROW_WARP] = TILE_FLAG_UNUSED, + [MB_CRACKED_FLOOR_HOLE] = TILE_FLAG_UNUSED, + [MB_AQUA_HIDEOUT_WARP] = TILE_FLAG_UNUSED, + [MB_LAVARIDGE_GYM_1F_WARP] = TILE_FLAG_UNUSED, + [MB_ANIMATED_DOOR] = TILE_FLAG_UNUSED, + [MB_UP_ESCALATOR] = TILE_FLAG_UNUSED, + [MB_DOWN_ESCALATOR] = TILE_FLAG_UNUSED, + [MB_WATER_DOOR] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE, + [MB_WATER_SOUTH_ARROW_WARP] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE, + [MB_DEEP_SOUTH_WARP] = TILE_FLAG_UNUSED, + [MB_UNUSED_6F] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE, + [MB_BRIDGE_OVER_POND_LOW] = TILE_FLAG_UNUSED, + [MB_BRIDGE_OVER_POND_MED] = TILE_FLAG_UNUSED, + [MB_BRIDGE_OVER_POND_HIGH] = TILE_FLAG_UNUSED, + [MB_PACIFIDLOG_VERTICAL_LOG_TOP] = TILE_FLAG_UNUSED, + [MB_PACIFIDLOG_VERTICAL_LOG_BOTTOM] = TILE_FLAG_UNUSED, + [MB_PACIFIDLOG_HORIZONTAL_LOG_LEFT] = TILE_FLAG_UNUSED, + [MB_PACIFIDLOG_HORIZONTAL_LOG_RIGHT] = TILE_FLAG_UNUSED, + [MB_FORTREE_BRIDGE] = TILE_FLAG_UNUSED, + [MB_BRIDGE_OVER_POND_MED_EDGE_1] = TILE_FLAG_UNUSED, + [MB_BRIDGE_OVER_POND_MED_EDGE_2] = TILE_FLAG_UNUSED, + [MB_BRIDGE_OVER_POND_HIGH_EDGE_1] = TILE_FLAG_UNUSED, + [MB_BRIDGE_OVER_POND_HIGH_EDGE_2] = TILE_FLAG_UNUSED, + [MB_UNUSED_BRIDGE] = TILE_FLAG_UNUSED, + [MB_BIKE_BRIDGE_OVER_BARRIER] = TILE_FLAG_UNUSED, + [MB_SECRET_BASE_SCENERY] = TILE_FLAG_UNUSED, + [MB_SECRET_BASE_TRAINER_SPOT] = TILE_FLAG_UNUSED, + [MB_HOLDS_SMALL_DECORATION] = TILE_FLAG_UNUSED, + [MB_SECRET_BASE_BALLOON] = TILE_FLAG_UNUSED, + [MB_SECRET_BASE_IMPASSABLE] = TILE_FLAG_UNUSED, + [MB_SECRET_BASE_GLITTER_MAT] = TILE_FLAG_UNUSED, + [MB_SECRET_BASE_JUMP_MAT] = TILE_FLAG_UNUSED, + [MB_SECRET_BASE_SPIN_MAT] = TILE_FLAG_UNUSED, + [MB_SECRET_BASE_SOUND_MAT] = TILE_FLAG_UNUSED, + [MB_SECRET_BASE_BREAKABLE_DOOR] = TILE_FLAG_UNUSED, + [MB_IMPASSABLE_SOUTH_AND_NORTH] = TILE_FLAG_UNUSED, + [MB_IMPASSABLE_WEST_AND_EAST] = TILE_FLAG_UNUSED, + [MB_SECRET_BASE_HOLE] = TILE_FLAG_UNUSED, + [MB_HOLDS_LARGE_DECORATION] = TILE_FLAG_UNUSED, + [MB_SECRET_BASE_TV_SHIELD] = TILE_FLAG_UNUSED, + [MB_PLAYER_ROOM_PC_ON] = TILE_FLAG_UNUSED, + [MB_MUDDY_SLOPE] = TILE_FLAG_UNUSED, + [MB_BUMPY_SLOPE] = TILE_FLAG_UNUSED, + [MB_CRACKED_FLOOR] = TILE_FLAG_UNUSED, + [MB_ISOLATED_VERTICAL_RAIL] = TILE_FLAG_UNUSED, + [MB_ISOLATED_HORIZONTAL_RAIL] = TILE_FLAG_UNUSED, + [MB_VERTICAL_RAIL] = TILE_FLAG_UNUSED, + [MB_HORIZONTAL_RAIL] = TILE_FLAG_UNUSED, }; bool8 MetatileBehavior_IsATile(u8 metatileBehavior) @@ -259,7 +134,7 @@ bool8 MetatileBehavior_IsATile(u8 metatileBehavior) bool8 MetatileBehavior_IsEncounterTile(u8 metatileBehavior) { - if ((sTileBitAttributes[metatileBehavior] & TILE_FLAG_ENCOUNTER_TILE)) + if ((sTileBitAttributes[metatileBehavior] & TILE_FLAG_HAS_ENCOUNTERS)) return TRUE; else return FALSE; @@ -687,17 +562,19 @@ bool8 MetatileBehavior_IsRecordMixingSecretBasePC(u8 metatileBehavior) return FALSE; } -bool8 Unref_MetatileBehavior_IsSecretBaseUnused_B2(u8 metatileBehavior) +// Used by the rock/grass floor spaces that the secret base trainer is not standing on +bool8 MetatileBehavior_IsSecretBaseScenery1(u8 metatileBehavior) { - if (metatileBehavior == MB_SECRET_BASE_UNUSED) + if (metatileBehavior == MB_SECRET_BASE_SCENERY) return TRUE; else return FALSE; } -bool8 MetatileBehavior_IsBlockDecoration(u8 metatileBehavior) +// Used by the rock/grass floor space that the secret base trainer stands on +bool8 MetatileBehavior_IsSecretBaseTrainerSpot(u8 metatileBehavior) { - if (metatileBehavior == MB_BLOCK_DECORATION) + if (metatileBehavior == MB_SECRET_BASE_TRAINER_SPOT) return TRUE; else return FALSE; @@ -743,9 +620,9 @@ bool8 MetatileBehavior_IsSecretBaseNorthWall(u8 metatileBehavior) return FALSE; } -bool8 Unref_MetatileBehavior_IsSecretBaseUnused_B2_2(u8 metatileBehavior) +bool8 MetatileBehavior_IsSecretBaseScenery2(u8 metatileBehavior) { - if (metatileBehavior == MB_SECRET_BASE_UNUSED) + if (metatileBehavior == MB_SECRET_BASE_SCENERY) return TRUE; else return FALSE; @@ -1131,33 +1008,33 @@ bool8 MetatileBehavior_IsFortreeBridge(u8 metatileBehavior) return FALSE; } -bool8 MetatileBehavior_IsPacifidlogVerticalLog1(u8 metatileBehavior) +bool8 MetatileBehavior_IsPacifidlogVerticalLogTop(u8 metatileBehavior) { - if (metatileBehavior == MB_PACIFIDLOG_VERTICAL_LOG_1) + if (metatileBehavior == MB_PACIFIDLOG_VERTICAL_LOG_TOP) return TRUE; else return FALSE; } -bool8 MetatileBehavior_IsPacifidlogVerticalLog2(u8 metatileBehavior) +bool8 MetatileBehavior_IsPacifidlogVerticalLogBottom(u8 metatileBehavior) { - if (metatileBehavior == MB_PACIFIDLOG_VERTICAL_LOG_2) + if (metatileBehavior == MB_PACIFIDLOG_VERTICAL_LOG_BOTTOM) return TRUE; else return FALSE; } -bool8 MetatileBehavior_IsPacifidlogHorizontalLog1(u8 metatileBehavior) +bool8 MetatileBehavior_IsPacifidlogHorizontalLogLeft(u8 metatileBehavior) { - if (metatileBehavior == MB_PACIFIDLOG_HORIZONTAL_LOG_1) + if (metatileBehavior == MB_PACIFIDLOG_HORIZONTAL_LOG_LEFT) return TRUE; else return FALSE; } -bool8 MetatileBehavior_IsPacifidlogHorizontalLog2(u8 metatileBehavior) +bool8 MetatileBehavior_IsPacifidlogHorizontalLogRight(u8 metatileBehavior) { - if (metatileBehavior == MB_PACIFIDLOG_HORIZONTAL_LOG_2) + if (metatileBehavior == MB_PACIFIDLOG_HORIZONTAL_LOG_RIGHT) return TRUE; else return FALSE; @@ -1165,10 +1042,10 @@ bool8 MetatileBehavior_IsPacifidlogHorizontalLog2(u8 metatileBehavior) bool8 MetatileBehavior_IsPacifidlogLog(u8 metatileBehavior) { - if (metatileBehavior == MB_PACIFIDLOG_VERTICAL_LOG_1 - || metatileBehavior == MB_PACIFIDLOG_VERTICAL_LOG_2 - || metatileBehavior == MB_PACIFIDLOG_HORIZONTAL_LOG_1 - || metatileBehavior == MB_PACIFIDLOG_HORIZONTAL_LOG_2) + if (metatileBehavior == MB_PACIFIDLOG_VERTICAL_LOG_TOP + || metatileBehavior == MB_PACIFIDLOG_VERTICAL_LOG_BOTTOM + || metatileBehavior == MB_PACIFIDLOG_HORIZONTAL_LOG_LEFT + || metatileBehavior == MB_PACIFIDLOG_HORIZONTAL_LOG_RIGHT) return TRUE; else return FALSE; diff --git a/src/minigame_countdown.c b/src/minigame_countdown.c index 178b6d5b79..4c72136d4c 100644 --- a/src/minigame_countdown.c +++ b/src/minigame_countdown.c @@ -48,8 +48,8 @@ static void Task_StaticCountdown_Free(u8 taskId); static void Task_StaticCountdown_Start(u8 taskId); static void Task_StaticCountdown_Run(u8 taskId); -static const u16 s321Start_Static_Pal[] = INCBIN_U16("graphics/minigame_countdown/321start_static.gbapal"); -static const u32 s321Start_Static_Gfx[] = INCBIN_U32("graphics/minigame_countdown/321start_static.4bpp.lz"); +static const u16 s321Start_Static_Pal[] = INCBIN_U16("graphics/link/321start_static.gbapal"); +static const u32 s321Start_Static_Gfx[] = INCBIN_U32("graphics/link/321start_static.4bpp.lz"); static const struct CompressedSpriteSheet sSpriteSheet_321Start_Static[] = { @@ -374,8 +374,8 @@ static void CreateStartSprite(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subprior static void InitStartGraphic(u8 spriteId1, u8 spriteId2, u8 spriteId3); static void SpriteCB_Start(struct Sprite *sprite); -static const u16 s321Start_Pal[] = INCBIN_U16("graphics/minigame_countdown/321start.gbapal"); -static const u32 s321Start_Gfx[] = INCBIN_U32("graphics/minigame_countdown/321start.4bpp.lz"); +static const u16 s321Start_Pal[] = INCBIN_U16("graphics/link/321start.gbapal"); +static const u32 s321Start_Gfx[] = INCBIN_U32("graphics/link/321start.4bpp.lz"); #define tState data[0] #define tTilesTag data[2] diff --git a/src/mirage_tower.c b/src/mirage_tower.c index 9473b0f82e..7300262988 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -15,7 +15,6 @@ #include "task.h" #include "window.h" #include "constants/event_objects.h" -#include "constants/maps.h" #include "constants/rgb.h" #include "constants/songs.h" #include "constants/metatile_labels.h" diff --git a/src/mon_markings.c b/src/mon_markings.c index dbd5a2fa81..1e03179e94 100644 --- a/src/mon_markings.c +++ b/src/mon_markings.c @@ -22,8 +22,8 @@ static void SpriteCB_Marking(struct Sprite *); static void SpriteCB_Cursor(struct Sprite *); static struct Sprite *CreateMarkingComboSprite(u16, u16, const u16 *, u16); -static const u16 sMonMarkings_Pal[] = INCBIN_U16("graphics/misc/mon_markings.gbapal"); -static const u8 sMonMarkings_Gfx[] = INCBIN_U8("graphics/misc/mon_markings.4bpp"); +static const u16 sMonMarkings_Pal[] = INCBIN_U16("graphics/interface/mon_markings.gbapal"); +static const u8 sMonMarkings_Gfx[] = INCBIN_U8("graphics/interface/mon_markings.4bpp"); static const struct OamData sOamData_MenuWindow = { diff --git a/src/money.c b/src/money.c index c331462d4e..5723974a83 100644 --- a/src/money.c +++ b/src/money.c @@ -58,14 +58,14 @@ static const struct SpriteTemplate sSpriteTemplate_MoneyLabel = static const struct CompressedSpriteSheet sSpriteSheet_MoneyLabel = { - .data = gMenuMoneyGfx, + .data = gShopMenuMoney_Gfx, .size = 256, .tag = MONEY_LABEL_TAG, }; static const struct CompressedSpritePalette sSpritePalette_MoneyLabel = { - .data = gMenuMoneyPal, + .data = gShopMenu_Pal, .tag = MONEY_LABEL_TAG }; @@ -132,7 +132,7 @@ void SubtractMoneyFromVar0x8005(void) void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed) { - PrintMoneyAmount(windowId, 0x26, 1, amount, speed); + PrintMoneyAmount(windowId, 38, 1, amount, speed); } void PrintMoneyAmount(u8 windowId, u8 x, u8 y, int amount, u8 speed) @@ -146,7 +146,7 @@ void PrintMoneyAmount(u8 windowId, u8 x, u8 y, int amount, u8 speed) txtPtr = gStringVar4; while (strLength-- > 0) - *(txtPtr++) = 0x77; + *(txtPtr++) = CHAR_SPACER; StringExpandPlaceholders(txtPtr, gText_PokedollarVar1); AddTextPrinterParameterized(windowId, FONT_NORMAL, gStringVar4, x, y, speed, NULL); diff --git a/src/move_relearner.c b/src/move_relearner.c index 92d2306167..2b925135f0 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -912,7 +912,7 @@ static void CreateLearnableMovesList(void) } GetMonData(&gPlayerParty[sMoveRelearnerStruct->partyMon], MON_DATA_NICKNAME, nickname); - StringCopy10(gStringVar1, nickname); + StringCopy_Nickname(gStringVar1, nickname); sMoveRelearnerStruct->menuItems[sMoveRelearnerStruct->numMenuChoices].name = gText_Cancel; sMoveRelearnerStruct->menuItems[sMoveRelearnerStruct->numMenuChoices].id = LIST_CANCEL; sMoveRelearnerStruct->numMenuChoices++; diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index 717931268a..0007664ba1 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -111,16 +111,16 @@ static bool8 GetEventLoadMessage(u8 *dest, u32 status) { bool8 retVal = TRUE; - if (status == 0) + if (status == MEVENT_STATUS_LOAD_OK) { StringCopy(dest, gText_EventSafelyLoaded); retVal = FALSE; } - if (status == 2) + if (status == MEVENT_STATUS_SUCCESS) retVal = FALSE; - if (status == 1) + if (status == MEVENT_STATUS_LOAD_ERROR) StringCopy(dest, gText_LoadErrorEndingSession); return retVal; @@ -193,7 +193,7 @@ static void CB2_MysteryEventMenu(void) } else { - GetEventLoadMessage(gStringVar4, 1); + GetEventLoadMessage(gStringVar4, MEVENT_STATUS_LOAD_ERROR); PrintMysteryMenuText(0, gStringVar4, 1, 2, 1); gMain.state = 13; } @@ -206,7 +206,7 @@ static void CB2_MysteryEventMenu(void) if (GetLinkPlayerDataExchangeStatusTimed(2, 2) == EXCHANGE_DIFF_SELECTIONS) { SetCloseLinkCallback(); - GetEventLoadMessage(gStringVar4, 1); + GetEventLoadMessage(gStringVar4, MEVENT_STATUS_LOAD_ERROR); PrintMysteryMenuText(0, gStringVar4, 1, 2, 1); gMain.state = 13; } @@ -218,7 +218,7 @@ static void CB2_MysteryEventMenu(void) else { CloseLink(); - GetEventLoadMessage(gStringVar4, 1); + GetEventLoadMessage(gStringVar4, MEVENT_STATUS_LOAD_ERROR); PrintMysteryMenuText(0, gStringVar4, 1, 2, 1); gMain.state = 13; } @@ -252,9 +252,9 @@ static void CB2_MysteryEventMenu(void) case 11: if (gReceivedRemoteLinkPlayers == 0) { - u16 unkVal = RunMysteryEventScript(gDecompressionBuffer); + u16 status = RunMysteryEventScript(gDecompressionBuffer); CpuFill32(0, gDecompressionBuffer, 0x7D4); - if (!GetEventLoadMessage(gStringVar4, unkVal)) + if (!GetEventLoadMessage(gStringVar4, status)) TrySavingData(SAVE_NORMAL); gMain.state++; } @@ -290,7 +290,7 @@ static void CB2_MysteryEventMenu(void) if (gLinkStatus & 0x40 && !IsLinkMaster()) { CloseLink(); - GetEventLoadMessage(gStringVar4, 1); + GetEventLoadMessage(gStringVar4, MEVENT_STATUS_LOAD_ERROR); PrintMysteryMenuText(0, gStringVar4, 1, 2, 1); gMain.state = 13; } diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c index 18a1a0d07c..5f08c62948 100644 --- a/src/mystery_event_script.c +++ b/src/mystery_event_script.c @@ -22,6 +22,11 @@ extern ScrCmdFunc gMysteryEventScriptCmdTableEnd[]; #define LANGUAGE_MASK 0x1 #define VERSION_MASK 0x200 +#define mScriptBase data[0] +#define mOffset data[1] +#define mStatus data[2] +#define mValid data[3] + EWRAM_DATA static struct ScriptContext sMysteryEventScriptContext = {0}; static bool32 CheckCompatibility(u16 a1, u32 a2, u16 a3, u32 a4) @@ -44,22 +49,22 @@ static bool32 CheckCompatibility(u16 a1, u32 a2, u16 a3, u32 a4) static void SetIncompatible(void) { StringExpandPlaceholders(gStringVar4, gText_MysteryEventCantBeUsed); - SetMysteryEventScriptStatus(3); + SetMysteryEventScriptStatus(MEVENT_STATUS_FAILURE); } static void InitMysteryEventScript(struct ScriptContext *ctx, u8 *script) { InitScriptContext(ctx, gMysteryEventScriptCmdTable, gMysteryEventScriptCmdTableEnd); SetupBytecodeScript(ctx, script); - ctx->data[0] = (u32)script; - ctx->data[1] = 0; - ctx->data[2] = 0; - ctx->data[3] = 0; + ctx->mScriptBase = (u32)script; + ctx->mOffset = 0; + ctx->mStatus = MEVENT_STATUS_LOAD_OK; + ctx->mValid = FALSE; } static bool32 RunMysteryEventScriptCommand(struct ScriptContext *ctx) { - if (RunScriptCommand(ctx) && ctx->data[3]) + if (RunScriptCommand(ctx) && ctx->mValid) return TRUE; else return FALSE; @@ -70,10 +75,10 @@ void InitMysteryEventScriptContext(u8 *script) InitMysteryEventScript(&sMysteryEventScriptContext, script); } -bool32 RunMysteryEventScriptContextCommand(u32 *script) +bool32 RunMysteryEventScriptContextCommand(u32 *status) { bool32 ret = RunMysteryEventScriptCommand(&sMysteryEventScriptContext); - *script = sMysteryEventScriptContext.data[2]; + *status = sMysteryEventScriptContext.mStatus; return ret; } @@ -84,12 +89,12 @@ u32 RunMysteryEventScript(u8 *script) InitMysteryEventScript(ctx, script); while (RunMysteryEventScriptCommand(ctx)); - return ctx->data[2]; + return ctx->mStatus; } -void SetMysteryEventScriptStatus(u32 val) +void SetMysteryEventScriptStatus(u32 status) { - sMysteryEventScriptContext.data[2] = val; + sMysteryEventScriptContext.mStatus = status; } static int CalcRecordMixingGiftChecksum(void) @@ -174,14 +179,14 @@ bool8 MEScrCmd_checkcompat(struct ScriptContext *ctx) u16 v3; u32 v4; - ctx->data[1] = ScriptReadWord(ctx); + ctx->mOffset = ScriptReadWord(ctx); v1 = ScriptReadHalfword(ctx); v2 = ScriptReadWord(ctx); v3 = ScriptReadHalfword(ctx); v4 = ScriptReadWord(ctx); if (CheckCompatibility(v1, v2, v3, v4) == TRUE) - ctx->data[3] = 1; + ctx->mValid = TRUE; else SetIncompatible(); @@ -195,23 +200,23 @@ bool8 MEScrCmd_nop(struct ScriptContext *ctx) bool8 MEScrCmd_setstatus(struct ScriptContext *ctx) { - u8 value = ScriptReadByte(ctx); - ctx->data[2] = value; + u8 status = ScriptReadByte(ctx); + ctx->mStatus = status; return FALSE; } bool8 MEScrCmd_setmsg(struct ScriptContext *ctx) { - u8 value = ScriptReadByte(ctx); - u8 *str = (u8 *)(ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0]); - if (value == 0xFF || value == ctx->data[2]) + u8 status = ScriptReadByte(ctx); + u8 *str = (u8 *)(ScriptReadWord(ctx) - ctx->mOffset + ctx->mScriptBase); + if (status == MEVENT_STATUS_FF || status == ctx->mStatus) StringExpandPlaceholders(gStringVar4, str); return FALSE; } bool8 MEScrCmd_runscript(struct ScriptContext *ctx) { - u8 *script = (u8 *)(ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0]); + u8 *script = (u8 *)(ScriptReadWord(ctx) - ctx->mOffset + ctx->mScriptBase); ScriptContext2_RunNewScript(script); return FALSE; } @@ -221,7 +226,7 @@ bool8 MEScrCmd_setenigmaberry(struct ScriptContext *ctx) u8 *str; const u8 *message; bool32 haveBerry = IsEnigmaBerryValid(); - u8 *berry = (u8 *)(ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0]); + u8 *berry = (u8 *)(ScriptReadWord(ctx) - ctx->mOffset + ctx->mScriptBase); StringCopyN(gStringVar1, gSaveBlock1Ptr->enigmaBerry.berry.name, BERRY_NAME_LENGTH + 1); SetEnigmaBerry(berry); StringCopyN(gStringVar2, gSaveBlock1Ptr->enigmaBerry.berry.name, BERRY_NAME_LENGTH + 1); @@ -244,12 +249,12 @@ bool8 MEScrCmd_setenigmaberry(struct ScriptContext *ctx) StringExpandPlaceholders(str, message); - ctx->data[2] = 2; + ctx->mStatus = MEVENT_STATUS_SUCCESS; if (IsEnigmaBerryValid() == TRUE) VarSet(VAR_ENIGMA_BERRY_AVAILABLE, 1); else - ctx->data[2] = 1; + ctx->mStatus = MEVENT_STATUS_LOAD_ERROR; return FALSE; } @@ -260,7 +265,7 @@ bool8 MEScrCmd_giveribbon(struct ScriptContext *ctx) u8 ribbonId = ScriptReadByte(ctx); GiveGiftRibbonToParty(index, ribbonId); StringExpandPlaceholders(gStringVar4, gText_MysteryEventSpecialRibbon); - ctx->data[2] = 2; + ctx->mStatus = MEVENT_STATUS_SUCCESS; return FALSE; } @@ -269,8 +274,8 @@ bool8 MEScrCmd_initramscript(struct ScriptContext *ctx) u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); u8 objectId = ScriptReadByte(ctx); - u8 *script = (u8 *)(ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0]); - u8 *scriptEnd = (u8 *)(ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0]); + u8 *script = (u8 *)(ScriptReadWord(ctx) - ctx->mOffset + ctx->mScriptBase); + u8 *scriptEnd = (u8 *)(ScriptReadWord(ctx) - ctx->mOffset + ctx->mScriptBase); InitRamScript(script, scriptEnd - script, mapGroup, mapNum, objectId); return FALSE; } @@ -279,7 +284,7 @@ bool8 MEScrCmd_givenationaldex(struct ScriptContext *ctx) { EnableNationalPokedex(); StringExpandPlaceholders(gStringVar4, gText_MysteryEventNationalDex); - ctx->data[2] = 2; + ctx->mStatus = MEVENT_STATUS_SUCCESS; return FALSE; } @@ -287,7 +292,7 @@ bool8 MEScrCmd_addrareword(struct ScriptContext *ctx) { UnlockAdditionalPhrase(ScriptReadByte(ctx)); StringExpandPlaceholders(gStringVar4, gText_MysteryEventRareWord); - ctx->data[2] = 2; + ctx->mStatus = MEVENT_STATUS_SUCCESS; return FALSE; } @@ -306,7 +311,7 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx) struct Pokemon pokemon; u16 species; u16 heldItem; - u32 data = ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0]; + u32 data = ScriptReadWord(ctx) - ctx->mOffset + ctx->mScriptBase; void *pokemonPtr = (void *)data; void *mailPtr = (void *)(data + sizeof(struct Pokemon)); @@ -321,7 +326,7 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx) if (gPlayerPartyCount == PARTY_SIZE) { StringExpandPlaceholders(gStringVar4, gText_MysteryEventFullParty); - ctx->data[2] = 3; + ctx->mStatus = MEVENT_STATUS_FAILURE; } else { @@ -341,7 +346,7 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx) CompactPartySlots(); CalculatePlayerPartyCount(); StringExpandPlaceholders(gStringVar4, gText_MysteryEventSentOver); - ctx->data[2] = 2; + ctx->mStatus = MEVENT_STATUS_SUCCESS; } return FALSE; @@ -349,11 +354,11 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx) bool8 MEScrCmd_addtrainer(struct ScriptContext *ctx) { - u32 data = ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0]; + u32 data = ScriptReadWord(ctx) - ctx->mOffset + ctx->mScriptBase; memcpy(&gSaveBlock2Ptr->frontier.ereaderTrainer, (void *)data, sizeof(gSaveBlock2Ptr->frontier.ereaderTrainer)); ValidateEReaderTrainer(); StringExpandPlaceholders(gStringVar4, gText_MysteryEventNewTrainer); - ctx->data[2] = 2; + ctx->mStatus = MEVENT_STATUS_SUCCESS; return FALSE; } @@ -361,19 +366,19 @@ bool8 MEScrCmd_enableresetrtc(struct ScriptContext *ctx) { EnableResetRTC(); StringExpandPlaceholders(gStringVar4, gText_InGameClockUsable); - ctx->data[2] = 2; + ctx->mStatus = MEVENT_STATUS_SUCCESS; return FALSE; } bool8 MEScrCmd_checksum(struct ScriptContext *ctx) { int checksum = ScriptReadWord(ctx); - u8 *data = (u8 *)(ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0]); - u8 *dataEnd = (u8 *)(ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0]); + u8 *data = (u8 *)(ScriptReadWord(ctx) - ctx->mOffset + ctx->mScriptBase); + u8 *dataEnd = (u8 *)(ScriptReadWord(ctx) - ctx->mOffset + ctx->mScriptBase); if (checksum != CalcByteArraySum(data, dataEnd - data)) { - ctx->data[3] = 0; - ctx->data[2] = 1; + ctx->mValid = FALSE; + ctx->mStatus = MEVENT_STATUS_LOAD_ERROR; } return TRUE; } @@ -381,12 +386,12 @@ bool8 MEScrCmd_checksum(struct ScriptContext *ctx) bool8 MEScrCmd_crc(struct ScriptContext *ctx) { int crc = ScriptReadWord(ctx); - u8 *data = (u8 *)(ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0]); - u8 *dataEnd = (u8 *)(ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0]); + u8 *data = (u8 *)(ScriptReadWord(ctx) - ctx->mOffset + ctx->mScriptBase); + u8 *dataEnd = (u8 *)(ScriptReadWord(ctx) - ctx->mOffset + ctx->mScriptBase); if (crc != CalcCRC16(data, dataEnd - data)) { - ctx->data[3] = 0; - ctx->data[2] = 1; + ctx->mValid = FALSE; + ctx->mStatus = MEVENT_STATUS_LOAD_ERROR; } return TRUE; } diff --git a/src/mystery_gift.c b/src/mystery_gift.c index 1df6533d96..72fc2b3774 100755 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -506,9 +506,13 @@ static void IncrementCardStat(u32 statType) } if (stat == NULL) + { AGB_ASSERT(0); + } else if (++(*stat) > MAX_WONDER_CARD_STAT) + { *stat = MAX_WONDER_CARD_STAT; + } } } diff --git a/src/naming_screen.c b/src/naming_screen.c index dcd60259b7..0019a51b1d 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -1408,10 +1408,10 @@ static void NamingScreen_CreatePlayerIcon(void) u8 rivalGfxId; u8 spriteId; - rivalGfxId = GetRivalAvatarGraphicsIdByStateIdAndGender(0, sNamingScreen->monSpecies); - spriteId = AddPseudoObjectEvent(rivalGfxId, SpriteCallbackDummy, 56, 37, 0); + rivalGfxId = GetRivalAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_STATE_NORMAL, sNamingScreen->monSpecies); + spriteId = CreateObjectGraphicsSprite(rivalGfxId, SpriteCallbackDummy, 56, 37, 0); gSprites[spriteId].oam.priority = 3; - StartSpriteAnim(&gSprites[spriteId], 4); + StartSpriteAnim(&gSprites[spriteId], ANIM_STD_GO_SOUTH); } static void NamingScreen_CreatePCIcon(void) @@ -1436,9 +1436,9 @@ static void NamingScreen_CreateWaldaDadIcon(void) { u8 spriteId; - spriteId = AddPseudoObjectEvent(OBJ_EVENT_GFX_MAN_1, SpriteCallbackDummy, 56, 37, 0); + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_MAN_1, SpriteCallbackDummy, 56, 37, 0); gSprites[spriteId].oam.priority = 3; - StartSpriteAnim(&gSprites[spriteId], 4); + StartSpriteAnim(&gSprites[spriteId], ANIM_STD_GO_SOUTH); } //-------------------------------------------------- diff --git a/src/new_game.c b/src/new_game.c index 553fd7b9ee..4774063d4b 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -29,7 +29,6 @@ #include "pokedex.h" #include "apprentice.h" #include "frontier_util.h" -#include "constants/maps.h" #include "pokedex.h" #include "save.h" #include "link_rfu.h" @@ -126,7 +125,7 @@ static void ClearFrontierRecord(void) static void WarpToTruck(void) { - SetWarpDestination(MAP_GROUP(INSIDE_OF_TRUCK), MAP_NUM(INSIDE_OF_TRUCK), -1, -1, -1); + SetWarpDestination(MAP_GROUP(INSIDE_OF_TRUCK), MAP_NUM(INSIDE_OF_TRUCK), WARP_ID_NONE, -1, -1); WarpIntoMap(); } diff --git a/src/option_menu.c b/src/option_menu.c index e66bddd7f2..2991913d78 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -79,9 +79,9 @@ static void DrawBgWindowFrames(void); EWRAM_DATA static bool8 sArrowPressed = FALSE; -static const u16 sOptionMenuText_Pal[] = INCBIN_U16("graphics/misc/option_menu_text.gbapal"); +static const u16 sOptionMenuText_Pal[] = INCBIN_U16("graphics/interface/option_menu_text.gbapal"); // note: this is only used in the Japanese release -static const u8 sEqualSignGfx[] = INCBIN_U8("graphics/misc/option_menu_equals_sign.4bpp"); +static const u8 sEqualSignGfx[] = INCBIN_U8("graphics/interface/option_menu_equals_sign.4bpp"); static const u8 *const sOptionMenuItemsNames[MENUITEM_COUNT] = { diff --git a/src/overworld.c b/src/overworld.c index 518771875b..ba6eaa1679 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -62,7 +62,6 @@ #include "constants/abilities.h" #include "constants/layouts.h" #include "constants/map_types.h" -#include "constants/maps.h" #include "constants/region_map_sections.h" #include "constants/songs.h" #include "constants/trainer_hill.h" @@ -175,7 +174,6 @@ static u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *, u static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *, u8, u16, u8); static u16 GetCenterScreenMetatileBehavior(void); -// IWRAM bss vars static void *sUnusedOverworldCallback; static u8 sPlayerLinkStates[MAX_LINK_PLAYERS]; // This callback is called with a player's key code. It then returns an @@ -185,17 +183,15 @@ static u16 (*sPlayerKeyInterceptCallback)(u32); static bool8 sReceivingFromLink; static u8 sRfuKeepAliveTimer; -// IWRAM common -u16 *gBGTilemapBuffers1; -u16 *gBGTilemapBuffers2; -u16 *gBGTilemapBuffers3; +u16 *gOverworldTilemapBuffer_Bg2; +u16 *gOverworldTilemapBuffer_Bg1; +u16 *gOverworldTilemapBuffer_Bg3; u16 gHeldKeyCodeToSend; void (*gFieldCallback)(void); bool8 (*gFieldCallback2)(void); u8 gLocalLinkPlayerId; // This is our player id in a multiplayer mode. u8 gFieldLinkPlayerCount; -// EWRAM vars EWRAM_DATA static u8 sObjectEventLoadFlag = 0; EWRAM_DATA struct WarpData gLastUsedWarp = {0}; EWRAM_DATA static struct WarpData sWarpDestination = {0}; // new warp position @@ -207,12 +203,11 @@ EWRAM_DATA static u16 sAmbientCrySpecies = 0; EWRAM_DATA static bool8 sIsAmbientCryWaterMon = FALSE; EWRAM_DATA struct LinkPlayerObjectEvent gLinkPlayerObjectEvents[4] = {0}; -// const rom data static const struct WarpData sDummyWarpData = { - .mapGroup = -1, - .mapNum = -1, - .warpId = -1, + .mapGroup = MAP_GROUP(UNDEFINED), + .mapNum = MAP_NUM(UNDEFINED), + .warpId = WARP_ID_NONE, .x = -1, .y = -1, }; @@ -495,7 +490,7 @@ void LoadSaveblockObjEventScripts(void) savObjTemplates[i].script = mapHeaderObjTemplates[i].script; } -void Overworld_SetObjEventTemplateCoords(u8 localId, s16 x, s16 y) +void SetObjEventTemplateCoords(u8 localId, s16 x, s16 y) { s32 i; struct ObjectEventTemplate *savObjTemplates = gSaveBlock1Ptr->objectEventTemplates; @@ -512,7 +507,7 @@ void Overworld_SetObjEventTemplateCoords(u8 localId, s16 x, s16 y) } } -void Overworld_SetObjEventTemplateMovementType(u8 localId, u8 movementType) +void SetObjEventTemplateMovementType(u8 localId, u8 movementType) { s32 i; @@ -570,11 +565,11 @@ static void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId static bool32 IsDummyWarp(struct WarpData *warp) { - if (warp->mapGroup != -1) + if (warp->mapGroup != (s8)MAP_GROUP(UNDEFINED)) return FALSE; - else if (warp->mapNum != -1) + else if (warp->mapNum != (s8)MAP_NUM(UNDEFINED)) return FALSE; - else if (warp->warpId != -1) + else if (warp->warpId != WARP_ID_NONE) return FALSE; else if (warp->x != -1) return FALSE; @@ -612,16 +607,20 @@ static void SetPlayerCoordsFromWarp(void) { if (gSaveBlock1Ptr->location.warpId >= 0 && gSaveBlock1Ptr->location.warpId < gMapHeader.events->warpCount) { + // warpId is a valid warp for this map, use the coords of that warp. gSaveBlock1Ptr->pos.x = gMapHeader.events->warps[gSaveBlock1Ptr->location.warpId].x; gSaveBlock1Ptr->pos.y = gMapHeader.events->warps[gSaveBlock1Ptr->location.warpId].y; } else if (gSaveBlock1Ptr->location.x >= 0 && gSaveBlock1Ptr->location.y >= 0) { + // Invalid warpId given. The given coords are valid, use those instead. + // WARP_ID_NONE is used to reach this intentionally. gSaveBlock1Ptr->pos.x = gSaveBlock1Ptr->location.x; gSaveBlock1Ptr->pos.y = gSaveBlock1Ptr->location.y; } else { + // Invalid warpId and coords given. Put player in center of map. gSaveBlock1Ptr->pos.x = gMapHeader.mapLayout->width / 2; gSaveBlock1Ptr->pos.y = gMapHeader.mapLayout->height / 2; } @@ -663,7 +662,7 @@ void SetWarpDestinationToHealLocation(u8 healLocationId) { const struct HealLocation *warp = GetHealLocation(healLocationId); if (warp) - SetWarpDestination(warp->group, warp->map, -1, warp->x, warp->y); + SetWarpDestination(warp->group, warp->map, WARP_ID_NONE, warp->x, warp->y); } void SetWarpDestinationToLastHealLocation(void) @@ -675,7 +674,7 @@ void SetLastHealLocationWarp(u8 healLocationId) { const struct HealLocation *healLocation = GetHealLocation(healLocationId); if (healLocation) - SetWarpData(&gSaveBlock1Ptr->lastHealLocation, healLocation->group, healLocation->map, -1, healLocation->x, healLocation->y); + SetWarpData(&gSaveBlock1Ptr->lastHealLocation, healLocation->group, healLocation->map, WARP_ID_NONE, healLocation->x, healLocation->y); } void UpdateEscapeWarp(s16 x, s16 y) @@ -683,7 +682,7 @@ void UpdateEscapeWarp(s16 x, s16 y) u8 currMapType = GetCurrentMapType(); u8 destMapType = GetMapTypeByGroupAndId(sWarpDestination.mapGroup, sWarpDestination.mapNum); if (IsMapTypeOutdoors(currMapType) && IsMapTypeOutdoors(destMapType) != TRUE) - SetEscapeWarp(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x - MAP_OFFSET, y - MAP_OFFSET + 1); + SetEscapeWarp(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, WARP_ID_NONE, x - MAP_OFFSET, y - MAP_OFFSET + 1); } void SetEscapeWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) @@ -716,7 +715,7 @@ void SetWarpDestinationToFixedHoleWarp(s16 x, s16 y) if (IsDummyWarp(&sFixedHoleWarp) == TRUE) sWarpDestination = gLastUsedWarp; else - SetWarpDestination(sFixedHoleWarp.mapGroup, sFixedHoleWarp.mapNum, -1, x, y); + SetWarpDestination(sFixedHoleWarp.mapGroup, sFixedHoleWarp.mapNum, WARP_ID_NONE, x, y); } static void SetWarpDestinationToContinueGameWarp(void) @@ -733,7 +732,7 @@ void SetContinueGameWarpToHealLocation(u8 healLocationId) { const struct HealLocation *warp = GetHealLocation(healLocationId); if (warp) - SetWarpData(&gSaveBlock1Ptr->continueGameWarp, warp->group, warp->map, -1, warp->x, warp->y); + SetWarpData(&gSaveBlock1Ptr->continueGameWarp, warp->group, warp->map, WARP_ID_NONE, warp->x, warp->y); } void SetContinueGameWarpToDynamicWarp(int unused) @@ -763,7 +762,7 @@ static bool8 SetDiveWarp(u8 dir, u16 x, u16 y) if (connection != NULL) { - SetWarpDestination(connection->mapGroup, connection->mapNum, -1, x, y); + SetWarpDestination(connection->mapGroup, connection->mapNum, WARP_ID_NONE, x, y); } else { @@ -789,7 +788,7 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum) { s32 paletteIndex; - SetWarpDestination(mapGroup, mapNum, -1, -1, -1); + SetWarpDestination(mapGroup, mapNum, WARP_ID_NONE, -1, -1); // Dont transition map music between BF Outside West/East if (gMapHeader.regionMapSectionId != MAPSEC_BATTLE_FRONTIER) @@ -804,7 +803,7 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum) RestartWildEncounterImmunitySteps(); TryUpdateRandomTrainerRematches(mapGroup, mapNum); DoTimeBasedEvents(); - SetSav1WeatherFromCurrMapHeader(); + SetSavedWeatherFromCurrMapHeader(); ChooseAmbientCrySpecies(); SetDefaultFlashLevel(); Overworld_ClearSavedMusic(); @@ -855,7 +854,7 @@ static void LoadMapFromWarp(bool32 a1) TryUpdateRandomTrainerRematches(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum); if (a1 != TRUE) DoTimeBasedEvents(); - SetSav1WeatherFromCurrMapHeader(); + SetSavedWeatherFromCurrMapHeader(); ChooseAmbientCrySpecies(); if (isOutdoors) FlagClear(FLAG_SYS_USE_FLASH); @@ -968,6 +967,10 @@ bool32 Overworld_IsBikingAllowed(void) return TRUE; } +// Flash level of 0 is fully bright +// Flash level of 1 is the largest flash radius +// Flash level of 7 is the smallest flash radius +// Flash level of 8 is fully black void SetDefaultFlashLevel(void) { if (!gMapHeader.cave) @@ -978,14 +981,14 @@ void SetDefaultFlashLevel(void) gSaveBlock1Ptr->flashLevel = gMaxFlashLevel - 1; } -void Overworld_SetFlashLevel(s32 flashLevel) +void SetFlashLevel(s32 flashLevel) { if (flashLevel < 0 || flashLevel > gMaxFlashLevel) flashLevel = 0; gSaveBlock1Ptr->flashLevel = flashLevel; } -u8 Overworld_GetFlashLevel(void) +u8 GetFlashLevel(void) { return gSaveBlock1Ptr->flashLevel; } @@ -1100,7 +1103,7 @@ u16 GetCurrLocationDefaultMusic(void) // Play the desert music only when the sandstorm is active on Route 111. if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE111) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE111) - && GetSav1Weather() == WEATHER_SANDSTORM) + && GetSavedWeather() == WEATHER_SANDSTORM) return MUS_ROUTE111; music = GetLocationMusic(&gSaveBlock1Ptr->location); @@ -1391,12 +1394,12 @@ static void InitOverworldBgs(void) SetBgAttribute(1, BG_ATTR_MOSAIC, 1); SetBgAttribute(2, BG_ATTR_MOSAIC, 1); SetBgAttribute(3, BG_ATTR_MOSAIC, 1); - gBGTilemapBuffers2 = AllocZeroed(BG_SCREEN_SIZE); - gBGTilemapBuffers1 = AllocZeroed(BG_SCREEN_SIZE); - gBGTilemapBuffers3 = AllocZeroed(BG_SCREEN_SIZE); - SetBgTilemapBuffer(1, gBGTilemapBuffers2); - SetBgTilemapBuffer(2, gBGTilemapBuffers1); - SetBgTilemapBuffer(3, gBGTilemapBuffers3); + gOverworldTilemapBuffer_Bg1 = AllocZeroed(BG_SCREEN_SIZE); + gOverworldTilemapBuffer_Bg2 = AllocZeroed(BG_SCREEN_SIZE); + gOverworldTilemapBuffer_Bg3 = AllocZeroed(BG_SCREEN_SIZE); + SetBgTilemapBuffer(1, gOverworldTilemapBuffer_Bg1); + SetBgTilemapBuffer(2, gOverworldTilemapBuffer_Bg2); + SetBgTilemapBuffer(3, gOverworldTilemapBuffer_Bg3); InitStandardTextBoxWindows(); } @@ -1404,12 +1407,9 @@ void CleanupOverworldWindowsAndTilemaps(void) { ClearMirageTowerPulseBlendEffect(); FreeAllOverworldWindowBuffers(); - if (gBGTilemapBuffers3) - FREE_AND_SET_NULL(gBGTilemapBuffers3); - if (gBGTilemapBuffers1) - FREE_AND_SET_NULL(gBGTilemapBuffers1); - if (gBGTilemapBuffers2) - FREE_AND_SET_NULL(gBGTilemapBuffers2); + TRY_FREE_AND_SET_NULL(gOverworldTilemapBuffer_Bg3); + TRY_FREE_AND_SET_NULL(gOverworldTilemapBuffer_Bg2); + TRY_FREE_AND_SET_NULL(gOverworldTilemapBuffer_Bg1); } static void ResetSafariZoneFlag_(void) @@ -1790,7 +1790,7 @@ static void InitCurrentFlashLevelScanlineEffect(void) WriteBattlePyramidViewScanlineEffectBuffer(); ScanlineEffect_SetParams(sFlashEffectParams); } - else if ((flashLevel = Overworld_GetFlashLevel())) + else if ((flashLevel = GetFlashLevel())) { WriteFlashScanlineEffectBuffer(flashLevel); ScanlineEffect_SetParams(sFlashEffectParams); @@ -2692,7 +2692,7 @@ static void LoadCableClubPlayer(s32 linkPlayerId, s32 myPlayerId, struct CableCl GetLinkPlayerCoords(linkPlayerId, &x, &y); trainer->pos.x = x; trainer->pos.y = y; - trainer->pos.height = GetLinkPlayerElevation(linkPlayerId); + trainer->pos.elevation = GetLinkPlayerElevation(linkPlayerId); trainer->metatileBehavior = MapGridGetMetatileBehaviorAt(x, y); } @@ -2745,7 +2745,7 @@ static const u8 *TryInteractWithPlayer(struct CableClubPlayer *player) otherPlayerPos = player->pos; otherPlayerPos.x += gDirectionToVectors[player->facing].x; otherPlayerPos.y += gDirectionToVectors[player->facing].y; - otherPlayerPos.height = 0; + otherPlayerPos.elevation = 0; linkPlayerId = GetLinkPlayerIdAt(otherPlayerPos.x, otherPlayerPos.y); if (linkPlayerId != MAX_LINK_PLAYERS) @@ -2955,7 +2955,7 @@ static void InitLinkPlayerObjectEventPos(struct ObjectEvent *objEvent, s16 x, s1 objEvent->previousCoords.y = y; SetSpritePosToMapCoords(x, y, &objEvent->initialCoords.x, &objEvent->initialCoords.y); objEvent->initialCoords.x += 8; - ObjectEventUpdateZCoord(objEvent); + ObjectEventUpdateElevation(objEvent); } static void SetLinkPlayerObjectRange(u8 linkPlayerId, u8 dir) @@ -3095,7 +3095,7 @@ static bool8 FacingHandler_DpadMovement(struct LinkPlayerObjectEvent *linkPlayer { objEvent->directionSequenceIndex = 16; ShiftObjectEventCoords(objEvent, x, y); - ObjectEventUpdateZCoord(objEvent); + ObjectEventUpdateElevation(objEvent); return TRUE; } } @@ -3147,17 +3147,17 @@ static u8 FlipVerticalAndClearForced(u8 newFacing, u8 oldFacing) return oldFacing; } -static u8 LinkPlayerDetectCollision(u8 selfObjEventId, u8 a2, s16 x, s16 y) +static bool8 LinkPlayerDetectCollision(u8 selfObjEventId, u8 direction, s16 x, s16 y) { u8 i; - for (i = 0; i < 16; i++) + for (i = 0; i < OBJECT_EVENTS_COUNT; i++) { if (i != selfObjEventId) { if ((gObjectEvents[i].currentCoords.x == x && gObjectEvents[i].currentCoords.y == y) || (gObjectEvents[i].previousCoords.x == x && gObjectEvents[i].previousCoords.y == y)) { - return 1; + return TRUE; } } } @@ -3177,14 +3177,14 @@ static void CreateLinkPlayerSprite(u8 linkPlayerId, u8 gameVersion) { case VERSION_FIRE_RED: case VERSION_LEAF_GREEN: - objEvent->spriteId = AddPseudoObjectEvent(GetFRLGAvatarGraphicsIdByGender(linkGender(objEvent)), SpriteCB_LinkPlayer, 0, 0, 0); + objEvent->spriteId = CreateObjectGraphicsSprite(GetFRLGAvatarGraphicsIdByGender(linkGender(objEvent)), SpriteCB_LinkPlayer, 0, 0, 0); break; case VERSION_RUBY: case VERSION_SAPPHIRE: - objEvent->spriteId = AddPseudoObjectEvent(GetRSAvatarGraphicsIdByGender(linkGender(objEvent)), SpriteCB_LinkPlayer, 0, 0, 0); + objEvent->spriteId = CreateObjectGraphicsSprite(GetRSAvatarGraphicsIdByGender(linkGender(objEvent)), SpriteCB_LinkPlayer, 0, 0, 0); break; case VERSION_EMERALD: - objEvent->spriteId = AddPseudoObjectEvent(GetRivalAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_STATE_NORMAL, linkGender(objEvent)), SpriteCB_LinkPlayer, 0, 0, 0); + objEvent->spriteId = CreateObjectGraphicsSprite(GetRivalAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_STATE_NORMAL, linkGender(objEvent)), SpriteCB_LinkPlayer, 0, 0, 0); break; } @@ -3201,8 +3201,8 @@ static void SpriteCB_LinkPlayer(struct Sprite *sprite) struct ObjectEvent *objEvent = &gObjectEvents[linkPlayerObjEvent->objEventId]; sprite->x = objEvent->initialCoords.x; sprite->y = objEvent->initialCoords.y; - SetObjectSubpriorityByZCoord(objEvent->previousElevation, sprite, 1); - sprite->oam.priority = ZCoordToPriority(objEvent->previousElevation); + SetObjectSubpriorityByElevation(objEvent->previousElevation, sprite, 1); + sprite->oam.priority = ElevationToPriority(objEvent->previousElevation); if (linkPlayerObjEvent->movementMode == MOVEMENT_MODE_FREE) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(linkDirection(objEvent))); diff --git a/src/party_menu.c b/src/party_menu.c index 43f5220346..e15d001c6d 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -65,11 +65,9 @@ #include "window.h" #include "constants/battle.h" #include "constants/battle_frontier.h" -#include "constants/easy_chat.h" #include "constants/field_effects.h" #include "constants/item_effects.h" #include "constants/items.h" -#include "constants/maps.h" #include "constants/moves.h" #include "constants/party_menu.h" #include "constants/rgb.h" @@ -99,7 +97,7 @@ enum struct PartyMenuBoxInfoRects { - void (*blitFunc)(u8, u8, u8, u8, u8, u8); + void (*blitFunc)(u8, u8, u8, u8, u8, bool8); u8 dimensions[24]; u8 descTextLeft; u8 descTextTop; @@ -379,8 +377,8 @@ static void Task_ChooseMonForMoveRelearner(u8); static void CB2_ChooseMonForMoveRelearner(void); static void Task_BattlePyramidChooseMonHeldItems(u8); static void ShiftMoveSlot(struct Pokemon*, u8, u8); -static void BlitBitmapToPartyWindow_LeftColumn(u8, u8, u8, u8, u8, u8); -static void BlitBitmapToPartyWindow_RightColumn(u8, u8, u8, u8, u8, u8); +static void BlitBitmapToPartyWindow_LeftColumn(u8, u8, u8, u8, u8, bool8); +static void BlitBitmapToPartyWindow_RightColumn(u8, u8, u8, u8, u8, bool8); static void CursorCb_Summary(u8); static void CursorCb_Switch(u8); static void CursorCb_Cancel1(u8); @@ -954,7 +952,7 @@ static void DisplayPartyPokemonDataForMultiBattle(u8 slot) { menuBox->infoRects->blitFunc(menuBox->windowId, 0, 0, 0, 0, FALSE); StringCopy(gStringVar1, gMultiPartnerParty[actualSlot].nickname); - StringGetEnd10(gStringVar1); + StringGet_Nickname(gStringVar1); ConvertInternationalPlayerName(gStringVar1); DisplayPartyPokemonBarDetail(menuBox->windowId, gStringVar1, 0, menuBox->infoRects->dimensions); DisplayPartyPokemonLevel(gMultiPartnerParty[actualSlot].level, menuBox); @@ -1622,7 +1620,7 @@ static s8 GetNewSlotDoubleLayout(s8 slotId, s8 movementDir) u8* GetMonNickname(struct Pokemon *mon, u8 *dest) { GetMonData(mon, MON_DATA_NICKNAME, dest); - return StringGetEnd10(dest); + return StringGet_Nickname(dest); } #define tKeepOpen data[0] @@ -2088,35 +2086,35 @@ static void BlitBitmapToPartyWindow(u8 windowId, const u8 *b, u8 c, u8 x, u8 y, } } -static void BlitBitmapToPartyWindow_LeftColumn(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 isEgg) +static void BlitBitmapToPartyWindow_LeftColumn(u8 windowId, u8 x, u8 y, u8 width, u8 height, bool8 hideHP) { if (width == 0 && height == 0) { width = 10; height = 7; } - if (isEgg == FALSE) - BlitBitmapToPartyWindow(windowId, sMainSlotTileNums, 10, x, y, width, height); + if (hideHP == FALSE) + BlitBitmapToPartyWindow(windowId, sSlotTilemap_Main, 10, x, y, width, height); else - BlitBitmapToPartyWindow(windowId, sMainSlotTileNums_Egg, 10, x, y, width, height); + BlitBitmapToPartyWindow(windowId, sSlotTilemap_MainNoHP, 10, x, y, width, height); } -static void BlitBitmapToPartyWindow_RightColumn(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 isEgg) +static void BlitBitmapToPartyWindow_RightColumn(u8 windowId, u8 x, u8 y, u8 width, u8 height, bool8 hideHP) { if (width == 0 && height == 0) { width = 18; height = 3; } - if (isEgg == FALSE) - BlitBitmapToPartyWindow(windowId, sOtherSlotsTileNums, 18, x, y, width, height); + if (hideHP == FALSE) + BlitBitmapToPartyWindow(windowId, sSlotTilemap_Wide, 18, x, y, width, height); else - BlitBitmapToPartyWindow(windowId, sOtherSlotsTileNums_Egg, 18, x, y, width, height); + BlitBitmapToPartyWindow(windowId, sSlotTilemap_WideNoHP, 18, x, y, width, height); } static void DrawEmptySlot(u8 windowId) { - BlitBitmapToPartyWindow(windowId, sEmptySlotTileNums, 18, 0, 0, 18, 3); + BlitBitmapToPartyWindow(windowId, sSlotTilemap_WideEmpty, 18, 0, 0, 18, 3); } #define LOAD_PARTY_BOX_PAL(paletteIds, paletteOffsets) \ @@ -3343,7 +3341,7 @@ static void Task_HandleSendMailToPCYesNoInput(u8 taskId) switch (Menu_ProcessInputNoWrapClearOnChoose()) { case 0: // Yes, send to PC - if (TakeMailFromMon2(&gPlayerParty[gPartyMenu.slotId]) != 0xFF) + if (TakeMailFromMonAndSave(&gPlayerParty[gPartyMenu.slotId]) != MAIL_NONE) { DisplayPartyMenuMessage(gText_MailSentToPC, FALSE); gTasks[taskId].func = Task_UpdateHeldItemSprite; @@ -6133,7 +6131,7 @@ static void BufferMonSelection(void) { gSpecialVar_0x8004 = GetCursorSelectionMonId(); if (gSpecialVar_0x8004 >= PARTY_SIZE) - gSpecialVar_0x8004 = 0xFF; + gSpecialVar_0x8004 = PARTY_NOTHING_CHOSEN; gFieldCallback2 = CB2_FadeFromPartyMenu; SetMainCallback2(CB2_ReturnToField); } @@ -6176,7 +6174,7 @@ static void CB2_ChooseContestMon(void) { gContestMonPartyIndex = GetCursorSelectionMonId(); if (gContestMonPartyIndex >= PARTY_SIZE) - gContestMonPartyIndex = 0xFF; + gContestMonPartyIndex = PARTY_NOTHING_CHOSEN; gSpecialVar_0x8004 = gContestMonPartyIndex; gFieldCallback2 = CB2_FadeFromPartyMenu; SetMainCallback2(CB2_ReturnToField); @@ -6221,7 +6219,7 @@ static void CB2_ChooseMonForMoveRelearner(void) { gSpecialVar_0x8004 = GetCursorSelectionMonId(); if (gSpecialVar_0x8004 >= PARTY_SIZE) - gSpecialVar_0x8004 = 0xFF; + gSpecialVar_0x8004 = PARTY_NOTHING_CHOSEN; else gSpecialVar_0x8005 = GetNumberOfRelearnableMoves(&gPlayerParty[gSpecialVar_0x8004]); gFieldCallback2 = CB2_FadeFromPartyMenu; diff --git a/src/player_pc.c b/src/player_pc.c index 06f58fdeb4..bf8479ce11 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -511,7 +511,7 @@ static void InitItemStorageMenu(u8 taskId, u8 var) tWindowId = AddWindow(&windowTemplate); SetStandardWindowBorderStyle(tWindowId, 0); PrintMenuTable(tWindowId, ARRAY_COUNT(sItemStorage_MenuActions), sItemStorage_MenuActions); - InitMenuInUpperLeftCornerNormal(tWindowId, 4, var); + InitMenuInUpperLeftCornerNormal(tWindowId, ARRAY_COUNT(sItemStorage_MenuActions), var); ScheduleBgCopyTilemapToVram(0); ItemStorageMenuPrint(sItemStorage_OptionDescriptions[var]); } @@ -753,7 +753,7 @@ static void Mailbox_PrintMailOptions(u8 taskId) { u8 windowId = MailboxMenu_AddWindow(MAILBOXWIN_OPTIONS); PrintMenuTable(windowId, ARRAY_COUNT(gMailboxMailOptions), gMailboxMailOptions); - InitMenuInUpperLeftCornerNormal(windowId, 4, 0); + InitMenuInUpperLeftCornerNormal(windowId, ARRAY_COUNT(gMailboxMailOptions), 0); ScheduleBgCopyTilemapToVram(0); gTasks[taskId].func = Mailbox_MailOptionsProcessInput; } diff --git a/src/pokeball.c b/src/pokeball.c index 501d86ca35..a9ccd42d60 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -59,34 +59,34 @@ static u16 GetBattlerPokeballItemId(u8 battlerId); const struct CompressedSpriteSheet gBallSpriteSheets[POKEBALL_COUNT] = { - [BALL_POKE] = {gInterfaceGfx_PokeBall, 384, GFX_TAG_POKEBALL}, - [BALL_GREAT] = {gInterfaceGfx_GreatBall, 384, GFX_TAG_GREATBALL}, - [BALL_SAFARI] = {gInterfaceGfx_SafariBall, 384, GFX_TAG_SAFARIBALL}, - [BALL_ULTRA] = {gInterfaceGfx_UltraBall, 384, GFX_TAG_ULTRABALL}, - [BALL_MASTER] = {gInterfaceGfx_MasterBall, 384, GFX_TAG_MASTERBALL}, - [BALL_NET] = {gInterfaceGfx_NetBall, 384, GFX_TAG_NETBALL}, - [BALL_DIVE] = {gInterfaceGfx_DiveBall, 384, GFX_TAG_DIVEBALL}, - [BALL_NEST] = {gInterfaceGfx_NestBall, 384, GFX_TAG_NESTBALL}, - [BALL_REPEAT] = {gInterfaceGfx_RepeatBall, 384, GFX_TAG_REPEATBALL}, - [BALL_TIMER] = {gInterfaceGfx_TimerBall, 384, GFX_TAG_TIMERBALL}, - [BALL_LUXURY] = {gInterfaceGfx_LuxuryBall, 384, GFX_TAG_LUXURYBALL}, - [BALL_PREMIER] = {gInterfaceGfx_PremierBall, 384, GFX_TAG_PREMIERBALL}, + [BALL_POKE] = {gBallGfx_Poke, 384, GFX_TAG_POKEBALL}, + [BALL_GREAT] = {gBallGfx_Great, 384, GFX_TAG_GREATBALL}, + [BALL_SAFARI] = {gBallGfx_Safari, 384, GFX_TAG_SAFARIBALL}, + [BALL_ULTRA] = {gBallGfx_Ultra, 384, GFX_TAG_ULTRABALL}, + [BALL_MASTER] = {gBallGfx_Master, 384, GFX_TAG_MASTERBALL}, + [BALL_NET] = {gBallGfx_Net, 384, GFX_TAG_NETBALL}, + [BALL_DIVE] = {gBallGfx_Dive, 384, GFX_TAG_DIVEBALL}, + [BALL_NEST] = {gBallGfx_Nest, 384, GFX_TAG_NESTBALL}, + [BALL_REPEAT] = {gBallGfx_Repeat, 384, GFX_TAG_REPEATBALL}, + [BALL_TIMER] = {gBallGfx_Timer, 384, GFX_TAG_TIMERBALL}, + [BALL_LUXURY] = {gBallGfx_Luxury, 384, GFX_TAG_LUXURYBALL}, + [BALL_PREMIER] = {gBallGfx_Premier, 384, GFX_TAG_PREMIERBALL}, }; const struct CompressedSpritePalette gBallSpritePalettes[POKEBALL_COUNT] = { - [BALL_POKE] = {gInterfacePal_PokeBall, GFX_TAG_POKEBALL}, - [BALL_GREAT] = {gInterfacePal_GreatBall, GFX_TAG_GREATBALL}, - [BALL_SAFARI] = {gInterfacePal_SafariBall, GFX_TAG_SAFARIBALL}, - [BALL_ULTRA] = {gInterfacePal_UltraBall, GFX_TAG_ULTRABALL}, - [BALL_MASTER] = {gInterfacePal_MasterBall, GFX_TAG_MASTERBALL}, - [BALL_NET] = {gInterfacePal_NetBall, GFX_TAG_NETBALL}, - [BALL_DIVE] = {gInterfacePal_DiveBall, GFX_TAG_DIVEBALL}, - [BALL_NEST] = {gInterfacePal_NestBall, GFX_TAG_NESTBALL}, - [BALL_REPEAT] = {gInterfacePal_RepeatBall, GFX_TAG_REPEATBALL}, - [BALL_TIMER] = {gInterfacePal_TimerBall, GFX_TAG_TIMERBALL}, - [BALL_LUXURY] = {gInterfacePal_LuxuryBall, GFX_TAG_LUXURYBALL}, - [BALL_PREMIER] = {gInterfacePal_PremierBall, GFX_TAG_PREMIERBALL}, + [BALL_POKE] = {gBallPal_Poke, GFX_TAG_POKEBALL}, + [BALL_GREAT] = {gBallPal_Great, GFX_TAG_GREATBALL}, + [BALL_SAFARI] = {gBallPal_Safari, GFX_TAG_SAFARIBALL}, + [BALL_ULTRA] = {gBallPal_Ultra, GFX_TAG_ULTRABALL}, + [BALL_MASTER] = {gBallPal_Master, GFX_TAG_MASTERBALL}, + [BALL_NET] = {gBallPal_Net, GFX_TAG_NETBALL}, + [BALL_DIVE] = {gBallPal_Dive, GFX_TAG_DIVEBALL}, + [BALL_NEST] = {gBallPal_Nest, GFX_TAG_NESTBALL}, + [BALL_REPEAT] = {gBallPal_Repeat, GFX_TAG_REPEATBALL}, + [BALL_TIMER] = {gBallPal_Timer, GFX_TAG_TIMERBALL}, + [BALL_LUXURY] = {gBallPal_Luxury, GFX_TAG_LUXURYBALL}, + [BALL_PREMIER] = {gBallPal_Premier, GFX_TAG_PREMIERBALL}, }; static const struct OamData sBallOamData = @@ -204,6 +204,7 @@ static const union AffineAnimCmd *const sAffineAnim_BallRotate[] = const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = { + [BALL_POKE] = { .tileTag = GFX_TAG_POKEBALL, .paletteTag = GFX_TAG_POKEBALL, @@ -213,6 +214,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .affineAnims = sAffineAnim_BallRotate, .callback = SpriteCB_BallThrow, }, + [BALL_GREAT] = { .tileTag = GFX_TAG_GREATBALL, .paletteTag = GFX_TAG_GREATBALL, @@ -222,6 +224,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .affineAnims = sAffineAnim_BallRotate, .callback = SpriteCB_BallThrow, }, + [BALL_SAFARI] = { .tileTag = GFX_TAG_SAFARIBALL, .paletteTag = GFX_TAG_SAFARIBALL, @@ -231,6 +234,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .affineAnims = sAffineAnim_BallRotate, .callback = SpriteCB_BallThrow, }, + [BALL_ULTRA] = { .tileTag = GFX_TAG_ULTRABALL, .paletteTag = GFX_TAG_ULTRABALL, @@ -240,6 +244,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .affineAnims = sAffineAnim_BallRotate, .callback = SpriteCB_BallThrow, }, + [BALL_MASTER] = { .tileTag = GFX_TAG_MASTERBALL, .paletteTag = GFX_TAG_MASTERBALL, @@ -249,6 +254,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .affineAnims = sAffineAnim_BallRotate, .callback = SpriteCB_BallThrow, }, + [BALL_NET] = { .tileTag = GFX_TAG_NETBALL, .paletteTag = GFX_TAG_NETBALL, @@ -258,6 +264,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .affineAnims = sAffineAnim_BallRotate, .callback = SpriteCB_BallThrow, }, + [BALL_DIVE] = { .tileTag = GFX_TAG_DIVEBALL, .paletteTag = GFX_TAG_DIVEBALL, @@ -267,6 +274,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .affineAnims = sAffineAnim_BallRotate, .callback = SpriteCB_BallThrow, }, + [BALL_NEST] = { .tileTag = GFX_TAG_NESTBALL, .paletteTag = GFX_TAG_NESTBALL, @@ -276,6 +284,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .affineAnims = sAffineAnim_BallRotate, .callback = SpriteCB_BallThrow, }, + [BALL_REPEAT] = { .tileTag = GFX_TAG_REPEATBALL, .paletteTag = GFX_TAG_REPEATBALL, @@ -285,6 +294,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .affineAnims = sAffineAnim_BallRotate, .callback = SpriteCB_BallThrow, }, + [BALL_TIMER] = { .tileTag = GFX_TAG_TIMERBALL, .paletteTag = GFX_TAG_TIMERBALL, @@ -294,6 +304,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .affineAnims = sAffineAnim_BallRotate, .callback = SpriteCB_BallThrow, }, + [BALL_LUXURY] = { .tileTag = GFX_TAG_LUXURYBALL, .paletteTag = GFX_TAG_LUXURYBALL, @@ -303,6 +314,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = .affineAnims = sAffineAnim_BallRotate, .callback = SpriteCB_BallThrow, }, + [BALL_PREMIER] = { .tileTag = GFX_TAG_PREMIERBALL, .paletteTag = GFX_TAG_PREMIERBALL, @@ -1138,7 +1150,7 @@ static void SpriteCB_TradePokeball(struct Sprite *sprite) sprite->callback = SpriteCB_TradePokeballSendOff; #ifdef BUGFIX // FIX: If this is used on a sprite that has previously had an affine animation, it will not - // play the shrink anim properly due to being paused. Works together with the fix to `sub_817F77C`. + // play the shrink anim properly due to being paused. Works together with the fix to ResetSpriteAfterAnim. gSprites[monSpriteId].affineAnimPaused = FALSE; #endif // BUGFIX StartSpriteAffineAnim(&gSprites[monSpriteId], BATTLER_AFFINE_RETURN); diff --git a/src/pokedex.c b/src/pokedex.c index b419373024..206782e59e 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -1512,7 +1512,7 @@ void ResetPokedex(void) gSaveBlock2Ptr->pokedex.spindaPersonality = 0; gSaveBlock2Ptr->pokedex.unknown3 = 0; DisableNationalPokedex(); - for (i = 0; i < DEX_FLAGS_NO; i++) + for (i = 0; i < NUM_DEX_FLAG_BYTES; i++) { gSaveBlock2Ptr->pokedex.owned[i] = 0; gSaveBlock2Ptr->pokedex.seen[i] = 0; diff --git a/src/pokedex_area_region_map.c b/src/pokedex_area_region_map.c index 2ec2c5c8d7..4926c019dd 100644 --- a/src/pokedex_area_region_map.c +++ b/src/pokedex_area_region_map.c @@ -8,11 +8,11 @@ static EWRAM_DATA u8 *sPokedexAreaMapBgNum = NULL; -static const u16 sPokedexAreaMap_Pal[] = INCBIN_U16("graphics/interface/region_map.gbapal"); -static const u32 sPokedexAreaMap_Gfx[] = INCBIN_U32("graphics/interface/region_map.8bpp.lz"); -static const u32 sPokedexAreaMap_Tilemap[] = INCBIN_U32("graphics/interface/region_map.bin.lz"); -static const u32 sPokedexAreaMapAffine_Gfx[] = INCBIN_U32("graphics/interface/region_map_affine.8bpp.lz"); -static const u32 sPokedexAreaMapAffine_Tilemap[] = INCBIN_U32("graphics/interface/region_map_affine.bin.lz"); +static const u16 sPokedexAreaMap_Pal[] = INCBIN_U16("graphics/pokedex/region_map.gbapal"); +static const u32 sPokedexAreaMap_Gfx[] = INCBIN_U32("graphics/pokedex/region_map.8bpp.lz"); +static const u32 sPokedexAreaMap_Tilemap[] = INCBIN_U32("graphics/pokedex/region_map.bin.lz"); +static const u32 sPokedexAreaMapAffine_Gfx[] = INCBIN_U32("graphics/pokedex/region_map_affine.8bpp.lz"); +static const u32 sPokedexAreaMapAffine_Tilemap[] = INCBIN_U32("graphics/pokedex/region_map_affine.bin.lz"); void LoadPokedexAreaMapGfx(const struct PokedexAreaMapTemplate *template) { @@ -41,7 +41,7 @@ void LoadPokedexAreaMapGfx(const struct PokedexAreaMapTemplate *template) ChangeBgX(template->bg, 0, BG_COORD_SET); ChangeBgY(template->bg, 0, BG_COORD_SET); SetBgAttribute(template->bg, BG_ATTR_PALETTEMODE, 1); - CpuCopy32(sPokedexAreaMap_Pal, &gPlttBufferUnfaded[0x70], 0x60); + CpuCopy32(sPokedexAreaMap_Pal, &gPlttBufferUnfaded[0x70], sizeof(sPokedexAreaMap_Pal)); *sPokedexAreaMapBgNum = template->bg; } diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index e2973dcab3..dde86f1557 100755 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -16,70 +16,88 @@ #include "trig.h" #include "pokedex_area_region_map.h" #include "wild_encounter.h" -#include "constants/maps.h" #include "constants/region_map_sections.h" #include "constants/rgb.h" #include "constants/songs.h" +// There are two types of indicators for the area screen to show where a Pokémon can occur: +// - Area glows, which highlight any of the maps in MAP_GROUP_TOWNS_AND_ROUTES that have the species. +// These are a tilemap with colored rectangular areas that blends in and out. The positions of the +// rectangles is determined by the positions of the matching MAPSEC values on the region map layout. +// - Area markers, which highlight any of the maps in MAP_GROUP_DUNGEONS or MAP_GROUP_SPECIAL_AREA that +// have the species. These are circular sprites that flash twice. The positions of the sprites is +// determined by the data for the corresponding MAPSEC in gRegionMapEntries. + +// Only maps in the following map groups have their encounters considered for the area screen +#define MAP_GROUP_TOWNS_AND_ROUTES MAP_GROUP(PETALBURG_CITY) +#define MAP_GROUP_DUNGEONS MAP_GROUP(METEOR_FALLS_1F_1R) +#define MAP_GROUP_SPECIAL_AREA MAP_GROUP(SAFARI_ZONE_NORTHWEST) + #define AREA_SCREEN_WIDTH 32 #define AREA_SCREEN_HEIGHT 20 -#define GLOW_TILE_FULL 0xFFFF -#define GLOW_TILE_LEFT (1 << 0) -#define GLOW_TILE_RIGHT (1 << 1) -#define GLOW_TILE_TOP (1 << 2) -#define GLOW_TILE_BOTTOM (1 << 3) -#define GLOW_TILE_BOTTOM_RIGHT (1 << 4) -#define GLOW_TILE_TOP_RIGHT (1 << 5) -#define GLOW_TILE_BOTTOM_LEFT (1 << 6) -#define GLOW_TILE_TOP_LEFT (1 << 7) +#define GLOW_FULL 0xFFFF +#define GLOW_EDGE_R (1 << 0) +#define GLOW_EDGE_L (1 << 1) +#define GLOW_EDGE_B (1 << 2) +#define GLOW_EDGE_T (1 << 3) +#define GLOW_CORNER_TL (1 << 4) +#define GLOW_CORNER_BL (1 << 5) +#define GLOW_CORNER_TR (1 << 6) +#define GLOW_CORNER_BR (1 << 7) -struct PokeDexAreaScreenMapIdentity +#define GLOW_PALETTE 10 + +#define TAG_AREA_MARKER 2 +#define TAG_AREA_UNKNOWN 3 + +#define MAX_AREA_HIGHLIGHTS 64 // Maximum number of rectangular route highlights +#define MAX_AREA_MARKERS 32 // Maximum number of circular spot highlights + +struct OverworldArea { u8 mapGroup; u8 mapNum; u16 regionMapSectionId; }; -struct PokeDexAreaScreen +struct { /*0x000*/ void (*callback)(void); // unused /*0x004*/ MainCallback prev; // unused /*0x008*/ MainCallback next; // unused /*0x00C*/ u16 state; // unused /*0x00E*/ u16 species; - /*0x010*/ struct PokeDexAreaScreenMapIdentity overworldAreasWithMons[0x40]; + /*0x010*/ struct OverworldArea overworldAreasWithMons[MAX_AREA_HIGHLIGHTS]; /*0x110*/ u16 numOverworldAreas; /*0x112*/ u16 numSpecialAreas; /*0x114*/ u16 drawAreaGlowState; - /*0x116*/ u16 areaGlowTilemap[0x280]; - /*0x616*/ u16 areaShadeOrMarkerFrameCounter; - /*0x618*/ u16 areaShadeFrameCounter; + /*0x116*/ u16 areaGlowTilemap[AREA_SCREEN_WIDTH * AREA_SCREEN_HEIGHT]; + /*0x616*/ u16 markerTimer; + /*0x618*/ u16 glowTimer; /*0x61A*/ u16 areaShadeBldArgLo; /*0x61C*/ u16 areaShadeBldArgHi; - /*0x61E*/ u8 whichMarkersFlashing; - /*0x61F*/ u8 specialMarkerCycleCounter; - /*0x620*/ u16 specialAreaRegionMapSectionIds[0x20]; - /*0x660*/ struct Sprite *areaMarkerSprites[0x20]; + /*0x61E*/ bool8 showingMarkers; + /*0x61F*/ u8 markerFlashCounter; + /*0x620*/ u16 specialAreaRegionMapSectionIds[MAX_AREA_MARKERS]; + /*0x660*/ struct Sprite *areaMarkerSprites[MAX_AREA_MARKERS]; /*0x6E0*/ u16 numAreaMarkerSprites; - /*0x6E2*/ u16 unk6E2; - /*0x6E4*/ u16 unk6E4; + /*0x6E2*/ u16 alteringCaveCounter; + /*0x6E4*/ u16 alteringCaveId; /*0x6E8*/ u8 *screenSwitchState; /*0x6EC*/ struct RegionMap regionMap; - /*0xF70*/ u8 charBuffer[0x40]; + /*0xF70*/ u8 charBuffer[64]; /*0xFB0*/ struct Sprite * areaUnknownSprites[3]; /*0xFBC*/ u8 areaUnknownGraphicsBuffer[0x600]; -}; - -static EWRAM_DATA struct PokeDexAreaScreen *sPokedexAreaScreen = NULL; +} static EWRAM_DATA *sPokedexAreaScreen = NULL; static void FindMapsWithMon(u16); static void BuildAreaGlowTilemap(void); static void SetAreaHasMon(u16, u16); static void SetSpecialMapHasMon(u16, u16); static u16 GetRegionMapSectionId(u8, u8); -static bool8 MapHasMon(const struct WildPokemonHeader *, u16); -static bool8 MonListHasMon(const struct WildPokemonInfo *, u16, u16); +static bool8 MapHasSpecies(const struct WildPokemonHeader *, u16); +static bool8 MonListHasSpecies(const struct WildPokemonInfo *, u16, u16); static void DoAreaGlow(void); static void Task_ShowPokedexAreaScreen(u8); static void CreateAreaMarkerSprites(void); @@ -87,7 +105,7 @@ static void LoadAreaUnknownGraphics(void); static void CreateAreaUnknownSprites(void); static void Task_HandlePokedexAreaScreenInput(u8); static void ResetPokedexAreaMapBg(void); -static void DestroyAreaMarkerSprites(void); +static void DestroyAreaScreenSprites(void); static const u32 sAreaGlow_Pal[] = INCBIN_U32("graphics/pokedex/area_glow.gbapal"); static const u32 sAreaGlow_Gfx[] = INCBIN_U32("graphics/pokedex/area_glow.4bpp.lz"); @@ -118,115 +136,7 @@ static const u16 sLandmarkData[][2] = {MAPSEC_NONE} }; -// Only some parts of this array are acutally used, because corner flags that overlap -// with edge flags are cancelled out before lookup. For example, GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_RIGHT -// will never be read. -// -// The rest of the bytes seem to be old data from before the cancellation was implemented. -// Most of them line up as you would expect ([BOTTOM_RIGHT | RIGHT] has the same value as [RIGHT]). -// -// Any unreachable entries are simply listed in order, without the fancy "[FLAGS] = 0xXX" notation. -static const u8 sAreaGlowTilemapMapping[] = { - [0] = 0x00, - [GLOW_TILE_LEFT] = 0x01, - [GLOW_TILE_RIGHT] = 0x02, - [GLOW_TILE_RIGHT | GLOW_TILE_LEFT] = 0x03, - [GLOW_TILE_TOP] = 0x04, - [GLOW_TILE_TOP | GLOW_TILE_LEFT] = 0x05, - [GLOW_TILE_TOP | GLOW_TILE_RIGHT] = 0x06, - [GLOW_TILE_TOP | GLOW_TILE_RIGHT | GLOW_TILE_LEFT] = 0x07, - [GLOW_TILE_BOTTOM] = 0x08, - [GLOW_TILE_BOTTOM | GLOW_TILE_LEFT] = 0x09, - [GLOW_TILE_BOTTOM | GLOW_TILE_RIGHT] = 0x0a, - [GLOW_TILE_BOTTOM | GLOW_TILE_RIGHT | GLOW_TILE_LEFT] = 0x0b, - [GLOW_TILE_BOTTOM | GLOW_TILE_TOP] = 0x0c, - [GLOW_TILE_BOTTOM | GLOW_TILE_TOP | GLOW_TILE_LEFT] = 0x0d, - [GLOW_TILE_BOTTOM | GLOW_TILE_TOP | GLOW_TILE_RIGHT] = 0x0e, - [GLOW_TILE_BOTTOM | GLOW_TILE_TOP | GLOW_TILE_RIGHT | GLOW_TILE_LEFT] = 0x0f, - [GLOW_TILE_BOTTOM_RIGHT] = 0x11, - [GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_LEFT] = 0x20, - 0x02, 0x03, - [GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_TOP] = 0x27, - [GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_TOP | GLOW_TILE_LEFT] = 0x2d, - 0x06, 0x07, 0x08, 0x09, 0x0a, - 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - [GLOW_TILE_TOP_RIGHT] = 0x12, - [GLOW_TILE_TOP_RIGHT | GLOW_TILE_LEFT] = 0x21, - 0x02, 0x03, 0x04, 0x05, 0x06, - 0x07, - [GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM] = 0x2a, - [GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM | GLOW_TILE_LEFT] = 0x2e, - 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, - 0x0f, - [GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM_RIGHT] = 0x13, - [GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_LEFT] = 0x22, - 0x02, 0x03, 0x27, 0x2d, 0x06, - 0x07, 0x2a, 0x2e, 0x0a, 0x0b, - 0x0c, 0x0d, 0x0e, 0x0f, - [GLOW_TILE_BOTTOM_LEFT] = 0x14, - 0x01, - [GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_RIGHT] = 0x23, - 0x03, - [GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP] = 0x26, - 0x05, - [GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP | GLOW_TILE_RIGHT] = 0x2c, - 0x07, 0x08, 0x09, 0x0a, 0x0b, - 0x0c, 0x0d, 0x0e, 0x0f, - [GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_BOTTOM_RIGHT] = 0x15, - 0x20, 0x23, 0x03, - [GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_TOP] = 0x28, - 0x2d, 0x2c, 0x07, 0x08, 0x09, - 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, - 0x0f, - [GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP_RIGHT] = 0x16, - 0x21, 0x23, 0x03, 0x26, 0x05, - 0x2c, 0x07, 0x2a, 0x2e, 0x0a, - 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - [GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM_RIGHT] = 0x17, - 0x22, 0x23, 0x03, 0x28, 0x2d, - 0x2c, 0x07, 0x2a, 0x2e, 0x0a, - 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - [GLOW_TILE_TOP_LEFT] = 0x18, - 0x01, - [GLOW_TILE_TOP_LEFT | GLOW_TILE_RIGHT] = 0x24, - 0x03, 0x04, 0x05, 0x06, 0x07, - [GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM] = 0x29, - 0x09, - [GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM | GLOW_TILE_RIGHT] = 0x2f, - 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - [GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM_RIGHT] = 0x19, - 0x20, 0x24, 0x03, 0x27, 0x2d, - 0x06, 0x07, 0x29, 0x09, 0x2f, - 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - [GLOW_TILE_TOP_LEFT | GLOW_TILE_TOP_RIGHT] = 0x1a, - 0x21, 0x24, 0x03, 0x04, 0x05, - 0x06, 0x07, - [GLOW_TILE_TOP_LEFT | GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM] = 0x2b, - 0x2e, 0x2f, 0x0b, 0x0c, 0x0d, - 0x0e, 0x0f, - [GLOW_TILE_TOP_LEFT | GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM_RIGHT] = 0x1b, - 0x22, 0x24, 0x03, 0x27, 0x2d, - 0x06, 0x07, 0x2b, 0x2e, 0x2f, - 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - [GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM_LEFT] = 0x1c, - 0x01, - [GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_RIGHT] = 0x25, - 0x03, 0x26, 0x05, 0x2c, 0x07, - 0x29, 0x09, 0x2f, 0x0b, 0x0c, - 0x0d, 0x0e, 0x0f, - [GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_BOTTOM_RIGHT] = 0x1d, - 0x20, 0x25, 0x03, 0x28, 0x2d, - 0x2c, 0x07, 0x29, 0x09, 0x2f, - 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - [GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP_RIGHT] = 0x1e, - 0x21, 0x25, 0x03, 0x26, 0x05, - 0x2c, 0x07, 0x2b, 0x2e, 0x2f, - 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - [GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM_RIGHT] = 0x1f, - 0x22, 0x25, 0x03, 0x28, 0x2d, - 0x2c, 0x07, 0x2b, 0x2e, 0x2f, - 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, -}; +#include "data/pokedex_area_glow.h" static const struct PokedexAreaMapTemplate sPokedexAreaMapTemplate = { @@ -239,13 +149,13 @@ static const struct PokedexAreaMapTemplate sPokedexAreaMapTemplate = static const u8 sAreaMarkerTiles[]; static const struct SpriteSheet sAreaMarkerSpriteSheet = { - sAreaMarkerTiles, 0x80, 2 + .data = sAreaMarkerTiles, .size = 0x80, .tag = TAG_AREA_MARKER }; static const u16 sAreaMarkerPalette[]; static const struct SpritePalette sAreaMarkerSpritePalette = { - sAreaMarkerPalette, 2 + .data = sAreaMarkerPalette, .tag = TAG_AREA_MARKER }; static const struct OamData sAreaMarkerOamData = @@ -257,13 +167,13 @@ static const struct OamData sAreaMarkerOamData = static const struct SpriteTemplate sAreaMarkerSpriteTemplate = { - 2, - 2, - &sAreaMarkerOamData, - gDummySpriteAnimTable, - NULL, - gDummySpriteAffineAnimTable, - SpriteCallbackDummy + .tileTag = TAG_AREA_MARKER, + .paletteTag = TAG_AREA_MARKER, + .oam = &sAreaMarkerOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy }; static const u16 sAreaMarkerPalette[] = INCBIN_U16("graphics/pokedex/area_marker.gbapal"); @@ -271,7 +181,7 @@ static const u8 sAreaMarkerTiles[] = INCBIN_U8("graphics/pokedex/area_marker.4bp static const struct SpritePalette sAreaUnknownSpritePalette = { - gPokedexAreaScreenAreaUnknown_Pal, 3 + .data = gPokedexAreaScreenAreaUnknown_Pal, .tag = TAG_AREA_UNKNOWN }; static const struct OamData sAreaUnknownOamData = @@ -283,13 +193,13 @@ static const struct OamData sAreaUnknownOamData = static const struct SpriteTemplate sAreaUnknownSpriteTemplate = { - 3, - 3, - &sAreaUnknownOamData, - gDummySpriteAnimTable, - NULL, - gDummySpriteAffineAnimTable, - SpriteCallbackDummy + .tileTag = TAG_AREA_UNKNOWN, + .paletteTag = TAG_AREA_UNKNOWN, + .oam = &sAreaUnknownOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy }; static void ResetDrawAreaGlowState(void) @@ -309,17 +219,17 @@ static bool8 DrawAreaGlow(void) break; case 2: DecompressAndCopyTileDataToVram(2, sAreaGlow_Gfx, 0, 0, 0); - LoadBgTilemap(2, sPokedexAreaScreen->areaGlowTilemap, 0x500, 0); + LoadBgTilemap(2, sPokedexAreaScreen->areaGlowTilemap, sizeof(sPokedexAreaScreen->areaGlowTilemap), 0); break; case 3: if (!FreeTempTileDataBuffersIfPossible()) { - CpuCopy32(sAreaGlow_Pal, gPlttBufferUnfaded + 0xA0, 0x20); + CpuCopy32(sAreaGlow_Pal, &gPlttBufferUnfaded[GLOW_PALETTE * 16], sizeof(sAreaGlow_Pal)); sPokedexAreaScreen->drawAreaGlowState++; } return TRUE; case 4: - ChangeBgY(2, -0x800, BG_COORD_SET); + ChangeBgY(2, -BG_SCREEN_SIZE, BG_COORD_SET); break; default: return FALSE; @@ -334,58 +244,67 @@ static void FindMapsWithMon(u16 species) u16 i; struct Roamer *roamer; - sPokedexAreaScreen->unk6E2 = 0; - sPokedexAreaScreen->unk6E4 = VarGet(VAR_ALTERING_CAVE_WILD_SET); - if (sPokedexAreaScreen->unk6E4 > 8) - sPokedexAreaScreen->unk6E4 = 0; + sPokedexAreaScreen->alteringCaveCounter = 0; + sPokedexAreaScreen->alteringCaveId = VarGet(VAR_ALTERING_CAVE_WILD_SET); + if (sPokedexAreaScreen->alteringCaveId >= NUM_ALTERING_CAVE_TABLES) + sPokedexAreaScreen->alteringCaveId = 0; roamer = &gSaveBlock1Ptr->roamer; if (species != roamer->species) { sPokedexAreaScreen->numOverworldAreas = 0; sPokedexAreaScreen->numSpecialAreas = 0; + + // Check if this species should be hidden from the area map. + // This only applies to Wynaut, to hide the encounters on Mirage Island. for (i = 0; i < ARRAY_COUNT(sSpeciesHiddenFromAreaScreen); i++) { if (sSpeciesHiddenFromAreaScreen[i] == species) return; } + // Add Pokémon with special encounter circumstances (i.e. not listed + // in the regular wild encounter table) to the area map. + // This only applies to Feebas on Route 119, but it was clearly set + // up to allow handling others. for (i = 0; sFeebasData[i][0] != NUM_SPECIES; i++) { if (species == sFeebasData[i][0]) { switch (sFeebasData[i][1]) { - case MAP_GROUP_OVERWORLD_MONS: - SetAreaHasMon(sFeebasData[i][1], sFeebasData[i][2]); - break; - case MAP_GROUP_SPECIAL_MONS_1: - case MAP_GROUP_SPECIAL_MONS_2: - SetSpecialMapHasMon(sFeebasData[i][1], sFeebasData[i][2]); - break; + case MAP_GROUP_TOWNS_AND_ROUTES: + SetAreaHasMon(sFeebasData[i][1], sFeebasData[i][2]); + break; + case MAP_GROUP_DUNGEONS: + case MAP_GROUP_SPECIAL_AREA: + SetSpecialMapHasMon(sFeebasData[i][1], sFeebasData[i][2]); + break; } } } + // Add regular species to the area map for (i = 0; gWildMonHeaders[i].mapGroup != MAP_GROUP(UNDEFINED); i++) { - if (MapHasMon(&gWildMonHeaders[i], species)) + if (MapHasSpecies(&gWildMonHeaders[i], species)) { switch (gWildMonHeaders[i].mapGroup) { - case MAP_GROUP_OVERWORLD_MONS: - SetAreaHasMon(gWildMonHeaders[i].mapGroup, gWildMonHeaders[i].mapNum); - break; - case MAP_GROUP_SPECIAL_MONS_1: - case MAP_GROUP_SPECIAL_MONS_2: - SetSpecialMapHasMon(gWildMonHeaders[i].mapGroup, gWildMonHeaders[i].mapNum); - break; + case MAP_GROUP_TOWNS_AND_ROUTES: + SetAreaHasMon(gWildMonHeaders[i].mapGroup, gWildMonHeaders[i].mapNum); + break; + case MAP_GROUP_DUNGEONS: + case MAP_GROUP_SPECIAL_AREA: + SetSpecialMapHasMon(gWildMonHeaders[i].mapGroup, gWildMonHeaders[i].mapNum); + break; } } } } else { + // This is the roamer's species, show where the roamer is currently sPokedexAreaScreen->numSpecialAreas = 0; if (roamer->active) { @@ -402,7 +321,7 @@ static void FindMapsWithMon(u16 species) static void SetAreaHasMon(u16 mapGroup, u16 mapNum) { - if (sPokedexAreaScreen->numOverworldAreas < 0x40) + if (sPokedexAreaScreen->numOverworldAreas < MAX_AREA_HIGHLIGHTS) { sPokedexAreaScreen->overworldAreasWithMons[sPokedexAreaScreen->numOverworldAreas].mapGroup = mapGroup; sPokedexAreaScreen->overworldAreasWithMons[sPokedexAreaScreen->numOverworldAreas].mapNum = mapNum; @@ -415,23 +334,26 @@ static void SetSpecialMapHasMon(u16 mapGroup, u16 mapNum) { int i; - if (sPokedexAreaScreen->numSpecialAreas < 0x20) + if (sPokedexAreaScreen->numSpecialAreas < MAX_AREA_MARKERS) { u16 regionMapSectionId = GetRegionMapSectionId(mapGroup, mapNum); if (regionMapSectionId < MAPSEC_NONE) { + // Don't highlight the area if it's a moving area (Marine/Terra Cave) for (i = 0; i < ARRAY_COUNT(sMovingRegionMapSections); i++) { if (regionMapSectionId == sMovingRegionMapSections[i]) return; } + // Don't highlight the area if it's an undiscovered landmark (e.g. Sky Pillar) for (i = 0; sLandmarkData[i][0] != MAPSEC_NONE; i++) { if (regionMapSectionId == sLandmarkData[i][0] && !FlagGet(sLandmarkData[i][1])) return; } + // Check if this special area is already being tracked for (i = 0; i < sPokedexAreaScreen->numSpecialAreas; i++) { if (sPokedexAreaScreen->specialAreaRegionMapSectionIds[i] == regionMapSectionId) @@ -440,6 +362,7 @@ static void SetSpecialMapHasMon(u16 mapGroup, u16 mapNum) if (i == sPokedexAreaScreen->numSpecialAreas) { + // New special area sPokedexAreaScreen->specialAreaRegionMapSectionIds[i] = regionMapSectionId; sPokedexAreaScreen->numSpecialAreas++; } @@ -452,27 +375,34 @@ static u16 GetRegionMapSectionId(u8 mapGroup, u8 mapNum) return Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->regionMapSectionId; } -static bool8 MapHasMon(const struct WildPokemonHeader *info, u16 species) +static bool8 MapHasSpecies(const struct WildPokemonHeader *info, u16 species) { + // If this is a header for Altering Cave, skip it if it's not the current Altering Cave encounter set if (GetRegionMapSectionId(info->mapGroup, info->mapNum) == MAPSEC_ALTERING_CAVE) { - sPokedexAreaScreen->unk6E2++; - if (sPokedexAreaScreen->unk6E2 != sPokedexAreaScreen->unk6E4 + 1) + sPokedexAreaScreen->alteringCaveCounter++; + if (sPokedexAreaScreen->alteringCaveCounter != sPokedexAreaScreen->alteringCaveId + 1) return FALSE; } - if (MonListHasMon(info->landMonsInfo, species, 12)) + if (MonListHasSpecies(info->landMonsInfo, species, LAND_WILD_COUNT)) return TRUE; - if (MonListHasMon(info->waterMonsInfo, species, 5)) + if (MonListHasSpecies(info->waterMonsInfo, species, WATER_WILD_COUNT)) return TRUE; - if (MonListHasMon(info->fishingMonsInfo, species, 12)) +// When searching the fishing encounters, this incorrectly uses the size of the land encounters. +// As a result it's reading out of bounds of the fishing encounters tables. +#ifdef BUGFIX + if (MonListHasSpecies(info->fishingMonsInfo, species, FISH_WILD_COUNT)) +#else + if (MonListHasSpecies(info->fishingMonsInfo, species, LAND_WILD_COUNT)) +#endif return TRUE; - if (MonListHasMon(info->rockSmashMonsInfo, species, 5)) + if (MonListHasSpecies(info->rockSmashMonsInfo, species, ROCK_WILD_COUNT)) return TRUE; return FALSE; } -static bool8 MonListHasMon(const struct WildPokemonInfo *info, u16 species, u16 size) +static bool8 MonListHasSpecies(const struct WildPokemonInfo *info, u16 species, u16 size) { u16 i; if (info != NULL) @@ -490,9 +420,12 @@ static void BuildAreaGlowTilemap(void) { u16 i, y, x, j; + // Reset tilemap for (i = 0; i < ARRAY_COUNT(sPokedexAreaScreen->areaGlowTilemap); i++) sPokedexAreaScreen->areaGlowTilemap[i] = 0; + // For each area with this species, scan the region map layout and find any locations that have a matching mapsec. + // Add a "full glow" indicator for these matching spaces. for (i = 0; i < sPokedexAreaScreen->numOverworldAreas; i++) { j = 0; @@ -501,69 +434,73 @@ static void BuildAreaGlowTilemap(void) for (x = 0; x < AREA_SCREEN_WIDTH; x++) { if (GetRegionMapSecIdAt(x, y) == sPokedexAreaScreen->overworldAreasWithMons[i].regionMapSectionId) - sPokedexAreaScreen->areaGlowTilemap[j] = GLOW_TILE_FULL; - + sPokedexAreaScreen->areaGlowTilemap[j] = GLOW_FULL; j++; } } } + // Scan the tilemap. For every "full glow" indicator added above, fill in its edges and corners. j = 0; for (y = 0; y < AREA_SCREEN_HEIGHT; y++) { for (x = 0; x < AREA_SCREEN_WIDTH; x++) { - if (sPokedexAreaScreen->areaGlowTilemap[j] == GLOW_TILE_FULL) + if (sPokedexAreaScreen->areaGlowTilemap[j] == GLOW_FULL) { - // The "tile != GLOW_TILE_FULL" check is pointless in all of these conditionals, + // The "tile != GLOW_FULL" check is pointless in all of these conditionals, // since there's no harm in OR'ing 0xFFFF with anything else. // Edges - if (x != 0 && sPokedexAreaScreen->areaGlowTilemap[j - 1] != GLOW_TILE_FULL) - sPokedexAreaScreen->areaGlowTilemap[j - 1] |= GLOW_TILE_RIGHT; - if (x != AREA_SCREEN_WIDTH - 1 && sPokedexAreaScreen->areaGlowTilemap[j + 1] != GLOW_TILE_FULL) - sPokedexAreaScreen->areaGlowTilemap[j + 1] |= GLOW_TILE_LEFT; - if (y != 0 && sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH] != GLOW_TILE_FULL) - sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH] |= GLOW_TILE_BOTTOM; - if (y != AREA_SCREEN_HEIGHT - 1 && sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH] != GLOW_TILE_FULL) - sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH] |= GLOW_TILE_TOP; + if (x != 0 && sPokedexAreaScreen->areaGlowTilemap[j - 1] != GLOW_FULL) + sPokedexAreaScreen->areaGlowTilemap[j - 1] |= GLOW_EDGE_L; + if (x != AREA_SCREEN_WIDTH - 1 && sPokedexAreaScreen->areaGlowTilemap[j + 1] != GLOW_FULL) + sPokedexAreaScreen->areaGlowTilemap[j + 1] |= GLOW_EDGE_R; + if (y != 0 && sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH] != GLOW_FULL) + sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH] |= GLOW_EDGE_T; + if (y != AREA_SCREEN_HEIGHT - 1 && sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH] != GLOW_FULL) + sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH] |= GLOW_EDGE_B; - // Diagonals - if (x != 0 && y != 0 && sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH - 1] != GLOW_TILE_FULL) - sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH - 1] |= GLOW_TILE_BOTTOM_RIGHT; - if (x != AREA_SCREEN_WIDTH - 1 && y != 0 && sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH + 1] != GLOW_TILE_FULL) - sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH + 1] |= GLOW_TILE_BOTTOM_LEFT; - if (x != 0 && y != AREA_SCREEN_HEIGHT - 1 && sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH - 1] != GLOW_TILE_FULL) - sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH - 1] |= GLOW_TILE_TOP_RIGHT; - if (x != AREA_SCREEN_WIDTH - 1 && y != AREA_SCREEN_HEIGHT - 1 && sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH + 1] != GLOW_TILE_FULL) - sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH + 1] |= GLOW_TILE_TOP_LEFT; + // Corners + if (x != 0 && y != 0 && sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH - 1] != GLOW_FULL) + sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH - 1] |= GLOW_CORNER_TL; + if (x != AREA_SCREEN_WIDTH - 1 && y != 0 && sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH + 1] != GLOW_FULL) + sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH + 1] |= GLOW_CORNER_TR; + if (x != 0 && y != AREA_SCREEN_HEIGHT - 1 && sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH - 1] != GLOW_FULL) + sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH - 1] |= GLOW_CORNER_BL; + if (x != AREA_SCREEN_WIDTH - 1 && y != AREA_SCREEN_HEIGHT - 1 && sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH + 1] != GLOW_FULL) + sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH + 1] |= GLOW_CORNER_BR; } j++; } } + // Scan the tilemap again. Replace the "full tile" indicators with the actual tile id, + // and remove corner flags when they're overlapped by an edge. for (i = 0; i < ARRAY_COUNT(sPokedexAreaScreen->areaGlowTilemap); i++) { - if (sPokedexAreaScreen->areaGlowTilemap[i] == GLOW_TILE_FULL) + if (sPokedexAreaScreen->areaGlowTilemap[i] == GLOW_FULL) { - sPokedexAreaScreen->areaGlowTilemap[i] = 0x10; - sPokedexAreaScreen->areaGlowTilemap[i] |= 0xA000; + sPokedexAreaScreen->areaGlowTilemap[i] = GLOW_TILE_FULL; + sPokedexAreaScreen->areaGlowTilemap[i] |= (GLOW_PALETTE << 12); } else if (sPokedexAreaScreen->areaGlowTilemap[i]) { - // Get rid of overlapping flags - if (sPokedexAreaScreen->areaGlowTilemap[i] & GLOW_TILE_RIGHT) - sPokedexAreaScreen->areaGlowTilemap[i] &= ~(GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_TOP_RIGHT); - if (sPokedexAreaScreen->areaGlowTilemap[i] & GLOW_TILE_LEFT) - sPokedexAreaScreen->areaGlowTilemap[i] &= ~(GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP_LEFT); - if (sPokedexAreaScreen->areaGlowTilemap[i] & GLOW_TILE_BOTTOM) - sPokedexAreaScreen->areaGlowTilemap[i] &= ~(GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_BOTTOM_RIGHT); - if (sPokedexAreaScreen->areaGlowTilemap[i] & GLOW_TILE_TOP) - sPokedexAreaScreen->areaGlowTilemap[i] &= ~(GLOW_TILE_TOP_LEFT | GLOW_TILE_TOP_RIGHT); + // Get rid of overlapping flags. + // This is pointless, as sAreaGlowTilemapMapping can handle overlaps. + if (sPokedexAreaScreen->areaGlowTilemap[i] & GLOW_EDGE_L) + sPokedexAreaScreen->areaGlowTilemap[i] &= ~(GLOW_CORNER_TL | GLOW_CORNER_BL); + if (sPokedexAreaScreen->areaGlowTilemap[i] & GLOW_EDGE_R) + sPokedexAreaScreen->areaGlowTilemap[i] &= ~(GLOW_CORNER_TR | GLOW_CORNER_BR); + if (sPokedexAreaScreen->areaGlowTilemap[i] & GLOW_EDGE_T) + sPokedexAreaScreen->areaGlowTilemap[i] &= ~(GLOW_CORNER_TR | GLOW_CORNER_TL); + if (sPokedexAreaScreen->areaGlowTilemap[i] & GLOW_EDGE_B) + sPokedexAreaScreen->areaGlowTilemap[i] &= ~(GLOW_CORNER_BR | GLOW_CORNER_BL); + // Assign tile id sPokedexAreaScreen->areaGlowTilemap[i] = sAreaGlowTilemapMapping[sPokedexAreaScreen->areaGlowTilemap[i]]; - sPokedexAreaScreen->areaGlowTilemap[i] |= 0xA000; + sPokedexAreaScreen->areaGlowTilemap[i] |= (GLOW_PALETTE << 12); } } } @@ -571,15 +508,15 @@ static void BuildAreaGlowTilemap(void) static void StartAreaGlow(void) { if (sPokedexAreaScreen->numSpecialAreas && sPokedexAreaScreen->numOverworldAreas == 0) - sPokedexAreaScreen->whichMarkersFlashing = 1; + sPokedexAreaScreen->showingMarkers = TRUE; else - sPokedexAreaScreen->whichMarkersFlashing = 0; + sPokedexAreaScreen->showingMarkers = FALSE; - sPokedexAreaScreen->areaShadeOrMarkerFrameCounter = 0; - sPokedexAreaScreen->areaShadeFrameCounter = 0; + sPokedexAreaScreen->markerTimer = 0; + sPokedexAreaScreen->glowTimer = 0; sPokedexAreaScreen->areaShadeBldArgLo = 0; - sPokedexAreaScreen->areaShadeBldArgHi = 0x40; - sPokedexAreaScreen->specialMarkerCycleCounter = 1; + sPokedexAreaScreen->areaShadeBldArgHi = 64; + sPokedexAreaScreen->markerFlashCounter = 1; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); DoAreaGlow(); @@ -590,12 +527,13 @@ static void DoAreaGlow(void) u16 x, y; u16 i; - if (sPokedexAreaScreen->whichMarkersFlashing == 0) + if (!sPokedexAreaScreen->showingMarkers) { - if (sPokedexAreaScreen->areaShadeOrMarkerFrameCounter == 0) + // Showing area glow + if (sPokedexAreaScreen->markerTimer == 0) { - sPokedexAreaScreen->areaShadeFrameCounter++; - if (sPokedexAreaScreen->areaShadeFrameCounter & 1) + sPokedexAreaScreen->glowTimer++; + if (sPokedexAreaScreen->glowTimer & 1) sPokedexAreaScreen->areaShadeBldArgLo = (sPokedexAreaScreen->areaShadeBldArgLo + 4) & 0x7f; else sPokedexAreaScreen->areaShadeBldArgHi = (sPokedexAreaScreen->areaShadeBldArgHi + 4) & 0x7f; @@ -603,32 +541,38 @@ static void DoAreaGlow(void) x = gSineTable[sPokedexAreaScreen->areaShadeBldArgLo] >> 4; y = gSineTable[sPokedexAreaScreen->areaShadeBldArgHi] >> 4; SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(x, y)); - sPokedexAreaScreen->areaShadeOrMarkerFrameCounter = 0; - if (sPokedexAreaScreen->areaShadeFrameCounter == 0x40) + sPokedexAreaScreen->markerTimer = 0; + if (sPokedexAreaScreen->glowTimer == 64) { - sPokedexAreaScreen->areaShadeFrameCounter = 0; + // Done glowing, reset and try to switch to the special area markers + sPokedexAreaScreen->glowTimer = 0; if (sPokedexAreaScreen->numSpecialAreas != 0) - sPokedexAreaScreen->whichMarkersFlashing = 1; + sPokedexAreaScreen->showingMarkers = TRUE; } } else - sPokedexAreaScreen->areaShadeOrMarkerFrameCounter--; + sPokedexAreaScreen->markerTimer--; } else { - sPokedexAreaScreen->areaShadeOrMarkerFrameCounter++; - if (sPokedexAreaScreen->areaShadeOrMarkerFrameCounter > 12) + // Showing special area markers + sPokedexAreaScreen->markerTimer++; + if (sPokedexAreaScreen->markerTimer > 12) { - sPokedexAreaScreen->areaShadeOrMarkerFrameCounter = 0; - sPokedexAreaScreen->specialMarkerCycleCounter++; + sPokedexAreaScreen->markerTimer = 0; + + // Flash the marker + // With a max of 4, the marker will disappear twice + sPokedexAreaScreen->markerFlashCounter++; for (i = 0; i < sPokedexAreaScreen->numSpecialAreas; i++) - sPokedexAreaScreen->areaMarkerSprites[i]->invisible = sPokedexAreaScreen->specialMarkerCycleCounter & 1; + sPokedexAreaScreen->areaMarkerSprites[i]->invisible = sPokedexAreaScreen->markerFlashCounter & 1; - if (sPokedexAreaScreen->specialMarkerCycleCounter > 4) + if (sPokedexAreaScreen->markerFlashCounter > 4) { - sPokedexAreaScreen->specialMarkerCycleCounter = 1; + // Done flashing, reset and try to switch to the area glow + sPokedexAreaScreen->markerFlashCounter = 1; if (sPokedexAreaScreen->numOverworldAreas != 0) - sPokedexAreaScreen->whichMarkersFlashing = 0; + sPokedexAreaScreen->showingMarkers = FALSE; } } } @@ -652,58 +596,58 @@ static void Task_ShowPokedexAreaScreen(u8 taskId) { switch (gTasks[taskId].tState) { - case 0: - ResetSpriteData(); - FreeAllSpritePalettes(); - HideBg(3); - HideBg(2); - HideBg(0); - break; - case 1: - SetBgAttribute(3, BG_ATTR_CHARBASEINDEX, 3); - LoadPokedexAreaMapGfx(&sPokedexAreaMapTemplate); - StringFill(sPokedexAreaScreen->charBuffer, CHAR_SPACE, 16); - break; - case 2: - if (TryShowPokedexAreaMap() == TRUE) - return; - PokedexAreaMapChangeBgY(-8); - break; - case 3: - ResetDrawAreaGlowState(); - break; - case 4: - if (DrawAreaGlow()) - return; - break; - case 5: - ShowRegionMapForPokedexAreaScreen(&sPokedexAreaScreen->regionMap); - CreateRegionMapPlayerIcon(1, 1); - PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs(0, -8); - break; - case 6: - CreateAreaMarkerSprites(); - break; - case 7: - LoadAreaUnknownGraphics(); - break; - case 8: - CreateAreaUnknownSprites(); - break; - case 9: - BeginNormalPaletteFade(PALETTES_ALL & ~(0x14), 0, 16, 0, RGB(0, 0, 0)); - break; - case 10: - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_ALL); - StartAreaGlow(); - ShowBg(2); - ShowBg(3); // TryShowPokedexAreaMap will have done this already - SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON); - break; - case 11: - gTasks[taskId].func = Task_HandlePokedexAreaScreenInput; - gTasks[taskId].tState = 0; + case 0: + ResetSpriteData(); + FreeAllSpritePalettes(); + HideBg(3); + HideBg(2); + HideBg(0); + break; + case 1: + SetBgAttribute(3, BG_ATTR_CHARBASEINDEX, 3); + LoadPokedexAreaMapGfx(&sPokedexAreaMapTemplate); + StringFill(sPokedexAreaScreen->charBuffer, CHAR_SPACE, 16); + break; + case 2: + if (TryShowPokedexAreaMap() == TRUE) return; + PokedexAreaMapChangeBgY(-8); + break; + case 3: + ResetDrawAreaGlowState(); + break; + case 4: + if (DrawAreaGlow()) + return; + break; + case 5: + ShowRegionMapForPokedexAreaScreen(&sPokedexAreaScreen->regionMap); + CreateRegionMapPlayerIcon(1, 1); + PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs(0, -8); + break; + case 6: + CreateAreaMarkerSprites(); + break; + case 7: + LoadAreaUnknownGraphics(); + break; + case 8: + CreateAreaUnknownSprites(); + break; + case 9: + BeginNormalPaletteFade(PALETTES_ALL & ~(0x14), 0, 16, 0, RGB_BLACK); + break; + case 10: + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_ALL); + StartAreaGlow(); + ShowBg(2); + ShowBg(3); // TryShowPokedexAreaMap will have done this already + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON); + break; + case 11: + gTasks[taskId].func = Task_HandlePokedexAreaScreenInput; + gTasks[taskId].tState = 0; + return; } gTasks[taskId].tState++; @@ -741,7 +685,7 @@ static void Task_HandlePokedexAreaScreenInput(u8 taskId) case 3: if (gPaletteFade.active) return; - DestroyAreaMarkerSprites(); + DestroyAreaScreenSprites(); sPokedexAreaScreen->screenSwitchState[0] = gTasks[taskId].data[1]; ResetPokedexAreaMapBg(); DestroyTask(taskId); @@ -759,6 +703,7 @@ static void ResetPokedexAreaMapBg(void) SetBgAttribute(3, BG_ATTR_PALETTEMODE, 0); } +// Creates the circular sprites to highlight special areas (like caves) where a Pokémon can be found static void CreateAreaMarkerSprites(void) { u8 spriteId; @@ -789,17 +734,20 @@ static void CreateAreaMarkerSprites(void) sPokedexAreaScreen->numAreaMarkerSprites = numSprites; } -static void DestroyAreaMarkerSprites(void) +static void DestroyAreaScreenSprites(void) { u16 i; - FreeSpriteTilesByTag(2); - FreeSpritePaletteByTag(2); + + // Destroy area marker sprites + FreeSpriteTilesByTag(TAG_AREA_MARKER); + FreeSpritePaletteByTag(TAG_AREA_MARKER); for (i = 0; i < sPokedexAreaScreen->numAreaMarkerSprites; i++) DestroySprite(sPokedexAreaScreen->areaMarkerSprites[i]); - FreeSpriteTilesByTag(3); - FreeSpritePaletteByTag(3); - for (i = 0; i < 3; i++) + // Destroy "Area Unknown" sprites + FreeSpriteTilesByTag(TAG_AREA_UNKNOWN); + FreeSpritePaletteByTag(TAG_AREA_UNKNOWN); + for (i = 0; i < ARRAY_COUNT(sPokedexAreaScreen->areaUnknownSprites); i++) { if (sPokedexAreaScreen->areaUnknownSprites[i]) DestroySprite(sPokedexAreaScreen->areaUnknownSprites[i]); @@ -810,8 +758,8 @@ static void LoadAreaUnknownGraphics(void) { struct SpriteSheet spriteSheet = { .data = sPokedexAreaScreen->areaUnknownGraphicsBuffer, - .size = 0x600, - .tag = 3, + .size = sizeof(sPokedexAreaScreen->areaUnknownGraphicsBuffer), + .tag = TAG_AREA_UNKNOWN, }; LZ77UnCompWram(gPokedexAreaScreenAreaUnknown_Gfx, sPokedexAreaScreen->areaUnknownGraphicsBuffer); LoadSpriteSheet(&spriteSheet); @@ -821,25 +769,27 @@ static void LoadAreaUnknownGraphics(void) static void CreateAreaUnknownSprites(void) { u16 i; - u8 spriteId; if (sPokedexAreaScreen->numOverworldAreas || sPokedexAreaScreen->numSpecialAreas) { - for (i = 0; i < 3; i++) + // The current species is present on the map, don't create any "Area Unknown" sprites + for (i = 0; i < ARRAY_COUNT(sPokedexAreaScreen->areaUnknownSprites); i++) sPokedexAreaScreen->areaUnknownSprites[i] = NULL; } else { - for (i = 0; i < 3; i++) + // The current species is absent on the map, try to create "Area Unknown" sprites + for (i = 0; i < ARRAY_COUNT(sPokedexAreaScreen->areaUnknownSprites); i++) { - spriteId = CreateSprite(&sAreaUnknownSpriteTemplate, i * 32 + 0xa0, 0x8c, 0); + u8 spriteId = CreateSprite(&sAreaUnknownSpriteTemplate, i * 32 + 160, 140, 0); if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.tileNum += i * 16; - sPokedexAreaScreen->areaUnknownSprites[i] = gSprites + spriteId; + sPokedexAreaScreen->areaUnknownSprites[i] = &gSprites[spriteId]; } else { + // Failed to create sprite sPokedexAreaScreen->areaUnknownSprites[i] = NULL; } } diff --git a/src/pokemon.c b/src/pokemon.c index 0cbb127a6d..c042b1c45b 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -87,11 +87,14 @@ static const struct CombinedMove sCombinedMoves[2] = {0xFFFF, 0xFFFF, 0xFFFF} }; +// NOTE: The order of the elements in the 3 arrays below is irrelevant. +// To reorder the pokedex, see the values in include/constants/pokedex.h. + #define SPECIES_TO_HOENN(name) [SPECIES_##name - 1] = HOENN_DEX_##name #define SPECIES_TO_NATIONAL(name) [SPECIES_##name - 1] = NATIONAL_DEX_##name #define HOENN_TO_NATIONAL(name) [HOENN_DEX_##name - 1] = NATIONAL_DEX_##name - // Assigns all species to the Hoenn Dex Index (Summary No. for Hoenn Dex) +// Assigns all species to the Hoenn Dex Index (Summary No. for Hoenn Dex) static const u16 sSpeciesToHoennPokedexNum[NUM_SPECIES - 1] = { SPECIES_TO_HOENN(BULBASAUR), @@ -507,7 +510,7 @@ static const u16 sSpeciesToHoennPokedexNum[NUM_SPECIES - 1] = SPECIES_TO_HOENN(CHIMECHO), }; - // Assigns all species to the National Dex Index (Summary No. for National Dex) +// Assigns all species to the National Dex Index (Summary No. for National Dex) static const u16 sSpeciesToNationalPokedexNum[NUM_SPECIES - 1] = { SPECIES_TO_NATIONAL(BULBASAUR), @@ -923,7 +926,7 @@ static const u16 sSpeciesToNationalPokedexNum[NUM_SPECIES - 1] = SPECIES_TO_NATIONAL(CHIMECHO), }; - // Assigns all Hoenn Dex Indexes to a National Dex Index +// Assigns all Hoenn Dex Indexes to a National Dex Index static const u16 sHoennToNationalOrder[NUM_SPECIES - 1] = { HOENN_TO_NATIONAL(TREECKO), @@ -1341,10 +1344,10 @@ static const u16 sHoennToNationalOrder[NUM_SPECIES - 1] = const struct SpindaSpot gSpindaSpotGraphics[] = { - {16, 7, INCBIN_U16("graphics/spinda_spots/spot_0.bin")}, - {40, 8, INCBIN_U16("graphics/spinda_spots/spot_1.bin")}, - {22, 25, INCBIN_U16("graphics/spinda_spots/spot_2.bin")}, - {34, 26, INCBIN_U16("graphics/spinda_spots/spot_3.bin")} + {.x = 16, .y = 7, .image = INCBIN_U16("graphics/spinda_spots/spot_0.bin")}, + {.x = 40, .y = 8, .image = INCBIN_U16("graphics/spinda_spots/spot_1.bin")}, + {.x = 22, .y = 25, .image = INCBIN_U16("graphics/spinda_spots/spot_2.bin")}, + {.x = 34, .y = 26, .image = INCBIN_U16("graphics/spinda_spots/spot_3.bin")} }; #include "data/pokemon/item_effects.h" @@ -4646,7 +4649,7 @@ void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex) gBattleMons[battlerId].type2 = gBaseStats[gBattleMons[battlerId].species].type2; gBattleMons[battlerId].ability = GetAbilityBySpecies(gBattleMons[battlerId].species, gBattleMons[battlerId].abilityNum); GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, nickname); - StringCopy10(gBattleMons[battlerId].nickname, nickname); + StringCopy_Nickname(gBattleMons[battlerId].nickname, nickname); GetMonData(&gPlayerParty[partyIndex], MON_DATA_OT_NAME, gBattleMons[battlerId].otName); hpSwitchout = &gBattleStruct->hpOnSwitchout[GetBattlerSide(battlerId)]; @@ -5649,42 +5652,81 @@ u16 SpeciesToCryId(u16 species) return gSpeciesIdToCryId[species - (SPECIES_TREECKO - 1)]; } -#define DRAW_SPINDA_SPOTS \ +// Spots can be drawn on Spinda's color indexes 1, 2, or 3 +#define FIRST_SPOT_COLOR 1 +#define LAST_SPOT_COLOR 3 + +// To draw a spot pixel, add 4 to the color index +#define SPOT_COLOR_ADJUSTMENT 4 +/* + The macro below handles drawing the randomly-placed spots on Spinda's front sprite. + Spinda has 4 spots, each with an entry in gSpindaSpotGraphics. Each entry contains + a base x and y coordinate for the spot and a 16x16 binary image. Each bit in the image + determines whether that pixel should be considered part of the spot. + + The position of each spot is randomized using the Spinda's personality. The entire 32 bit + personality value is used, 4 bits for each coordinate of the 4 spots. If the personality + value is 0x87654321, then 0x1 will be used for the 1st spot's x coord, 0x2 will be used for + the 1st spot's y coord, 0x3 will be used for the 2nd spot's x coord, and so on. Each + coordinate is calculated as (baseCoord + (given 4 bits of personality) - 8). In effect this + means each spot can start at any position -8 to +7 off of its base coordinates (256 possibilities). + + The macro then loops over the 16x16 spot image. For each bit in the spot's binary image, if + the bit is set then it's part of the spot; try to draw it. A pixel is drawn on Spinda if the + pixel on Spinda satisfies the following formula: ((u8)(colorIndex - 1) <= 2). The -1 excludes + transparent pixels, as these are index 0. Therefore only colors 1, 2, or 3 on Spinda will + allow a spot to be drawn. These color indexes are Spinda's light brown body colors. To create + the spot it adds 4 to the color index, so Spinda's spots will be colors 5, 6, and 7. + + The above is done two different ways in the macro: one with << 4, and one without. This + is because Spinda's sprite is a 4 bits per pixel image, but the pointer to Spinda's pixels + (destPixels) is an 8 bit pointer, so it addresses two pixels. Shifting by 4 accesses the 2nd + of these pixels, so this is done every other time. +*/ +#define DRAW_SPINDA_SPOTS(personality, dest) \ { \ - int i; \ - for (i = 0; i < 4; i++) \ + s32 i; \ + for (i = 0; i < (s32)ARRAY_COUNT(gSpindaSpotGraphics); i++) \ { \ - int j; \ + s32 row; \ u8 x = gSpindaSpotGraphics[i].x + ((personality & 0x0F) - 8); \ u8 y = gSpindaSpotGraphics[i].y + (((personality & 0xF0) >> 4) - 8); \ \ - for (j = 0; j < 16; j++) \ + for (row = 0; row < SPINDA_SPOT_HEIGHT; row++) \ { \ - int k; \ - s32 row = gSpindaSpotGraphics[i].image[j]; \ + s32 column; \ + s32 spotPixelRow = gSpindaSpotGraphics[i].image[row]; \ \ - for (k = x; k < x + 16; k++) \ + for (column = x; column < x + SPINDA_SPOT_WIDTH; column++) \ { \ - u8 *val = dest + ((k / 8) * 32) + \ - ((k % 8) / 2) + \ - ((y >> 3) << 8) + \ - ((y & 7) << 2); \ + /* Get target pixels on Spinda's sprite */ \ + u8 *destPixels = dest + ((column / 8) * TILE_SIZE_4BPP) + \ + ((column % 8) / 2) + \ + ((y / 8) * TILE_SIZE_4BPP * 8) + \ + ((y % 8) * 4); \ \ - if (row & 1) \ + /* Is this pixel in the 16x16 spot image part of the spot? */ \ + if (spotPixelRow & 1) \ { \ - if (k & 1) \ + /* destPixels addressess two pixels, alternate which */ \ + /* of the two pixels is being considered for drawing */ \ + if (column & 1) \ { \ - if ((u8)((*val & 0xF0) - 0x10) <= 0x20) \ - *val += 0x40; \ + /* Draw spot pixel if this is Spinda's body color */ \ + if ((u8)((*destPixels & 0xF0) - (FIRST_SPOT_COLOR << 4))\ + <= ((LAST_SPOT_COLOR - FIRST_SPOT_COLOR) << 4))\ + *destPixels += (SPOT_COLOR_ADJUSTMENT << 4); \ } \ else \ { \ - if ((u8)((*val & 0xF) - 0x01) <= 0x02) \ - *val += 0x04; \ + /* Draw spot pixel if this is Spinda's body color */ \ + if ((u8)((*destPixels & 0xF) - FIRST_SPOT_COLOR) \ + <= (LAST_SPOT_COLOR - FIRST_SPOT_COLOR)) \ + *destPixels += SPOT_COLOR_ADJUSTMENT; \ } \ } \ \ - row >>= 1; \ + spotPixelRow >>= 1; \ } \ \ y++; \ @@ -5701,13 +5743,13 @@ static void DrawSpindaSpotsUnused(u16 species, u32 personality, u8 *dest) if (species == SPECIES_SPINDA && dest != gMonSpritesGfxPtr->sprites.ptr[B_POSITION_PLAYER_LEFT] && dest != gMonSpritesGfxPtr->sprites.ptr[B_POSITION_PLAYER_RIGHT]) - DRAW_SPINDA_SPOTS; + DRAW_SPINDA_SPOTS(personality, dest); } void DrawSpindaSpots(u16 species, u32 personality, u8 *dest, bool8 isFrontPic) { if (species == SPECIES_SPINDA && isFrontPic) - DRAW_SPINDA_SPOTS; + DRAW_SPINDA_SPOTS(personality, dest); } void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies) @@ -5767,7 +5809,7 @@ s32 GetBattlerMultiplayerId(u16 a1) u8 GetTrainerEncounterMusicId(u16 trainerOpponentId) { if (InBattlePyramid()) - return GetBattlePyramindTrainerEncounterMusicId(trainerOpponentId); + return GetTrainerEncounterMusicIdInBattlePyramid(trainerOpponentId); else if (InTrainerHillChallenge()) return GetTrainerEncounterMusicIdInTrainerHill(trainerOpponentId); else diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 4ead75965e..221b9e9ecf 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -37,7 +37,6 @@ #include "walda_phrase.h" #include "window.h" #include "constants/items.h" -#include "constants/maps.h" #include "constants/moves.h" #include "constants/rgb.h" #include "constants/songs.h" @@ -332,6 +331,13 @@ enum { TILEMAPID_COUNT }; +// Window IDs for sWindowTemplates +enum { + WIN_DISPLAY_INFO, + WIN_MESSAGE, + WIN_ITEM_DESC, +}; + struct Wallpaper { const u32 *tiles; @@ -939,49 +945,31 @@ static const union AffineAnimCmd *const sAffineAnims_ChooseBoxMenu[] = static const u8 sChooseBoxMenu_TextColors[] = {TEXT_COLOR_RED, TEXT_DYNAMIC_COLOR_6, TEXT_DYNAMIC_COLOR_5}; static const u8 sText_OutOf30[] = _("/30"); -static const u16 sChooseBoxMenu_Pal[] = INCBIN_U16("graphics/pokemon_storage/box_selection_popup.gbapal"); -static const u8 sChooseBoxMenuCenter_Gfx[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_center.4bpp"); -static const u8 sChooseBoxMenuSides_Gfx[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_sides.4bpp"); -static const u32 sScrollingBg_Gfx[] = INCBIN_U32("graphics/pokemon_storage/scrolling_bg.4bpp.lz"); -static const u32 sScrollingBg_Tilemap[] = INCBIN_U32("graphics/pokemon_storage/scrolling_bg.bin.lz"); -static const u16 sDisplayMenu_Pal[] = INCBIN_U16("graphics/pokemon_storage/display_menu.gbapal"); // Unused -static const u32 sDisplayMenu_Tilemap[] = INCBIN_U32("graphics/pokemon_storage/display_menu.bin.lz"); - -static const u16 sPkmnData_Tilemap[] = -{ - 0x0101, 0x0102, 0x0103, 0x0104, 0x0105, 0x0106, 0x0107, 0x0108, 0x0111, 0x0112, 0x0113, 0x0114, 0x0115, 0x0116, 0x0117, 0x0118, - 0x2101, 0x2102, 0x2103, 0x2104, 0x2105, 0x2106, 0x2107, 0x2108, 0x2111, 0x2112, 0x2113, 0x2114, 0x2115, 0x2116, 0x2117, 0x2118, -}; - +static const u16 sChooseBoxMenu_Pal[] = INCBIN_U16("graphics/pokemon_storage/box_selection_popup.gbapal"); +static const u8 sChooseBoxMenuCenter_Gfx[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_center.4bpp"); +static const u8 sChooseBoxMenuSides_Gfx[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_sides.4bpp"); +static const u32 sScrollingBg_Gfx[] = INCBIN_U32("graphics/pokemon_storage/scrolling_bg.4bpp.lz"); +static const u32 sScrollingBg_Tilemap[] = INCBIN_U32("graphics/pokemon_storage/scrolling_bg.bin.lz"); +static const u16 sDisplayMenu_Pal[] = INCBIN_U16("graphics/pokemon_storage/display_menu.gbapal"); // Unused +static const u32 sDisplayMenu_Tilemap[] = INCBIN_U32("graphics/pokemon_storage/display_menu.bin.lz"); +static const u16 sPkmnData_Tilemap[] = INCBIN_U16("graphics/pokemon_storage/pkmn_data.bin"); // sInterface_Pal - parts of the display frame, "PkmnData"'s normal color, Close Box -static const u16 sInterface_Pal[] = INCBIN_U16("graphics/pokemon_storage/interface.gbapal"); -static const u16 sPkmnDataGray_Pal[] = INCBIN_U16("graphics/pokemon_storage/pkmn_data_gray.gbapal"); -static const u16 sBg_Pal[] = INCBIN_U16("graphics/pokemon_storage/bg.gbapal"); -static const u16 sBgMoveItems_Pal[] = INCBIN_U16("graphics/pokemon_storage/bg_move_items.gbapal"); - -static const u16 sCloseBoxButton_Tilemap[] = -{ - 0x014c, 0x014d, 0x014e, 0x014f, 0x0170, 0x0171, 0x0172, 0x0173, 0x0174, 0x015c, 0x015d, 0x015e, 0x015f, 0x0180, 0x0181, 0x0182, - 0x0183, 0x0184, 0x0175, 0x0176, 0x0177, 0x0178, 0x0179, 0x017a, 0x017b, 0x017c, 0x017d, 0x0185, 0x0186, 0x0187, 0x0188, 0x0189, - 0x018a, 0x018b, 0x018c, 0x018d -}; -static const u16 sPartySlotFilled_Tilemap[] = -{ - 0x1140, 0x1141, 0x1141, 0x1142, 0x1150, 0x1151, 0x1151, 0x1152, 0x1160, 0x1161, 0x1161, 0x1162, -}; -static const u16 sPartySlotEmpty_Tilemap[] = -{ - 0x1143, 0x1144, 0x1144, 0x1145, 0x1153, 0x1154, 0x1154, 0x1155, 0x1163, 0x1164, 0x1164, 0x1165, -}; - -static const u16 sWaveform_Pal[] = INCBIN_U16("graphics/pokemon_storage/waveform.gbapal"); -static const u32 sWaveform_Gfx[] = INCBIN_U32("graphics/pokemon_storage/waveform.4bpp"); -static const u16 sUnused_Pal[] = INCBIN_U16("graphics/pokemon_storage/unused.gbapal"); -static const u16 sUnknown_Pal[] = INCBIN_U16("graphics/pokemon_storage/unknown.gbapal"); +static const u16 sInterface_Pal[] = INCBIN_U16("graphics/pokemon_storage/interface.gbapal"); +static const u16 sPkmnDataGray_Pal[] = INCBIN_U16("graphics/pokemon_storage/pkmn_data_gray.gbapal"); +static const u16 sBg_Pal[] = INCBIN_U16("graphics/pokemon_storage/bg.gbapal"); +static const u16 sBgMoveItems_Pal[] = INCBIN_U16("graphics/pokemon_storage/bg_move_items.gbapal"); +static const u16 sCloseBoxButton_Tilemap[] = INCBIN_U16("graphics/pokemon_storage/close_box_button.bin"); +static const u16 sPartySlotFilled_Tilemap[] = INCBIN_U16("graphics/pokemon_storage/party_slot_filled.bin"); +static const u16 sPartySlotEmpty_Tilemap[] = INCBIN_U16("graphics/pokemon_storage/party_slot_empty.bin"); +static const u16 sWaveform_Pal[] = INCBIN_U16("graphics/pokemon_storage/waveform.gbapal"); +static const u32 sWaveform_Gfx[] = INCBIN_U32("graphics/pokemon_storage/waveform.4bpp"); +static const u16 sUnused_Pal[] = INCBIN_U16("graphics/pokemon_storage/unused.gbapal"); +static const u16 sTextWindows_Pal[] = INCBIN_U16("graphics/pokemon_storage/text_windows.gbapal"); static const struct WindowTemplate sWindowTemplates[] = { - { + // The panel below the currently displayed Pokémon + [WIN_DISPLAY_INFO] = { .bg = 1, .tilemapLeft = 0, .tilemapTop = 11, @@ -990,7 +978,7 @@ static const struct WindowTemplate sWindowTemplates[] = .paletteNum = 3, .baseBlock = 0xC0, }, - { + [WIN_MESSAGE] = { .bg = 0, .tilemapLeft = 11, .tilemapTop = 17, @@ -999,7 +987,7 @@ static const struct WindowTemplate sWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x14, }, - { + [WIN_ITEM_DESC] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 13, @@ -1349,7 +1337,7 @@ void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero windowId = AddWindow(&winTemplate); FillWindowPixelBuffer(windowId, PIXEL_FILL(zero2)); tileData1 = (u8*) GetWindowAttribute(windowId, WINDOW_TILE_DATA); - tileData2 = (winTemplate.width * 32) + tileData1; + tileData2 = (winTemplate.width * TILE_SIZE_4BPP) + tileData1; if (!zero1) txtColor[0] = TEXT_COLOR_TRANSPARENT; @@ -1385,7 +1373,7 @@ void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero // Unused static void UnusedDrawTextWindow(const u8 *string, void *dst, u16 offset, u8 bgColor, u8 fgColor, u8 shadowColor) { - u32 tileSize; + u32 tilesSize; u8 windowId; u8 txtColor[3]; u8 *tileData1, *tileData2; @@ -1393,17 +1381,17 @@ static void UnusedDrawTextWindow(const u8 *string, void *dst, u16 offset, u8 bgC winTemplate.width = StringLength_Multibyte(string); winTemplate.height = 2; - tileSize = winTemplate.width * 32; + tilesSize = winTemplate.width * TILE_SIZE_4BPP; windowId = AddWindow(&winTemplate); FillWindowPixelBuffer(windowId, PIXEL_FILL(bgColor)); tileData1 = (u8*) GetWindowAttribute(windowId, WINDOW_TILE_DATA); - tileData2 = (winTemplate.width * 32) + tileData1; + tileData2 = (winTemplate.width * TILE_SIZE_4BPP) + tileData1; txtColor[0] = bgColor; txtColor[1] = fgColor; txtColor[2] = shadowColor; AddTextPrinterParameterized4(windowId, FONT_NORMAL, 0, 2, 0, 0, txtColor, TEXT_SKIP_DRAW, string); - CpuCopy16(tileData1, dst, tileSize); - CpuCopy16(tileData2, dst + offset, tileSize); + CpuCopy16(tileData1, dst, tilesSize); + CpuCopy16(tileData2, dst + offset, tilesSize); RemoveWindow(windowId); } @@ -2141,10 +2129,10 @@ static void Task_InitPokeStorage(u8 taskId) } break; case 2: - PutWindowTilemap(0); - ClearWindowTilemap(1); + PutWindowTilemap(WIN_DISPLAY_INFO); + ClearWindowTilemap(WIN_MESSAGE); CpuFill32(0, (void *)VRAM, 0x200); - LoadUserWindowBorderGfx(1, 0xB, 0xE0); + LoadUserWindowBorderGfx(WIN_MESSAGE, 0xB, 0xE0); break; case 3: ResetAllBgCoords(); @@ -3867,7 +3855,7 @@ static void InitPalettesAndSprites(void) { LoadPalette(sInterface_Pal, 0, sizeof(sInterface_Pal)); LoadPalette(sPkmnDataGray_Pal, 0x20, sizeof(sPkmnDataGray_Pal)); - LoadPalette(sUnknown_Pal, 0xF0, sizeof(sUnknown_Pal)); + LoadPalette(sTextWindows_Pal, 0xF0, sizeof(sTextWindows_Pal)); if (sStorage->boxOption != OPTION_MOVE_ITEMS) LoadPalette(sBg_Pal, 0x30, sizeof(sBg_Pal)); else @@ -3975,7 +3963,7 @@ static void CreateDisplayMonSprite(void) sStorage->displayMonSprite = &gSprites[spriteId]; sStorage->displayMonPalOffset = palSlot * 16 + 0x100; - sStorage->displayMonTilePtr = (void*) OBJ_VRAM0 + tileStart * 32; + sStorage->displayMonTilePtr = (void*) OBJ_VRAM0 + tileStart * TILE_SIZE_4BPP; } while (0); if (sStorage->displayMonSprite == NULL) @@ -4006,23 +3994,23 @@ static void LoadDisplayMonGfx(u16 species, u32 pid) static void PrintDisplayMonInfo(void) { - FillWindowPixelBuffer(0, PIXEL_FILL(1)); + FillWindowPixelBuffer(WIN_DISPLAY_INFO, PIXEL_FILL(1)); if (sStorage->boxOption != OPTION_MOVE_ITEMS) { - AddTextPrinterParameterized(0, FONT_NORMAL, sStorage->displayMonNameText, 6, 0, TEXT_SKIP_DRAW, NULL); - AddTextPrinterParameterized(0, FONT_SHORT, sStorage->displayMonSpeciesName, 6, 15, TEXT_SKIP_DRAW, NULL); - AddTextPrinterParameterized(0, FONT_SHORT, sStorage->displayMonGenderLvlText, 10, 29, TEXT_SKIP_DRAW, NULL); - AddTextPrinterParameterized(0, FONT_SMALL, sStorage->displayMonItemName, 6, 43, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_NORMAL, sStorage->displayMonNameText, 6, 0, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_SHORT, sStorage->displayMonSpeciesName, 6, 15, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_SHORT, sStorage->displayMonGenderLvlText, 10, 29, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_SMALL, sStorage->displayMonItemName, 6, 43, TEXT_SKIP_DRAW, NULL); } else { - AddTextPrinterParameterized(0, FONT_SMALL, sStorage->displayMonItemName, 6, 0, TEXT_SKIP_DRAW, NULL); - AddTextPrinterParameterized(0, FONT_NORMAL, sStorage->displayMonNameText, 6, 13, TEXT_SKIP_DRAW, NULL); - AddTextPrinterParameterized(0, FONT_SHORT, sStorage->displayMonSpeciesName, 6, 28, TEXT_SKIP_DRAW, NULL); - AddTextPrinterParameterized(0, FONT_SHORT, sStorage->displayMonGenderLvlText, 10, 42, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_SMALL, sStorage->displayMonItemName, 6, 0, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_NORMAL, sStorage->displayMonNameText, 6, 13, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_SHORT, sStorage->displayMonSpeciesName, 6, 28, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(WIN_DISPLAY_INFO, FONT_SHORT, sStorage->displayMonGenderLvlText, 10, 42, TEXT_SKIP_DRAW, NULL); } - CopyWindowToVram(0, COPYWIN_GFX); + CopyWindowToVram(WIN_DISPLAY_INFO, COPYWIN_GFX); if (sStorage->displayMonSpecies != SPECIES_NONE) { UpdateMonMarkingTiles(sStorage->displayMonMarkings, sStorage->markingComboTilesPtr); @@ -4283,7 +4271,7 @@ static void UpdateBoxToSendMons(void) static void InitPokeStorageBg0(void) { SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(29)); - LoadUserWindowBorderGfx(1, 2, 208); + LoadUserWindowBorderGfx(WIN_MESSAGE, 2, 208); FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17); CopyBgTilemapBufferToVram(0); } @@ -4322,11 +4310,11 @@ static void PrintMessage(u8 id) } DynamicPlaceholderTextUtil_ExpandPlaceholders(sStorage->messageText, sMessages[id].text); - FillWindowPixelBuffer(1, PIXEL_FILL(1)); - AddTextPrinterParameterized(1, FONT_NORMAL, sStorage->messageText, 0, 1, TEXT_SKIP_DRAW, NULL); - DrawTextBorderOuter(1, 2, 14); - PutWindowTilemap(1); - CopyWindowToVram(1, COPYWIN_GFX); + FillWindowPixelBuffer(WIN_MESSAGE, PIXEL_FILL(1)); + AddTextPrinterParameterized(WIN_MESSAGE, FONT_NORMAL, sStorage->messageText, 0, 1, TEXT_SKIP_DRAW, NULL); + DrawTextBorderOuter(WIN_MESSAGE, 2, 14); + PutWindowTilemap(WIN_MESSAGE); + CopyWindowToVram(WIN_MESSAGE, COPYWIN_GFX); ScheduleBgCopyTilemapToVram(0); } @@ -4338,7 +4326,7 @@ static void ShowYesNoWindow(s8 cursorPos) static void ClearBottomWindow(void) { - ClearStdWindowAndFrameToTransparent(1, FALSE); + ClearStdWindowAndFrameToTransparent(WIN_MESSAGE, FALSE); ScheduleBgCopyTilemapToVram(0); } @@ -5135,7 +5123,7 @@ static u16 TryLoadMonIconTiles(u16 species) sStorage->iconSpeciesList[i] = species; sStorage->numIconsPerSpecies[i]++; offset = 16 * i; - CpuCopy32(GetMonIconTiles(species, TRUE), (void*)(OBJ_VRAM0) + offset * 32, 0x200); + CpuCopy32(GetMonIconTiles(species, TRUE), (void*)(OBJ_VRAM0) + offset * TILE_SIZE_4BPP, 0x200); return offset; } @@ -6893,7 +6881,7 @@ static void SetDisplayMonData(void *pokemon, u8 mode) sStorage->displayMonIsEgg = GetMonData(mon, MON_DATA_IS_EGG); GetMonData(mon, MON_DATA_NICKNAME, sStorage->displayMonName); - StringGetEnd10(sStorage->displayMonName); + StringGet_Nickname(sStorage->displayMonName); sStorage->displayMonLevel = GetMonData(mon, MON_DATA_LEVEL); sStorage->displayMonMarkings = GetMonData(mon, MON_DATA_MARKINGS); sStorage->displayMonPersonality = GetMonData(mon, MON_DATA_PERSONALITY); @@ -6918,7 +6906,7 @@ static void SetDisplayMonData(void *pokemon, u8 mode) GetBoxMonData(boxMon, MON_DATA_NICKNAME, sStorage->displayMonName); - StringGetEnd10(sStorage->displayMonName); + StringGet_Nickname(sStorage->displayMonName); sStorage->displayMonLevel = GetLevelFromBoxMonExp(boxMon); sStorage->displayMonMarkings = GetBoxMonData(boxMon, MON_DATA_MARKINGS); sStorage->displayMonPersonality = GetBoxMonData(boxMon, MON_DATA_PERSONALITY); @@ -8760,7 +8748,7 @@ static void CreateItemIconSprites(void) { spriteSheet.tag = GFXTAG_ITEM_ICON_0 + i; LoadCompressedSpriteSheet(&spriteSheet); - sStorage->itemIcons[i].tiles = GetSpriteTileStartByTag(spriteSheet.tag) * 32 + (void*)(OBJ_VRAM0); + sStorage->itemIcons[i].tiles = GetSpriteTileStartByTag(spriteSheet.tag) * TILE_SIZE_4BPP + (void*)(OBJ_VRAM0); sStorage->itemIcons[i].palIndex = AllocSpritePalette(PALTAG_ITEM_ICON_0 + i); sStorage->itemIcons[i].palIndex *= 16; sStorage->itemIcons[i].palIndex += 0x100; @@ -9206,8 +9194,8 @@ static void PrintItemDescription(void) else description = ItemId_GetDescription(sStorage->displayMonItemId); - FillWindowPixelBuffer(2, PIXEL_FILL(1)); - AddTextPrinterParameterized5(2, FONT_NORMAL, description, 4, 0, 0, NULL, 0, 1); + FillWindowPixelBuffer(WIN_ITEM_DESC, PIXEL_FILL(1)); + AddTextPrinterParameterized5(WIN_ITEM_DESC, FONT_NORMAL, description, 4, 0, 0, NULL, 0, 1); } static void InitItemInfoWindow(void) diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index c5aeb6b47a..10c69a4226 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -365,7 +365,7 @@ struct TilemapCtrl u8 field_9; }; -static const u16 sStatusTilemap[] = INCBIN_U16("graphics/interface/status_tilemap.bin"); +static const u16 sStatusTilemap[] = INCBIN_U16("graphics/summary_screen/status_tilemap.bin"); static const struct TilemapCtrl sStatusTilemapCtrl1 = { sStatusTilemap, 1, 10, 2, 0, 18 @@ -376,11 +376,11 @@ static const struct TilemapCtrl sStatusTilemapCtrl2 = }; static const struct TilemapCtrl sBattleMoveTilemapCtrl = { - gSummaryScreenPowAcc_Tilemap, 0, 10, 7, 0, 45 + gSummaryScreen_MoveEffect_Battle_Tilemap, 0, 10, 7, 0, 45 }; static const struct TilemapCtrl sContestMoveTilemapCtrl = { - gSummaryScreenAppealJam_Tilemap, 0, 10, 7, 0, 45 + gSummaryScreen_MoveEffect_Contest_Tilemap, 0, 10, 7, 0, 45 }; static const s8 sMultiBattleOrder[] = {0, 2, 3, 1, 4, 5}; static const struct WindowTemplate sSummaryTemplate[] = @@ -701,8 +701,8 @@ static const u8 sTextColors[][3] = {0, 7, 8} }; -static const u8 sSummaryAButtonBitmap[] = INCBIN_U8("graphics/interface/summary_a_button.4bpp"); -static const u8 sSummaryBButtonBitmap[] = INCBIN_U8("graphics/interface/summary_b_button.4bpp"); +static const u8 sAButton_Gfx[] = INCBIN_U8("graphics/summary_screen/a_button.4bpp"); +static const u8 sBButton_Gfx[] = INCBIN_U8("graphics/summary_screen/b_button.4bpp"); static void (*const sTextPrinterFunctions[])(void) = { @@ -1071,7 +1071,7 @@ static const struct SpriteTemplate sSpriteTemplate_StatusCondition = .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const u16 sSummaryMarkingsPalette[] = INCBIN_U16("graphics/interface/summary_markings.gbapal"); +static const u16 sMarkings_Pal[] = INCBIN_U16("graphics/summary_screen/markings.gbapal"); // code void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)) @@ -1312,7 +1312,7 @@ static bool8 DecompressGraphics(void) } break; case 2: - LZDecompressWram(gSummaryPage_InfoCopy_Tilemap, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_INFO][1]); + LZDecompressWram(gSummaryPage_InfoEgg_Tilemap, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_INFO][1]); sMonSummaryScreen->switchCounter++; break; case 3: @@ -2551,6 +2551,7 @@ static void Task_ShowStatusWindow(u8 taskId) } } +// Toggles the "Cancel" window that appears when selecting a move static void TilemapFiveMovesDisplay(u16 *dst, u16 palette, bool8 remove) { u16 i, id; @@ -2561,18 +2562,18 @@ static void TilemapFiveMovesDisplay(u16 *dst, u16 palette, bool8 remove) { for (i = 0; i < 20; i++) { - dst[id + i] = gSummaryScreenWindow_Tilemap[i] + palette; - dst[id + i + 0x20] = gSummaryScreenWindow_Tilemap[i] + palette; - dst[id + i + 0x40] = gSummaryScreenWindow_Tilemap[i + 20] + palette; + dst[id + i] = gSummaryScreen_MoveEffect_Cancel_Tilemap[i] + palette; + dst[id + i + 0x20] = gSummaryScreen_MoveEffect_Cancel_Tilemap[i] + palette; + dst[id + i + 0x40] = gSummaryScreen_MoveEffect_Cancel_Tilemap[i + 20] + palette; } } else // Remove { for (i = 0; i < 20; i++) { - dst[id + i] = gSummaryScreenWindow_Tilemap[i + 20] + palette; - dst[id + i + 0x20] = gSummaryScreenWindow_Tilemap[i + 40] + palette; - dst[id + i + 0x40] = gSummaryScreenWindow_Tilemap[i + 40] + palette; + dst[id + i] = gSummaryScreen_MoveEffect_Cancel_Tilemap[i + 20] + palette; + dst[id + i + 0x20] = gSummaryScreen_MoveEffect_Cancel_Tilemap[i + 40] + palette; + dst[id + i + 0x40] = gSummaryScreen_MoveEffect_Cancel_Tilemap[i + 40] + palette; } } } @@ -2788,8 +2789,8 @@ static void PrintGenderSymbol(struct Pokemon *mon, u16 species) static void PrintAOrBButtonIcon(u8 windowId, bool8 bButton, u32 x) { - // sSummaryBButtonBitmap - 0x80 = sSummaryAButtonBitmap - BlitBitmapToWindow(windowId, (bButton) ? sSummaryBButtonBitmap : sSummaryBButtonBitmap - 0x80, x, 0, 16, 16); + // sBButton_Gfx - sizeof(sBButton_Gfx) = sAButton_Gfx + BlitBitmapToWindow(windowId, (bButton) ? sBButton_Gfx : sBButton_Gfx - sizeof(sBButton_Gfx), x, 0, 16, 16); } static void PrintPageNamesAndStats(void) @@ -4011,7 +4012,7 @@ static void StopPokemonAnimations(void) // A subtle effect, this function stops static void CreateMonMarkingsSprite(struct Pokemon *mon) { - struct Sprite *sprite = CreateMonMarkingAllCombosSprite(TAG_MON_MARKINGS, TAG_MON_MARKINGS, sSummaryMarkingsPalette); + struct Sprite *sprite = CreateMonMarkingAllCombosSprite(TAG_MON_MARKINGS, TAG_MON_MARKINGS, sMarkings_Pal); sMonSummaryScreen->markingsSprite = sprite; if (sprite != NULL) diff --git a/src/pokenav_conditions.c b/src/pokenav_conditions.c index e61b115686..94ed4e8d8c 100644 --- a/src/pokenav_conditions.c +++ b/src/pokenav_conditions.c @@ -351,7 +351,7 @@ static u8 *CopyConditionMonNameGender(u8 *str, u16 listId, bool8 arg3) return StringCopyPadded(str, gText_EggNickname, CHAR_SPACE, 12); GetBoxOrPartyMonData(boxId, monId, MON_DATA_NICKNAME, str); - StringGetEnd10(str); + StringGet_Nickname(str); species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES, NULL); if (boxId == TOTAL_BOXES_COUNT) { diff --git a/src/pokenav_conditions_search_results.c b/src/pokenav_conditions_search_results.c index c8790e3598..bbc07df2c3 100644 --- a/src/pokenav_conditions_search_results.c +++ b/src/pokenav_conditions_search_results.c @@ -711,7 +711,7 @@ static void BufferSearchMonListItem(struct PokenavMonListItem * item, u8 * dest) GetBoxMonData(mon, MON_DATA_NICKNAME, gStringVar3); } - StringGetEnd10(gStringVar3); + StringGet_Nickname(gStringVar3); dest = GetStringClearToWidth(dest, FONT_NORMAL, gStringVar3, 60); switch (gender) { diff --git a/src/pokenav_ribbons_list.c b/src/pokenav_ribbons_list.c index 1d72f6a980..724ced507e 100644 --- a/src/pokenav_ribbons_list.c +++ b/src/pokenav_ribbons_list.c @@ -721,7 +721,7 @@ static void BufferRibbonMonInfoText(struct PokenavListItem * listItem, u8 * dest GetBoxMonData(mon, MON_DATA_NICKNAME, gStringVar3); } - StringGetEnd10(gStringVar3); + StringGet_Nickname(gStringVar3); dest = GetStringClearToWidth(dest, FONT_NORMAL, gStringVar3, 60); switch (gender) { diff --git a/src/pokenav_ribbons_summary.c b/src/pokenav_ribbons_summary.c index 81d5b900bd..581228ff41 100644 --- a/src/pokenav_ribbons_summary.c +++ b/src/pokenav_ribbons_summary.c @@ -397,7 +397,7 @@ static void GetMonNicknameLevelGender(u8 *nick, u8 *level, u8 *gender) *level = GetLevelFromBoxMonExp(boxMon); GetBoxMonData(boxMon, MON_DATA_NICKNAME, nick); } - StringGetEnd10(nick); + StringGet_Nickname(nick); } static void GetMonSpeciesPersonalityOtId(u16 *species, u32 *personality, u32 *otId) diff --git a/src/region_map.c b/src/region_map.c index 759a26e84a..09e2d69bf2 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -7,7 +7,6 @@ #include "palette.h" #include "party_menu.h" #include "trig.h" -#include "constants/maps.h" #include "overworld.h" #include "event_data.h" #include "secret_base.h" @@ -290,56 +289,56 @@ static const u32 sFlyTargetIcons_Gfx[] = INCBIN_U32("graphics/pokenav/region_map static const u8 sMapHealLocations[][3] = { - {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F}, - {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), HEAL_LOCATION_OLDALE_TOWN}, - {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), HEAL_LOCATION_DEWFORD_TOWN}, - {MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), HEAL_LOCATION_LAVARIDGE_TOWN}, - {MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), HEAL_LOCATION_FALLARBOR_TOWN}, - {MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), HEAL_LOCATION_VERDANTURF_TOWN}, - {MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), HEAL_LOCATION_PACIFIDLOG_TOWN}, - {MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), HEAL_LOCATION_PETALBURG_CITY}, - {MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), HEAL_LOCATION_SLATEPORT_CITY}, - {MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), HEAL_LOCATION_MAUVILLE_CITY}, - {MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), HEAL_LOCATION_RUSTBORO_CITY}, - {MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), HEAL_LOCATION_FORTREE_CITY}, - {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), HEAL_LOCATION_LILYCOVE_CITY}, - {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), HEAL_LOCATION_MOSSDEEP_CITY}, - {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), HEAL_LOCATION_SOOTOPOLIS_CITY}, - {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), HEAL_LOCATION_EVER_GRANDE_CITY}, - {MAP_GROUP(ROUTE101), MAP_NUM(ROUTE101), 0}, - {MAP_GROUP(ROUTE102), MAP_NUM(ROUTE102), 0}, - {MAP_GROUP(ROUTE103), MAP_NUM(ROUTE103), 0}, - {MAP_GROUP(ROUTE104), MAP_NUM(ROUTE104), 0}, - {MAP_GROUP(ROUTE105), MAP_NUM(ROUTE105), 0}, - {MAP_GROUP(ROUTE106), MAP_NUM(ROUTE106), 0}, - {MAP_GROUP(ROUTE107), MAP_NUM(ROUTE107), 0}, - {MAP_GROUP(ROUTE108), MAP_NUM(ROUTE108), 0}, - {MAP_GROUP(ROUTE109), MAP_NUM(ROUTE109), 0}, - {MAP_GROUP(ROUTE110), MAP_NUM(ROUTE110), 0}, - {MAP_GROUP(ROUTE111), MAP_NUM(ROUTE111), 0}, - {MAP_GROUP(ROUTE112), MAP_NUM(ROUTE112), 0}, - {MAP_GROUP(ROUTE113), MAP_NUM(ROUTE113), 0}, - {MAP_GROUP(ROUTE114), MAP_NUM(ROUTE114), 0}, - {MAP_GROUP(ROUTE115), MAP_NUM(ROUTE115), 0}, - {MAP_GROUP(ROUTE116), MAP_NUM(ROUTE116), 0}, - {MAP_GROUP(ROUTE117), MAP_NUM(ROUTE117), 0}, - {MAP_GROUP(ROUTE118), MAP_NUM(ROUTE118), 0}, - {MAP_GROUP(ROUTE119), MAP_NUM(ROUTE119), 0}, - {MAP_GROUP(ROUTE120), MAP_NUM(ROUTE120), 0}, - {MAP_GROUP(ROUTE121), MAP_NUM(ROUTE121), 0}, - {MAP_GROUP(ROUTE122), MAP_NUM(ROUTE122), 0}, - {MAP_GROUP(ROUTE123), MAP_NUM(ROUTE123), 0}, - {MAP_GROUP(ROUTE124), MAP_NUM(ROUTE124), 0}, - {MAP_GROUP(ROUTE125), MAP_NUM(ROUTE125), 0}, - {MAP_GROUP(ROUTE126), MAP_NUM(ROUTE126), 0}, - {MAP_GROUP(ROUTE127), MAP_NUM(ROUTE127), 0}, - {MAP_GROUP(ROUTE128), MAP_NUM(ROUTE128), 0}, - {MAP_GROUP(ROUTE129), MAP_NUM(ROUTE129), 0}, - {MAP_GROUP(ROUTE130), MAP_NUM(ROUTE130), 0}, - {MAP_GROUP(ROUTE131), MAP_NUM(ROUTE131), 0}, - {MAP_GROUP(ROUTE132), MAP_NUM(ROUTE132), 0}, - {MAP_GROUP(ROUTE133), MAP_NUM(ROUTE133), 0}, - {MAP_GROUP(ROUTE134), MAP_NUM(ROUTE134), 0} + [MAPSEC_LITTLEROOT_TOWN] = {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F}, + [MAPSEC_OLDALE_TOWN] = {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), HEAL_LOCATION_OLDALE_TOWN}, + [MAPSEC_DEWFORD_TOWN] = {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), HEAL_LOCATION_DEWFORD_TOWN}, + [MAPSEC_LAVARIDGE_TOWN] = {MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), HEAL_LOCATION_LAVARIDGE_TOWN}, + [MAPSEC_FALLARBOR_TOWN] = {MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), HEAL_LOCATION_FALLARBOR_TOWN}, + [MAPSEC_VERDANTURF_TOWN] = {MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), HEAL_LOCATION_VERDANTURF_TOWN}, + [MAPSEC_PACIFIDLOG_TOWN] = {MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), HEAL_LOCATION_PACIFIDLOG_TOWN}, + [MAPSEC_PETALBURG_CITY] = {MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), HEAL_LOCATION_PETALBURG_CITY}, + [MAPSEC_SLATEPORT_CITY] = {MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), HEAL_LOCATION_SLATEPORT_CITY}, + [MAPSEC_MAUVILLE_CITY] = {MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), HEAL_LOCATION_MAUVILLE_CITY}, + [MAPSEC_RUSTBORO_CITY] = {MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), HEAL_LOCATION_RUSTBORO_CITY}, + [MAPSEC_FORTREE_CITY] = {MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), HEAL_LOCATION_FORTREE_CITY}, + [MAPSEC_LILYCOVE_CITY] = {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), HEAL_LOCATION_LILYCOVE_CITY}, + [MAPSEC_MOSSDEEP_CITY] = {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), HEAL_LOCATION_MOSSDEEP_CITY}, + [MAPSEC_SOOTOPOLIS_CITY] = {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), HEAL_LOCATION_SOOTOPOLIS_CITY}, + [MAPSEC_EVER_GRANDE_CITY] = {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), HEAL_LOCATION_EVER_GRANDE_CITY}, + [MAPSEC_ROUTE_101] = {MAP_GROUP(ROUTE101), MAP_NUM(ROUTE101), 0}, + [MAPSEC_ROUTE_102] = {MAP_GROUP(ROUTE102), MAP_NUM(ROUTE102), 0}, + [MAPSEC_ROUTE_103] = {MAP_GROUP(ROUTE103), MAP_NUM(ROUTE103), 0}, + [MAPSEC_ROUTE_104] = {MAP_GROUP(ROUTE104), MAP_NUM(ROUTE104), 0}, + [MAPSEC_ROUTE_105] = {MAP_GROUP(ROUTE105), MAP_NUM(ROUTE105), 0}, + [MAPSEC_ROUTE_106] = {MAP_GROUP(ROUTE106), MAP_NUM(ROUTE106), 0}, + [MAPSEC_ROUTE_107] = {MAP_GROUP(ROUTE107), MAP_NUM(ROUTE107), 0}, + [MAPSEC_ROUTE_108] = {MAP_GROUP(ROUTE108), MAP_NUM(ROUTE108), 0}, + [MAPSEC_ROUTE_109] = {MAP_GROUP(ROUTE109), MAP_NUM(ROUTE109), 0}, + [MAPSEC_ROUTE_110] = {MAP_GROUP(ROUTE110), MAP_NUM(ROUTE110), 0}, + [MAPSEC_ROUTE_111] = {MAP_GROUP(ROUTE111), MAP_NUM(ROUTE111), 0}, + [MAPSEC_ROUTE_112] = {MAP_GROUP(ROUTE112), MAP_NUM(ROUTE112), 0}, + [MAPSEC_ROUTE_113] = {MAP_GROUP(ROUTE113), MAP_NUM(ROUTE113), 0}, + [MAPSEC_ROUTE_114] = {MAP_GROUP(ROUTE114), MAP_NUM(ROUTE114), 0}, + [MAPSEC_ROUTE_115] = {MAP_GROUP(ROUTE115), MAP_NUM(ROUTE115), 0}, + [MAPSEC_ROUTE_116] = {MAP_GROUP(ROUTE116), MAP_NUM(ROUTE116), 0}, + [MAPSEC_ROUTE_117] = {MAP_GROUP(ROUTE117), MAP_NUM(ROUTE117), 0}, + [MAPSEC_ROUTE_118] = {MAP_GROUP(ROUTE118), MAP_NUM(ROUTE118), 0}, + [MAPSEC_ROUTE_119] = {MAP_GROUP(ROUTE119), MAP_NUM(ROUTE119), 0}, + [MAPSEC_ROUTE_120] = {MAP_GROUP(ROUTE120), MAP_NUM(ROUTE120), 0}, + [MAPSEC_ROUTE_121] = {MAP_GROUP(ROUTE121), MAP_NUM(ROUTE121), 0}, + [MAPSEC_ROUTE_122] = {MAP_GROUP(ROUTE122), MAP_NUM(ROUTE122), 0}, + [MAPSEC_ROUTE_123] = {MAP_GROUP(ROUTE123), MAP_NUM(ROUTE123), 0}, + [MAPSEC_ROUTE_124] = {MAP_GROUP(ROUTE124), MAP_NUM(ROUTE124), 0}, + [MAPSEC_ROUTE_125] = {MAP_GROUP(ROUTE125), MAP_NUM(ROUTE125), 0}, + [MAPSEC_ROUTE_126] = {MAP_GROUP(ROUTE126), MAP_NUM(ROUTE126), 0}, + [MAPSEC_ROUTE_127] = {MAP_GROUP(ROUTE127), MAP_NUM(ROUTE127), 0}, + [MAPSEC_ROUTE_128] = {MAP_GROUP(ROUTE128), MAP_NUM(ROUTE128), 0}, + [MAPSEC_ROUTE_129] = {MAP_GROUP(ROUTE129), MAP_NUM(ROUTE129), 0}, + [MAPSEC_ROUTE_130] = {MAP_GROUP(ROUTE130), MAP_NUM(ROUTE130), 0}, + [MAPSEC_ROUTE_131] = {MAP_GROUP(ROUTE131), MAP_NUM(ROUTE131), 0}, + [MAPSEC_ROUTE_132] = {MAP_GROUP(ROUTE132), MAP_NUM(ROUTE132), 0}, + [MAPSEC_ROUTE_133] = {MAP_GROUP(ROUTE133), MAP_NUM(ROUTE133), 0}, + [MAPSEC_ROUTE_134] = {MAP_GROUP(ROUTE134), MAP_NUM(ROUTE134), 0} }; static const u8 *const sEverGrandeCityNames[] = @@ -1517,28 +1516,26 @@ static void UnhideRegionMapPlayerIcon(void) } } +#define sY data[0] +#define sX data[1] +#define sVisible data[2] +#define sTimer data[7] + static void SpriteCB_PlayerIconMapZoomed(struct Sprite *sprite) { sprite->x2 = -2 * gRegionMap->scrollX; sprite->y2 = -2 * gRegionMap->scrollY; - sprite->data[0] = sprite->y + sprite->y2 + sprite->centerToCornerVecY; - sprite->data[1] = sprite->x + sprite->x2 + sprite->centerToCornerVecX; - if (sprite->data[0] < -8 || sprite->data[0] > 0xa8 || sprite->data[1] < -8 || sprite->data[1] > 0xf8) - { - sprite->data[2] = FALSE; - } + sprite->sY = sprite->y + sprite->y2 + sprite->centerToCornerVecY; + sprite->sX = sprite->x + sprite->x2 + sprite->centerToCornerVecX; + if (sprite->sY < -8 || sprite->sY > DISPLAY_HEIGHT + 8 || sprite->sX < -8 || sprite->sX > DISPLAY_WIDTH + 8) + sprite->sVisible = FALSE; else - { - sprite->data[2] = TRUE; - } - if (sprite->data[2] == TRUE) - { + sprite->sVisible = TRUE; + + if (sprite->sVisible == TRUE) SpriteCB_PlayerIcon(sprite); - } else - { sprite->invisible = TRUE; - } } static void SpriteCB_PlayerIconMapFull(struct Sprite *sprite) @@ -1550,9 +1547,9 @@ static void SpriteCB_PlayerIcon(struct Sprite *sprite) { if (gRegionMap->blinkPlayerIcon) { - if (++sprite->data[7] > 16) + if (++sprite->sTimer > 16) { - sprite->data[7] = 0; + sprite->sTimer = 0; sprite->invisible = sprite->invisible ? FALSE : TRUE; } } @@ -1568,6 +1565,11 @@ void TrySetPlayerIconBlink(void) gRegionMap->blinkPlayerIcon = TRUE; } +#undef sY +#undef sX +#undef sVisible +#undef sTimer + u8 *GetMapName(u8 *dest, u16 regionMapId, u16 padLength) { u8 *str; @@ -1710,7 +1712,7 @@ void CB2_OpenFlyMap(void) gMain.state++; break; case 7: - LoadPalette(sRegionMapFramePal, 0x10, 0x20); + LoadPalette(sRegionMapFramePal, 0x10, sizeof(sRegionMapFramePal)); PutWindowTilemap(2); FillWindowPixelBuffer(2, PIXEL_FILL(0)); AddTextPrinterParameterized(2, FONT_NORMAL, gText_FlyToWhere, 0, 1, 0, NULL); @@ -2013,7 +2015,7 @@ static void CB_ExitFlyMap(void) if (sMapHealLocations[sFlyMap->regionMap.mapSecId][2] != 0) SetWarpDestinationToHealLocation(sMapHealLocations[sFlyMap->regionMap.mapSecId][2]); else - SetWarpDestinationToMapWarp(sMapHealLocations[sFlyMap->regionMap.mapSecId][0], sMapHealLocations[sFlyMap->regionMap.mapSecId][1], -1); + SetWarpDestinationToMapWarp(sMapHealLocations[sFlyMap->regionMap.mapSecId][0], sMapHealLocations[sFlyMap->regionMap.mapSecId][1], WARP_ID_NONE); break; } ReturnToFieldFromFlyMapSelect(); diff --git a/src/roamer.c b/src/roamer.c index b8d1009674..c17ec490c8 100644 --- a/src/roamer.c +++ b/src/roamer.c @@ -3,7 +3,6 @@ #include "pokemon.h" #include "random.h" #include "roamer.h" -#include "constants/maps.h" // Despite having a variable to track it, the roamer is // hard-coded to only ever be in map group 0 @@ -194,10 +193,18 @@ bool8 IsRoamerAt(u8 mapGroup, u8 mapNum) void CreateRoamerMonInstance(void) { + u32 status; struct Pokemon *mon = &gEnemyParty[0]; ZeroEnemyPartyMons(); CreateMonWithIVsPersonality(mon, ROAMER->species, ROAMER->level, ROAMER->ivs, ROAMER->personality); +// The roamer's status field is u8, but SetMonData expects status to be u32, so will set the roamer's status +// using the status field and the following 3 bytes (cool, beauty, and cute). +#ifdef BUGFIX + status = ROAMER->status; + SetMonData(mon, MON_DATA_STATUS, &status); +#else SetMonData(mon, MON_DATA_STATUS, &ROAMER->status); +#endif SetMonData(mon, MON_DATA_HP, &ROAMER->hp); SetMonData(mon, MON_DATA_COOL, &ROAMER->cool); SetMonData(mon, MON_DATA_BEAUTY, &ROAMER->beauty); diff --git a/src/rom_header.s b/src/rom_header.s index 5ed45124de..9ab7240fba 100644 --- a/src/rom_header.s +++ b/src/rom_header.s @@ -2,7 +2,7 @@ @ It's populated by gbafix using data provided in the Makefile. .global Start -Start: @ 8000000 +Start: b Init .global RomHeaderNintendoLogo @@ -41,23 +41,20 @@ RomHeaderChecksum: RomHeaderReserved2: .space 2 -@ 80000C0 .word 0 .global GPIOPortData -GPIOPortData: @ 80000C4 +GPIOPortData: .2byte 0 .global GPIOPortDirection -GPIOPortDirection: @ 80000C6 +GPIOPortDirection: .2byte 0 .global GPIOPortReadEnable -GPIOPortReadEnable: @ 80000C8 +GPIOPortReadEnable: .2byte 0 -@ 80000CA .2byte 0 -@ 80000CC .space 0x34 diff --git a/src/rotating_gate.c b/src/rotating_gate.c index ea2eec1261..f839d22c30 100644 --- a/src/rotating_gate.c +++ b/src/rotating_gate.c @@ -5,7 +5,6 @@ #include "fieldmap.h" #include "sound.h" #include "sprite.h" -#include "constants/maps.h" #include "constants/songs.h" #define ROTATING_GATE_TILE_TAG 0x1300 @@ -220,14 +219,14 @@ static const struct RotatingGatePuzzle sRotatingGate_TrickHousePuzzleConfig[] = {10, 19, GATE_SHAPE_L3, GATE_ORIENTATION_180}, }; -static const u8 sRotatingGateTiles_1[] = INCBIN_U8("graphics/misc/rotating_gate_1.4bpp"); -static const u8 sRotatingGateTiles_2[] = INCBIN_U8("graphics/misc/rotating_gate_2.4bpp"); -static const u8 sRotatingGateTiles_3[] = INCBIN_U8("graphics/misc/rotating_gate_3.4bpp"); -static const u8 sRotatingGateTiles_4[] = INCBIN_U8("graphics/misc/rotating_gate_4.4bpp"); -static const u8 sRotatingGateTiles_5[] = INCBIN_U8("graphics/misc/rotating_gate_5.4bpp"); -static const u8 sRotatingGateTiles_6[] = INCBIN_U8("graphics/misc/rotating_gate_6.4bpp"); -static const u8 sRotatingGateTiles_7[] = INCBIN_U8("graphics/misc/rotating_gate_7.4bpp"); -static const u8 sRotatingGateTiles_8[] = INCBIN_U8("graphics/misc/rotating_gate_8.4bpp"); +static const u8 sRotatingGateTiles_1[] = INCBIN_U8("graphics/rotating_gates/l1.4bpp"); +static const u8 sRotatingGateTiles_2[] = INCBIN_U8("graphics/rotating_gates/l2.4bpp"); +static const u8 sRotatingGateTiles_3[] = INCBIN_U8("graphics/rotating_gates/l3.4bpp"); +static const u8 sRotatingGateTiles_4[] = INCBIN_U8("graphics/rotating_gates/l4.4bpp"); +static const u8 sRotatingGateTiles_5[] = INCBIN_U8("graphics/rotating_gates/t1.4bpp"); +static const u8 sRotatingGateTiles_6[] = INCBIN_U8("graphics/rotating_gates/t2.4bpp"); +static const u8 sRotatingGateTiles_7[] = INCBIN_U8("graphics/rotating_gates/t3.4bpp"); +static const u8 sRotatingGateTiles_8[] = INCBIN_U8("graphics/rotating_gates/t4.4bpp"); static const struct OamData sOamData_RotatingGateLarge = { @@ -685,13 +684,11 @@ static void RotatingGate_LoadPuzzleConfig(void) { case PUZZLE_FORTREE_CITY_GYM: gRotatingGate_PuzzleConfig = sRotatingGate_FortreePuzzleConfig; - gRotatingGate_PuzzleCount = - sizeof(sRotatingGate_FortreePuzzleConfig) / sizeof(struct RotatingGatePuzzle); + gRotatingGate_PuzzleCount = ARRAY_COUNT(sRotatingGate_FortreePuzzleConfig); break; case PUZZLE_ROUTE110_TRICK_HOUSE_PUZZLE6: gRotatingGate_PuzzleConfig = sRotatingGate_TrickHousePuzzleConfig; - gRotatingGate_PuzzleCount = - sizeof(sRotatingGate_TrickHousePuzzleConfig) / sizeof(struct RotatingGatePuzzle); + gRotatingGate_PuzzleCount = ARRAY_COUNT(sRotatingGate_TrickHousePuzzleConfig); break; case PUZZLE_NONE: default: @@ -699,9 +696,7 @@ static void RotatingGate_LoadPuzzleConfig(void) } for (i = 0; i < ROTATING_GATE_PUZZLE_MAX - 1; i++) - { gRotatingGate_GateSpriteIds[i] = MAX_SPRITES; - } } static void RotatingGate_CreateGatesWithinViewport(s16 deltaX, s16 deltaY) @@ -774,7 +769,7 @@ static void SpriteCallback_RotatingGate(struct Sprite *sprite) { affineAnimation = orientation + 4; - if (GetPlayerSpeed() != 1) + if (GetPlayerSpeed() != PLAYER_SPEED_NORMAL) affineAnimation += 8; PlaySE(SE_ROTATING_GATE); @@ -784,7 +779,7 @@ static void SpriteCallback_RotatingGate(struct Sprite *sprite) { affineAnimation = orientation + 8; - if (GetPlayerSpeed() != 1) + if (GetPlayerSpeed() != PLAYER_SPEED_NORMAL) affineAnimation += 8; PlaySE(SE_ROTATING_GATE); diff --git a/src/save.c b/src/save.c index b539564383..dafc20868e 100644 --- a/src/save.c +++ b/src/save.c @@ -428,7 +428,7 @@ static u8 CopySectorSecurityByte(u16 sectorId, const struct SaveSectorLocation * } else { - // Succeded + // Succeeded SetDamagedSectorBits(DISABLE, sector); return SAVE_STATUS_OK; } @@ -734,7 +734,7 @@ u8 HandleSavingData(u8 saveType) WriteSaveSectorOrSlot(FULL_SAVE_SLOT, gRamSaveSectorLocations); break; case SAVE_LINK: - case SAVE_LINK2: + case SAVE_EREADER: // Dummied, now duplicate of SAVE_LINK // Used by link / Battle Frontier // Write only SaveBlocks 1 and 2 (skips the PC) CopyPartyAndObjectsToSave(); diff --git a/src/save_location.c b/src/save_location.c index b201ca1c0d..74d2f2c44d 100644 --- a/src/save_location.c +++ b/src/save_location.c @@ -1,6 +1,5 @@ #include "global.h" #include "save_location.h" -#include "constants/maps.h" #define LIST_END 0xFFFF diff --git a/src/scrcmd.c b/src/scrcmd.c index 6007fb4931..418bf58770 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -49,7 +49,6 @@ #include "tv.h" #include "window.h" #include "constants/event_objects.h" -#include "constants/maps.h" typedef u16 (*SpecialFunc)(void); typedef void (*NativeFunc)(void); @@ -58,11 +57,11 @@ EWRAM_DATA const u8 *gRamScriptRetAddr = NULL; static EWRAM_DATA u32 sAddressOffset = 0; // For relative addressing in vgoto etc., used by saved scripts (e.g. Mystery Event) static EWRAM_DATA u16 sPauseCounter = 0; static EWRAM_DATA u16 sMovingNpcId = 0; -static EWRAM_DATA u16 sMovingNpcMapBank = 0; -static EWRAM_DATA u16 sMovingNpcMapId = 0; +static EWRAM_DATA u16 sMovingNpcMapGroup = 0; +static EWRAM_DATA u16 sMovingNpcMapNum = 0; static EWRAM_DATA u16 sFieldEffectScriptId = 0; -static u8 gBrailleWindowId; +static u8 sBrailleWindowId; extern const SpecialFunc gSpecials[]; extern const u8 *gStdScripts[]; @@ -287,7 +286,7 @@ bool8 ScrCmd_returnram(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_killscript(struct ScriptContext *ctx) +bool8 ScrCmd_endram(struct ScriptContext *ctx) { ClearRamScript(); StopScript(ctx); @@ -296,9 +295,9 @@ bool8 ScrCmd_killscript(struct ScriptContext *ctx) bool8 ScrCmd_setmysteryeventstatus(struct ScriptContext *ctx) { - u8 value = ScriptReadByte(ctx); + u8 status = ScriptReadByte(ctx); - SetMysteryEventScriptStatus(value); + SetMysteryEventScriptStatus(status); return FALSE; } @@ -310,7 +309,7 @@ bool8 ScrCmd_loadword(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_loadbytefromaddr(struct ScriptContext *ctx) +bool8 ScrCmd_loadbytefromptr(struct ScriptContext *ctx) { u8 index = ScriptReadByte(ctx); @@ -318,7 +317,7 @@ bool8 ScrCmd_loadbytefromaddr(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_writebytetoaddr(struct ScriptContext *ctx) +bool8 ScrCmd_setptr(struct ScriptContext *ctx) { u8 value = ScriptReadByte(ctx); @@ -406,7 +405,7 @@ bool8 ScrCmd_compare_local_to_value(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_compare_local_to_addr(struct ScriptContext *ctx) +bool8 ScrCmd_compare_local_to_ptr(struct ScriptContext *ctx) { const u8 value1 = ctx->data[ScriptReadByte(ctx)]; const u8 value2 = *(const u8 *)ScriptReadWord(ctx); @@ -415,7 +414,7 @@ bool8 ScrCmd_compare_local_to_addr(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_compare_addr_to_local(struct ScriptContext *ctx) +bool8 ScrCmd_compare_ptr_to_local(struct ScriptContext *ctx) { const u8 value1 = *(const u8 *)ScriptReadWord(ctx); const u8 value2 = ctx->data[ScriptReadByte(ctx)]; @@ -424,7 +423,7 @@ bool8 ScrCmd_compare_addr_to_local(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_compare_addr_to_value(struct ScriptContext *ctx) +bool8 ScrCmd_compare_ptr_to_value(struct ScriptContext *ctx) { const u8 value1 = *(const u8 *)ScriptReadWord(ctx); const u8 value2 = ScriptReadByte(ctx); @@ -433,7 +432,7 @@ bool8 ScrCmd_compare_addr_to_value(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_compare_addr_to_addr(struct ScriptContext *ctx) +bool8 ScrCmd_compare_ptr_to_ptr(struct ScriptContext *ctx) { const u8 value1 = *(const u8 *)ScriptReadWord(ctx); const u8 value2 = *(const u8 *)ScriptReadWord(ctx); @@ -610,11 +609,9 @@ bool8 ScrCmd_animateflash(struct ScriptContext *ctx) return TRUE; } -bool8 ScrCmd_setflashradius(struct ScriptContext *ctx) +bool8 ScrCmd_setflashlevel(struct ScriptContext *ctx) { - u16 flashLevel = VarGet(ScriptReadHalfword(ctx)); - - Overworld_SetFlashLevel(flashLevel); + SetFlashLevel(VarGet(ScriptReadHalfword(ctx))); return FALSE; } @@ -649,17 +646,17 @@ bool8 ScrCmd_fadescreenswapbuffers(struct ScriptContext *ctx) switch (mode) { - case FADE_TO_BLACK: - case FADE_TO_WHITE: - default: - CpuCopy32(gPlttBufferUnfaded, gPaletteDecompressionBuffer, PLTT_DECOMP_BUFFER_SIZE); - FadeScreen(mode, 0); - break; - case FADE_FROM_BLACK: - case FADE_FROM_WHITE: - CpuCopy32(gPaletteDecompressionBuffer, gPlttBufferUnfaded, PLTT_DECOMP_BUFFER_SIZE); - FadeScreen(mode, 0); - break; + case FADE_TO_BLACK: + case FADE_TO_WHITE: + default: + CpuCopy32(gPlttBufferUnfaded, gPaletteDecompressionBuffer, PLTT_DECOMP_BUFFER_SIZE); + FadeScreen(mode, 0); + break; + case FADE_FROM_BLACK: + case FADE_FROM_WHITE: + CpuCopy32(gPaletteDecompressionBuffer, gPlttBufferUnfaded, PLTT_DECOMP_BUFFER_SIZE); + FadeScreen(mode, 0); + break; } SetupNativeScript(ctx, IsPaletteNotActive); @@ -668,9 +665,7 @@ bool8 ScrCmd_fadescreenswapbuffers(struct ScriptContext *ctx) static bool8 RunPauseTimer(void) { - sPauseCounter--; - - if (sPauseCounter == 0) + if (--sPauseCounter == 0) return TRUE; else return FALSE; @@ -711,13 +706,13 @@ bool8 ScrCmd_setweather(struct ScriptContext *ctx) { u16 weather = VarGet(ScriptReadHalfword(ctx)); - SetSav1Weather(weather); + SetSavedWeather(weather); return FALSE; } bool8 ScrCmd_resetweather(struct ScriptContext *ctx) { - SetSav1WeatherFromCurrMapHeader(); + SetSavedWeatherFromCurrMapHeader(); return FALSE; } @@ -794,7 +789,7 @@ bool8 ScrCmd_warphole(struct ScriptContext *ctx) if (mapGroup == MAP_GROUP(UNDEFINED) && mapNum == MAP_NUM(UNDEFINED)) SetWarpDestinationToFixedHoleWarp(x - MAP_OFFSET, y - MAP_OFFSET); else - SetWarpDestination(mapGroup, mapNum, -1, x - MAP_OFFSET, y - MAP_OFFSET); + SetWarpDestination(mapGroup, mapNum, WARP_ID_NONE, x - MAP_OFFSET, y - MAP_OFFSET); DoFallWarp(); ResetInitialPlayerAvatarState(); return TRUE; @@ -945,9 +940,9 @@ bool8 ScrCmd_waitfanfare(struct ScriptContext *ctx) bool8 ScrCmd_playbgm(struct ScriptContext *ctx) { u16 songId = ScriptReadHalfword(ctx); - bool8 val = ScriptReadByte(ctx); + bool8 save = ScriptReadByte(ctx); - if (val == TRUE) + if (save == TRUE) Overworld_SetSavedMusic(songId); PlayNewMapMusic(songId); return FALSE; @@ -1004,7 +999,7 @@ bool8 ScrCmd_applymovement(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_applymovement_at(struct ScriptContext *ctx) +bool8 ScrCmd_applymovementat(struct ScriptContext *ctx) { u16 localId = VarGet(ScriptReadHalfword(ctx)); const void *movementScript = (const void *)ScriptReadWord(ctx); @@ -1018,7 +1013,7 @@ bool8 ScrCmd_applymovement_at(struct ScriptContext *ctx) static bool8 WaitForMovementFinish(void) { - return ScriptMovement_IsObjectMovementFinished(sMovingNpcId, sMovingNpcMapId, sMovingNpcMapBank); + return ScriptMovement_IsObjectMovementFinished(sMovingNpcId, sMovingNpcMapNum, sMovingNpcMapGroup); } bool8 ScrCmd_waitmovement(struct ScriptContext *ctx) @@ -1027,24 +1022,24 @@ bool8 ScrCmd_waitmovement(struct ScriptContext *ctx) if (localId != 0) sMovingNpcId = localId; - sMovingNpcMapBank = gSaveBlock1Ptr->location.mapGroup; - sMovingNpcMapId = gSaveBlock1Ptr->location.mapNum; + sMovingNpcMapGroup = gSaveBlock1Ptr->location.mapGroup; + sMovingNpcMapNum = gSaveBlock1Ptr->location.mapNum; SetupNativeScript(ctx, WaitForMovementFinish); return TRUE; } -bool8 ScrCmd_waitmovement_at(struct ScriptContext *ctx) +bool8 ScrCmd_waitmovementat(struct ScriptContext *ctx) { u16 localId = VarGet(ScriptReadHalfword(ctx)); - u8 mapBank; - u8 mapId; + u8 mapGroup; + u8 mapNum; if (localId != 0) sMovingNpcId = localId; - mapBank = ScriptReadByte(ctx); - mapId = ScriptReadByte(ctx); - sMovingNpcMapBank = mapBank; - sMovingNpcMapId = mapId; + mapGroup = ScriptReadByte(ctx); + mapNum = ScriptReadByte(ctx); + sMovingNpcMapGroup = mapGroup; + sMovingNpcMapNum = mapNum; SetupNativeScript(ctx, WaitForMovementFinish); return TRUE; } @@ -1057,7 +1052,7 @@ bool8 ScrCmd_removeobject(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_removeobject_at(struct ScriptContext *ctx) +bool8 ScrCmd_removeobjectat(struct ScriptContext *ctx) { u16 objectId = VarGet(ScriptReadHalfword(ctx)); u8 mapGroup = ScriptReadByte(ctx); @@ -1075,7 +1070,7 @@ bool8 ScrCmd_addobject(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_addobject_at(struct ScriptContext *ctx) +bool8 ScrCmd_addobjectat(struct ScriptContext *ctx) { u16 objectId = VarGet(ScriptReadHalfword(ctx)); u8 mapGroup = ScriptReadByte(ctx); @@ -1101,7 +1096,7 @@ bool8 ScrCmd_setobjectxyperm(struct ScriptContext *ctx) u16 x = VarGet(ScriptReadHalfword(ctx)); u16 y = VarGet(ScriptReadHalfword(ctx)); - Overworld_SetObjEventTemplateCoords(localId, x, y); + SetObjEventTemplateCoords(localId, x, y); return FALSE; } @@ -1113,7 +1108,7 @@ bool8 ScrCmd_copyobjectxytoperm(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_showobject_at(struct ScriptContext *ctx) +bool8 ScrCmd_showobjectat(struct ScriptContext *ctx) { u16 localId = VarGet(ScriptReadHalfword(ctx)); u8 mapGroup = ScriptReadByte(ctx); @@ -1123,7 +1118,7 @@ bool8 ScrCmd_showobject_at(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_hideobject_at(struct ScriptContext *ctx) +bool8 ScrCmd_hideobjectat(struct ScriptContext *ctx) { u16 localId = VarGet(ScriptReadHalfword(ctx)); u8 mapGroup = ScriptReadByte(ctx); @@ -1133,24 +1128,24 @@ bool8 ScrCmd_hideobject_at(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_setobjectpriority(struct ScriptContext *ctx) +bool8 ScrCmd_setobjectsubpriority(struct ScriptContext *ctx) { u16 localId = VarGet(ScriptReadHalfword(ctx)); u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); u8 priority = ScriptReadByte(ctx); - SetObjectPriority(localId, mapNum, mapGroup, priority + 83); + SetObjectSubpriority(localId, mapNum, mapGroup, priority + 83); return FALSE; } -bool8 ScrCmd_resetobjectpriority(struct ScriptContext *ctx) +bool8 ScrCmd_resetobjectsubpriority(struct ScriptContext *ctx) { u16 localId = VarGet(ScriptReadHalfword(ctx)); u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); - ResetObjectPriority(localId, mapNum, mapGroup); + ResetObjectSubpriority(localId, mapNum, mapGroup); return FALSE; } @@ -1178,29 +1173,29 @@ bool8 ScrCmd_setobjectmovementtype(struct ScriptContext *ctx) u16 localId = VarGet(ScriptReadHalfword(ctx)); u8 movementType = ScriptReadByte(ctx); - Overworld_SetObjEventTemplateMovementType(localId, movementType); + SetObjEventTemplateMovementType(localId, movementType); return FALSE; } bool8 ScrCmd_createvobject(struct ScriptContext *ctx) { u8 graphicsId = ScriptReadByte(ctx); - u8 objectEventId = ScriptReadByte(ctx); + u8 virtualObjId = ScriptReadByte(ctx); u16 x = VarGet(ScriptReadHalfword(ctx)); u32 y = VarGet(ScriptReadHalfword(ctx)); u8 elevation = ScriptReadByte(ctx); u8 direction = ScriptReadByte(ctx); - CreateObjectSprite(graphicsId, objectEventId, x, y, elevation, direction); + CreateVirtualObject(graphicsId, virtualObjId, x, y, elevation, direction); return FALSE; } bool8 ScrCmd_turnvobject(struct ScriptContext *ctx) { - u8 objectEventId = ScriptReadByte(ctx); + u8 virtualObjId = ScriptReadByte(ctx); u8 direction = ScriptReadByte(ctx); - TurnObjectEventSprite(objectEventId, direction); + TurnVirtualObject(virtualObjId, direction); return FALSE; } @@ -1311,7 +1306,7 @@ bool8 ScrCmd_messageinstant(struct ScriptContext *ctx) msg = (const u8 *)ctx->data[0]; LoadMessageBoxAndBorderGfx(); DrawDialogueFrame(0, 1); - AddTextPrinterParameterized(0, FONT_NORMAL, msg, 0, 1, 0, 0); + AddTextPrinterParameterized(0, FONT_NORMAL, msg, 0, 1, 0, NULL); return FALSE; } @@ -1463,7 +1458,9 @@ bool8 ScrCmd_showmonpic(struct ScriptContext *ctx) bool8 ScrCmd_hidemonpic(struct ScriptContext *ctx) { - bool8 (*func)(void) = ScriptMenu_GetPicboxWaitFunc(); + // The hide function returns a pointer to a function + // that returns true once the pic is hidden + bool8 (*func)(void) = ScriptMenu_HidePokemonPic(); if (func == NULL) return FALSE; @@ -1528,13 +1525,13 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) yText = (yText - yWindow - 1) * 8; winTemplate = CreateWindowTemplate(0, xWindow, yWindow + 1, width, height, 0xF, 0x1); - gBrailleWindowId = AddWindow(&winTemplate); - LoadUserWindowBorderGfx(gBrailleWindowId, 0x214, 0xE0); - DrawStdWindowFrame(gBrailleWindowId, 0); - PutWindowTilemap(gBrailleWindowId); - FillWindowPixelBuffer(gBrailleWindowId, PIXEL_FILL(1)); - AddTextPrinterParameterized(gBrailleWindowId, FONT_BRAILLE, gStringVar4, xText, yText, TEXT_SKIP_DRAW, NULL); - CopyWindowToVram(gBrailleWindowId, COPYWIN_FULL); + sBrailleWindowId = AddWindow(&winTemplate); + LoadUserWindowBorderGfx(sBrailleWindowId, 0x214, 0xE0); + DrawStdWindowFrame(sBrailleWindowId, 0); + PutWindowTilemap(sBrailleWindowId); + FillWindowPixelBuffer(sBrailleWindowId, PIXEL_FILL(1)); + AddTextPrinterParameterized(sBrailleWindowId, FONT_BRAILLE, gStringVar4, xText, yText, TEXT_SKIP_DRAW, NULL); + CopyWindowToVram(sBrailleWindowId, COPYWIN_FULL); return FALSE; } @@ -1578,7 +1575,7 @@ bool8 ScrCmd_bufferpartymonnick(struct ScriptContext *ctx) u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, sScriptStringVars[stringVarIndex]); - StringGetEnd10(sScriptStringVars[stringVarIndex]); + StringGet_Nickname(sScriptStringVars[stringVarIndex]); return FALSE; } @@ -1638,12 +1635,12 @@ bool8 ScrCmd_bufferstdstring(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_buffercontesttype(struct ScriptContext *ctx) +bool8 ScrCmd_buffercontestname(struct ScriptContext *ctx) { u8 stringVarIndex = ScriptReadByte(ctx); - u16 index = VarGet(ScriptReadHalfword(ctx)); + u16 category = VarGet(ScriptReadHalfword(ctx)); - BufferContestName(sScriptStringVars[stringVarIndex], index); + BufferContestName(sScriptStringVars[stringVarIndex], category); return FALSE; } @@ -1656,7 +1653,7 @@ bool8 ScrCmd_bufferstring(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_vloadword(struct ScriptContext *ctx) +bool8 ScrCmd_vbuffermessage(struct ScriptContext *ctx) { const u8 *ptr = (u8 *)(ScriptReadWord(ctx) - sAddressOffset); @@ -1919,9 +1916,9 @@ bool8 ScrCmd_pokemartdecoration2(struct ScriptContext *ctx) bool8 ScrCmd_playslotmachine(struct ScriptContext *ctx) { - u8 slotMachineIndex = VarGet(ScriptReadHalfword(ctx)); + u8 machineId = VarGet(ScriptReadHalfword(ctx)); - PlaySlotMachine(slotMachineIndex, CB2_ReturnToFieldContinueScriptPlayMapMusic); + PlaySlotMachine(machineId, CB2_ReturnToFieldContinueScriptPlayMapMusic); ScriptContext1_Stop(); return TRUE; } @@ -1933,17 +1930,17 @@ bool8 ScrCmd_setberrytree(struct ScriptContext *ctx) u8 growthStage = ScriptReadByte(ctx); if (berry == 0) - PlantBerryTree(treeId, 0, growthStage, FALSE); + PlantBerryTree(treeId, berry, growthStage, FALSE); else PlantBerryTree(treeId, berry, growthStage, FALSE); return FALSE; } -bool8 ScrCmd_getpricereduction(struct ScriptContext *ctx) +bool8 ScrCmd_getpokenewsactive(struct ScriptContext *ctx) { u16 newsKind = VarGet(ScriptReadHalfword(ctx)); - gSpecialVar_Result = GetPriceReduction(newsKind); + gSpecialVar_Result = IsPokeNewsActive(newsKind); return FALSE; } @@ -1985,7 +1982,7 @@ bool8 ScrCmd_dofieldeffect(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_setfieldeffectarg(struct ScriptContext *ctx) +bool8 ScrCmd_setfieldeffectargument(struct ScriptContext *ctx) { u8 argNum = ScriptReadByte(ctx); @@ -2049,7 +2046,7 @@ bool8 ScrCmd_setmetatile(struct ScriptContext *ctx) if (!isImpassable) MapGridSetMetatileIdAt(x, y, tileId); else - MapGridSetMetatileIdAt(x, y, tileId | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x, y, tileId | MAPGRID_COLLISION_MASK); return FALSE; } @@ -2230,9 +2227,7 @@ bool8 ScrCmd_checkmoneventlegal(struct ScriptContext *ctx) return FALSE; } -// TODO: Should be renamed. Name implies general usage, but its specifically for Wonder Card -// See GetSavedRamScriptIfValid, which is NULL if ValidateSavedWonderCard returns FALSE -bool8 ScrCmd_gotoram(struct ScriptContext *ctx) +bool8 ScrCmd_trywondercardscript(struct ScriptContext *ctx) { const u8* script = GetSavedRamScriptIfValid(); @@ -2244,7 +2239,7 @@ bool8 ScrCmd_gotoram(struct ScriptContext *ctx) return FALSE; } -// Unused +// This warp is only used by the Union Room. // For the warp used by the Aqua Hideout, see DoTeleportTileWarp bool8 ScrCmd_warpspinenter(struct ScriptContext *ctx) { @@ -2273,8 +2268,8 @@ bool8 ScrCmd_setmonmetlocation(struct ScriptContext *ctx) static void CloseBrailleWindow(void) { - ClearStdWindowAndFrame(gBrailleWindowId, 1); - RemoveWindow(gBrailleWindowId); + ClearStdWindowAndFrame(sBrailleWindowId, 1); + RemoveWindow(sBrailleWindowId); } bool8 ScrCmd_buffertrainerclassname(struct ScriptContext *ctx) @@ -2300,7 +2295,7 @@ void SetMovingNpcId(u16 npcId) sMovingNpcId = npcId; } -bool8 ScrCmd_warpsootopolislegend(struct ScriptContext *ctx) +bool8 ScrCmd_warpwhitefade(struct ScriptContext *ctx) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); @@ -2309,7 +2304,7 @@ bool8 ScrCmd_warpsootopolislegend(struct ScriptContext *ctx) u16 y = VarGet(ScriptReadHalfword(ctx)); SetWarpDestination(mapGroup, mapNum, warpId, x, y); - DoSootopolisLegendWarp(); + DoWhiteFadeWarp(); ResetInitialPlayerAvatarState(); return TRUE; } diff --git a/src/script.c b/src/script.c index b10e0db49d..4728e739cd 100644 --- a/src/script.c +++ b/src/script.c @@ -3,7 +3,7 @@ #include "event_data.h" #include "mystery_gift.h" #include "util.h" -#include "constants/maps.h" +#include "constants/event_objects.h" #include "constants/map_scripts.h" #define RAM_SCRIPT_MAGIC 51 @@ -399,6 +399,8 @@ const u8 *GetRamScript(u8 objectId, const u8 *script) } } +#define NO_OBJECT OBJ_EVENT_ID_PLAYER + bool32 ValidateSavedRamScript(void) { struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data; @@ -408,7 +410,7 @@ bool32 ValidateSavedRamScript(void) return FALSE; if (scriptData->mapNum != MAP_NUM(UNDEFINED)) return FALSE; - if (scriptData->objectId != 0xFF) + if (scriptData->objectId != NO_OBJECT) return FALSE; if (CalculateRamScriptChecksum() != gSaveBlock1Ptr->ramScript.checksum) return FALSE; @@ -426,7 +428,7 @@ u8 *GetSavedRamScriptIfValid(void) return NULL; if (scriptData->mapNum != MAP_NUM(UNDEFINED)) return NULL; - if (scriptData->objectId != 0xFF) + if (scriptData->objectId != NO_OBJECT) return NULL; if (CalculateRamScriptChecksum() != gSaveBlock1Ptr->ramScript.checksum) { @@ -443,5 +445,5 @@ void InitRamScript_NoObjectEvent(u8 *script, u16 scriptSize) { if (scriptSize > sizeof(gSaveBlock1Ptr->ramScript.data.script)) scriptSize = sizeof(gSaveBlock1Ptr->ramScript.data.script); - InitRamScript(script, scriptSize, MAP_GROUP(UNDEFINED), MAP_NUM(UNDEFINED), 0xFF); + InitRamScript(script, scriptSize, MAP_GROUP(UNDEFINED), MAP_NUM(UNDEFINED), NO_OBJECT); } diff --git a/src/script_menu.c b/src/script_menu.c index ae0fe91e67..1680758f21 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -563,6 +563,7 @@ static void Task_PokemonPicWindow(u8 taskId) task->tState++; break; case 1: + // Wait until state is advanced by ScriptMenu_HidePokemonPic break; case 2: FreeResourcesAndDestroySprite(&gSprites[task->tMonSpriteId], task->tMonSpriteId); @@ -600,7 +601,7 @@ bool8 ScriptMenu_ShowPokemonPic(u16 species, u8 x, u8 y) } } -bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void) +bool8 (*ScriptMenu_HidePokemonPic(void))(void) { u8 taskId = FindTaskIdByFunc(Task_PokemonPicWindow); diff --git a/src/script_pokemon_util.c b/src/script_pokemon_util.c index 07e86656e0..ae7aa92dc8 100755 --- a/src/script_pokemon_util.c +++ b/src/script_pokemon_util.c @@ -150,7 +150,12 @@ void CreateScriptedWildMon(u16 species, u8 level, u16 item) void ScriptSetMonMoveSlot(u8 monIndex, u16 move, u8 slot) { +// Allows monIndex to go out of bounds of gPlayerParty. Doesn't occur in vanilla +#ifdef BUGFIX + if (monIndex >= PARTY_SIZE) +#else if (monIndex > PARTY_SIZE) +#endif monIndex = gPlayerPartyCount - 1; SetMonMoveSlot(&gPlayerParty[monIndex], move, slot); diff --git a/src/secret_base.c b/src/secret_base.c index 72560ee23b..fa424889e0 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -39,7 +39,6 @@ #include "constants/event_objects.h" #include "constants/field_specials.h" #include "constants/items.h" -#include "constants/maps.h" #include "constants/map_types.h" #include "constants/metatile_behaviors.h" #include "constants/metatile_labels.h" @@ -306,7 +305,7 @@ static void FindMetatileIdMapCoords(s16 *x, s16 *y, u16 metatileId) { for (i = 0; i < mapLayout->width; i++) { - if ((mapLayout->map[j * mapLayout->width + i] & METATILE_ID_MASK) == metatileId) + if ((mapLayout->map[j * mapLayout->width + i] & MAPGRID_METATILE_ID_MASK) == metatileId) { *x = i; *y = j; @@ -331,7 +330,7 @@ void ToggleSecretBaseEntranceMetatile(void) { if (sSecretBaseEntranceMetatiles[i].closedMetatileId == metatileId) { - MapGridSetMetatileIdAt(x, y, sSecretBaseEntranceMetatiles[i].openMetatileId | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x, y, sSecretBaseEntranceMetatiles[i].openMetatileId | MAPGRID_COLLISION_MASK); CurrentMapDrawMetatileAt(x, y); return; } @@ -342,7 +341,7 @@ void ToggleSecretBaseEntranceMetatile(void) { if (sSecretBaseEntranceMetatiles[i].openMetatileId == metatileId) { - MapGridSetMetatileIdAt(x, y, sSecretBaseEntranceMetatiles[i].closedMetatileId | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x, y, sSecretBaseEntranceMetatiles[i].closedMetatileId | MAPGRID_COLLISION_MASK); CurrentMapDrawMetatileAt(x, y); return; } @@ -397,7 +396,7 @@ void SetOccupiedSecretBaseEntranceMetatiles(struct MapEvents const *events) { if (sSecretBaseEntranceMetatiles[i].closedMetatileId == tile_id) { - MapGridSetMetatileIdAt(x, y, sSecretBaseEntranceMetatiles[i].openMetatileId | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x, y, sSecretBaseEntranceMetatiles[i].openMetatileId | MAPGRID_COLLISION_MASK); break; } } @@ -446,7 +445,7 @@ void EnterSecretBase(void) { CreateTask(Task_EnterSecretBase, 0); FadeScreen(FADE_TO_BLACK, 0); - SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); + SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, WARP_ID_NONE); } bool8 SecretBaseMapPopupEnabled(void) @@ -476,7 +475,7 @@ static void EnterNewlyCreatedSecretBase_StartFadeIn(void) FindMetatileIdMapCoords(&x, &y, METATILE_SecretBase_PC); x += MAP_OFFSET; y += MAP_OFFSET; - MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_PC | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_PC | MAPGRID_COLLISION_MASK); CurrentMapDrawMetatileAt(x, y); FadeInFromBlack(); CreateTask(EnterNewlyCreatedSecretBase_WaitFadeIn, 0); @@ -490,7 +489,7 @@ static void Task_EnterNewlyCreatedSecretBase(u8 taskId) SetWarpDestination( gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, - -1, + WARP_ID_NONE, GET_BASE_COMPUTER_X(secretBaseGroup), GET_BASE_COMPUTER_Y(secretBaseGroup)); WarpIntoMap(); @@ -537,13 +536,13 @@ void InitSecretBaseAppearance(bool8 hidePC) { // Another player's secret base. Change PC type to the "Register" PC. FindMetatileIdMapCoords(&x, &y, METATILE_SecretBase_PC); - MapGridSetMetatileIdAt(x + MAP_OFFSET, y + MAP_OFFSET, METATILE_SecretBase_RegisterPC | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x + MAP_OFFSET, y + MAP_OFFSET, METATILE_SecretBase_RegisterPC | MAPGRID_COLLISION_MASK); } else if (hidePC == TRUE && VarGet(VAR_SECRET_BASE_INITIALIZED) == 1) { // Change PC to regular ground tile. FindMetatileIdMapCoords(&x, &y, METATILE_SecretBase_PC); - MapGridSetMetatileIdAt(x + MAP_OFFSET, y + MAP_OFFSET, METATILE_SecretBase_Ground | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x + MAP_OFFSET, y + MAP_OFFSET, METATILE_SecretBase_Ground | MAPGRID_COLLISION_MASK); } } } @@ -700,7 +699,7 @@ static void Task_WarpOutOfSecretBase(u8 taskId) gTasks[taskId].data[0] = 2; break; case 2: - SetWarpDestinationToDynamicWarp(0x7e); + SetWarpDestinationToDynamicWarp(WARP_ID_SECRET_BASE); WarpIntoMap(); gFieldCallback = FieldCB_DefaultWarpExit; SetMainCallback2(CB2_LoadMap); @@ -839,7 +838,7 @@ static void ClosePlayerSecretBaseEntrance(void) { MapGridSetMetatileIdAt(events->bgEvents[i].x + MAP_OFFSET, events->bgEvents[i].y + MAP_OFFSET, - sSecretBaseEntranceMetatiles[j].closedMetatileId | METATILE_COLLISION_MASK); + sSecretBaseEntranceMetatiles[j].closedMetatileId | MAPGRID_COLLISION_MASK); break; } } @@ -1028,7 +1027,7 @@ static void ShowRegistryMenuActions(u8 taskId) tActionWindowId = AddWindow(&template); SetStandardWindowBorderStyle(tActionWindowId, 0); PrintMenuTable(tActionWindowId, ARRAY_COUNT(sRegistryMenuActions), sRegistryMenuActions); - InitMenuInUpperLeftCornerNormal(tActionWindowId, 2, 0); + InitMenuInUpperLeftCornerNormal(tActionWindowId, ARRAY_COUNT(sRegistryMenuActions), 0); ScheduleBgCopyTilemapToVram(0); gTasks[taskId].func = HandleRegistryMenuActionsInput; } @@ -1215,109 +1214,108 @@ void SecretBasePerStepCallback(u8 taskId) tState = 1; break; case 1: + // End if player hasn't moved PlayerGetDestCoords(&x, &y); - if (x != tPlayerX || y != tPlayerY) - { - tPlayerX = x; - tPlayerY = y; - VarSet(VAR_SECRET_BASE_STEP_COUNTER, VarGet(VAR_SECRET_BASE_STEP_COUNTER) + 1); - behavior = MapGridGetMetatileBehaviorAt(x, y); - tileId = MapGridGetMetatileIdAt(x, y); - if (tileId == METATILE_SecretBase_SolidBoard_Top || tileId == METATILE_SecretBase_SolidBoard_Bottom) - { - if (sInFriendSecretBase == TRUE) - { - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_SOLID_BOARD); - } - } - else if (tileId == METATILE_SecretBase_SmallChair - || tileId == METATILE_SecretBase_PokemonChair - || tileId == METATILE_SecretBase_HeavyChair - || tileId == METATILE_SecretBase_PrettyChair - || tileId == METATILE_SecretBase_ComfortChair - || tileId == METATILE_SecretBase_RaggedChair - || tileId == METATILE_SecretBase_BrickChair - || tileId == METATILE_SecretBase_CampChair - || tileId == METATILE_SecretBase_HardChair) - { - if (sInFriendSecretBase == TRUE) - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_CHAIR); - } - else if (tileId == METATILE_SecretBase_RedTent_DoorTop - || tileId == METATILE_SecretBase_RedTent_Door - || tileId == METATILE_SecretBase_BlueTent_DoorTop - || tileId == METATILE_SecretBase_BlueTent_Door) - { - if (sInFriendSecretBase == TRUE) - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_TENT); - } - else if ((behavior == MB_IMPASSABLE_NORTHEAST && tileId == METATILE_SecretBase_Stand_CornerRight) - || (behavior == MB_IMPASSABLE_NORTHWEST && MapGridGetMetatileIdAt(x, y) == METATILE_SecretBase_Stand_CornerLeft)) - { - if (sInFriendSecretBase == TRUE) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_STAND); - } - else if (behavior == MB_IMPASSABLE_WEST_AND_EAST && tileId == METATILE_SecretBase_Slide_StairLanding) - { - if (sInFriendSecretBase == TRUE) - { - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ SECRET_BASE_USED_SLIDE); - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_DECLINED_SLIDE); - } - } - else if (behavior == MB_SLIDE_SOUTH && tileId == METATILE_SecretBase_Slide_SlideTop) - { - if (sInFriendSecretBase == TRUE) - { - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_SLIDE); - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ SECRET_BASE_DECLINED_SLIDE); - } - } - else if (MetatileBehavior_IsSecretBaseGlitterMat(behavior) == TRUE) - { - if (sInFriendSecretBase == TRUE) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_GLITTER_MAT); - } - else if (MetatileBehavior_IsSecretBaseBalloon(behavior) == TRUE) - { - PopSecretBaseBalloon(MapGridGetMetatileIdAt(x, y), x, y); - if (sInFriendSecretBase == TRUE) - { - switch ((int)MapGridGetMetatileIdAt(x, y)) - { - case METATILE_SecretBase_RedBalloon: - case METATILE_SecretBase_BlueBalloon: - case METATILE_SecretBase_YellowBalloon: - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_BALLOON); - break; - case METATILE_SecretBase_MudBall: - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_MUD_BALL); - break; - } - } - } - else if (MetatileBehavior_IsSecretBaseBreakableDoor(behavior) == TRUE) - { - if (sInFriendSecretBase == TRUE) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_BREAKABLE_DOOR); + if (x == tPlayerX && y == tPlayerY) + return; - ShatterSecretBaseBreakableDoor(x, y); - } - else if (MetatileBehavior_IsSecretBaseSoundMat(behavior) == TRUE){ - if (sInFriendSecretBase == TRUE) - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_NOTE_MAT); - } - else if (MetatileBehavior_IsSecretBaseJumpMat(behavior) == TRUE) + tPlayerX = x; + tPlayerY = y; + VarSet(VAR_SECRET_BASE_STEP_COUNTER, VarGet(VAR_SECRET_BASE_STEP_COUNTER) + 1); + behavior = MapGridGetMetatileBehaviorAt(x, y); + tileId = MapGridGetMetatileIdAt(x, y); + if (tileId == METATILE_SecretBase_SolidBoard_Top || tileId == METATILE_SecretBase_SolidBoard_Bottom) + { + if (sInFriendSecretBase == TRUE) + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_SOLID_BOARD); + } + else if (tileId == METATILE_SecretBase_SmallChair + || tileId == METATILE_SecretBase_PokemonChair + || tileId == METATILE_SecretBase_HeavyChair + || tileId == METATILE_SecretBase_PrettyChair + || tileId == METATILE_SecretBase_ComfortChair + || tileId == METATILE_SecretBase_RaggedChair + || tileId == METATILE_SecretBase_BrickChair + || tileId == METATILE_SecretBase_CampChair + || tileId == METATILE_SecretBase_HardChair) + { + if (sInFriendSecretBase == TRUE) + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_CHAIR); + } + else if (tileId == METATILE_SecretBase_RedTent_DoorTop + || tileId == METATILE_SecretBase_RedTent_Door + || tileId == METATILE_SecretBase_BlueTent_DoorTop + || tileId == METATILE_SecretBase_BlueTent_Door) + { + if (sInFriendSecretBase == TRUE) + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_TENT); + } + else if ((behavior == MB_IMPASSABLE_NORTHEAST && tileId == METATILE_SecretBase_Stand_CornerRight) + || (behavior == MB_IMPASSABLE_NORTHWEST && MapGridGetMetatileIdAt(x, y) == METATILE_SecretBase_Stand_CornerLeft)) + { + if (sInFriendSecretBase == TRUE) + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_STAND); + } + else if (behavior == MB_IMPASSABLE_WEST_AND_EAST && tileId == METATILE_SecretBase_Slide_StairLanding) + { + if (sInFriendSecretBase == TRUE) { - if (sInFriendSecretBase == TRUE) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_JUMP_MAT); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ SECRET_BASE_USED_SLIDE); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_DECLINED_SLIDE); } - else if (MetatileBehavior_IsSecretBaseSpinMat(behavior) == TRUE) + } + else if (behavior == MB_SLIDE_SOUTH && tileId == METATILE_SecretBase_Slide_SlideTop) + { + if (sInFriendSecretBase == TRUE) { - if (sInFriendSecretBase == TRUE) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_SPIN_MAT); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_SLIDE); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ SECRET_BASE_DECLINED_SLIDE); } } + else if (MetatileBehavior_IsSecretBaseGlitterMat(behavior) == TRUE) + { + if (sInFriendSecretBase == TRUE) + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_GLITTER_MAT); + } + else if (MetatileBehavior_IsSecretBaseBalloon(behavior) == TRUE) + { + PopSecretBaseBalloon(MapGridGetMetatileIdAt(x, y), x, y); + if (sInFriendSecretBase == TRUE) + { + switch ((int)MapGridGetMetatileIdAt(x, y)) + { + case METATILE_SecretBase_RedBalloon: + case METATILE_SecretBase_BlueBalloon: + case METATILE_SecretBase_YellowBalloon: + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_BALLOON); + break; + case METATILE_SecretBase_MudBall: + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_MUD_BALL); + break; + } + } + } + else if (MetatileBehavior_IsSecretBaseBreakableDoor(behavior) == TRUE) + { + if (sInFriendSecretBase == TRUE) + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_BREAKABLE_DOOR); + + ShatterSecretBaseBreakableDoor(x, y); + } + else if (MetatileBehavior_IsSecretBaseSoundMat(behavior) == TRUE){ + if (sInFriendSecretBase == TRUE) + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_NOTE_MAT); + } + else if (MetatileBehavior_IsSecretBaseJumpMat(behavior) == TRUE) + { + if (sInFriendSecretBase == TRUE) + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_JUMP_MAT); + } + else if (MetatileBehavior_IsSecretBaseSpinMat(behavior) == TRUE) + { + if (sInFriendSecretBase == TRUE) + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_SPIN_MAT); + } break; case 2: // This state is never reached, and tFldEff is never set diff --git a/src/shop.c b/src/shop.c index fa4a73bbbd..700a53e37a 100755 --- a/src/shop.c +++ b/src/shop.c @@ -562,7 +562,7 @@ static void BuyMenuPrintPriceInList(u8 windowId, u32 itemId, u8 y) { ConvertIntToDecimalStringN( gStringVar1, - ItemId_GetPrice(itemId) >> GetPriceReduction(POKENEWS_SLATEPORT), + ItemId_GetPrice(itemId) >> IsPokeNewsActive(POKENEWS_SLATEPORT), STR_CONV_MODE_LEFT_ALIGN, 5); } @@ -674,9 +674,9 @@ static void BuyMenuInitBgs(void) static void BuyMenuDecompressBgGraphics(void) { - DecompressAndCopyTileDataToVram(1, gBuyMenuFrame_Gfx, 0x3A0, 0x3E3, 0); - LZDecompressWram(gBuyMenuFrame_Tilemap, sShopData->tilemapBuffers[0]); - LoadCompressedPalette(gMenuMoneyPal, 0xC0, 0x20); + DecompressAndCopyTileDataToVram(1, gShopMenu_Gfx, 0x3A0, 0x3E3, 0); + LZDecompressWram(gShopMenu_Tilemap, sShopData->tilemapBuffers[0]); + LoadCompressedPalette(gShopMenu_Pal, 0xC0, 0x20); } static void BuyMenuInitWindows(void) @@ -743,7 +743,7 @@ static void BuyMenuDrawMapBg(void) if (BuyMenuCheckForOverlapWithMenuBg(i, j) == TRUE) metatileLayerType = MapGridGetMetatileLayerTypeAt(x + i, y + j); else - metatileLayerType = 1; + metatileLayerType = METATILE_LAYER_TYPE_COVERED; if (metatile < NUM_METATILES_IN_PRIMARY) { @@ -764,15 +764,15 @@ static void BuyMenuDrawMapMetatile(s16 x, s16 y, const u16 *src, u8 metatileLaye switch (metatileLayerType) { - case 0: + case METATILE_LAYER_TYPE_NORMAL: BuyMenuDrawMapMetatileLayer(sShopData->tilemapBuffers[3], offset1, offset2, src); BuyMenuDrawMapMetatileLayer(sShopData->tilemapBuffers[1], offset1, offset2, src + 4); break; - case 1: + case METATILE_LAYER_TYPE_COVERED: BuyMenuDrawMapMetatileLayer(sShopData->tilemapBuffers[2], offset1, offset2, src); BuyMenuDrawMapMetatileLayer(sShopData->tilemapBuffers[3], offset1, offset2, src + 4); break; - case 2: + case METATILE_LAYER_TYPE_SPLIT: BuyMenuDrawMapMetatileLayer(sShopData->tilemapBuffers[2], offset1, offset2, src); BuyMenuDrawMapMetatileLayer(sShopData->tilemapBuffers[1], offset1, offset2, src + 4); break; @@ -847,7 +847,7 @@ static void BuyMenuDrawObjectEvents(void) graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[sShopData->viewportObjects[i][OBJ_EVENT_ID]].graphicsId); - spriteId = AddPseudoObjectEvent( + spriteId = CreateObjectGraphicsSprite( gObjectEvents[sShopData->viewportObjects[i][OBJ_EVENT_ID]].graphicsId, SpriteCallbackDummy, (u16)sShopData->viewportObjects[i][X_COORD] * 16 + 8, @@ -866,7 +866,7 @@ static void BuyMenuDrawObjectEvents(void) static bool8 BuyMenuCheckIfObjectEventOverlapsMenuBg(s16 *object) { - if (!BuyMenuCheckForOverlapWithMenuBg(object[X_COORD], object[Y_COORD] + 2) && object[LAYER_TYPE] != MB_SECRET_BASE_WALL) + if (!BuyMenuCheckForOverlapWithMenuBg(object[X_COORD], object[Y_COORD] + 2) && object[LAYER_TYPE] != METATILE_LAYER_TYPE_COVERED) { return TRUE; } @@ -934,7 +934,7 @@ static void Task_BuyMenu(u8 taskId) if (sMartInfo.martType == MART_TYPE_NORMAL) { - sShopData->totalCost = (ItemId_GetPrice(itemId) >> GetPriceReduction(POKENEWS_SLATEPORT)); + sShopData->totalCost = (ItemId_GetPrice(itemId) >> IsPokeNewsActive(POKENEWS_SLATEPORT)); } else { @@ -1014,7 +1014,7 @@ static void Task_BuyHowManyDialogueHandleInput(u8 taskId) if (AdjustQuantityAccordingToDPadInput(&tItemCount, sShopData->maxQuantity) == TRUE) { - sShopData->totalCost = (ItemId_GetPrice(tItemId) >> GetPriceReduction(POKENEWS_SLATEPORT)) * tItemCount; + sShopData->totalCost = (ItemId_GetPrice(tItemId) >> IsPokeNewsActive(POKENEWS_SLATEPORT)) * tItemCount; BuyMenuPrintItemQuantityAndPrice(taskId); } else diff --git a/src/slot_machine.c b/src/slot_machine.c index 1c21f230d3..1dfa026e5f 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -31,20 +31,60 @@ #define SLOTMACHINE_GFX_TILES 233 #define MAX_BET 3 -#define SYMBOLS_PER_REEL 21 -#define REEL_SYMBOL_HEIGHT 24 +#define SYMBOLS_PER_REEL 21 +#define REEL_SYMBOL_HEIGHT 24 +#define REEL_HEIGHT (SYMBOLS_PER_REEL * REEL_SYMBOL_HEIGHT) -// Lucky Flags -#define LUCKY_BIAS_REPLAY (1 << 0) -#define LUCKY_BIAS_CHERRY (1 << 1) -#define LUCKY_BIAS_LOTAD (1 << 2) -#define LUCKY_BIAS_AZURILL (1 << 3) -#define LUCKY_BIAS_POWER (1 << 4) -#define LUCKY_BIAS_REELTIME (1 << 5) -#define LUCKY_BIAS_MIXED_777 (1 << 6) -#define LUCKY_BIAS_777 (1 << 7) +#define REELTIME_SYMBOLS 6 +#define REELTIME_SYMBOL_HEIGHT 20 +#define REELTIME_REEL_HEIGHT (REELTIME_SYMBOLS * REELTIME_SYMBOL_HEIGHT) + +// There are three categories of biases: 7's, ReelTime, Regular +// - 7's: BIAS_STRAIGHT_7, BIAS_MIXED_7 +// - ReelTime: BIAS_REELTIME +// - Regular: everything else +// +// The 7's and ReelTime biases can be grouped together as 'Special' biases. +// +// There can be at most two biases at a time. If there are two, one bias will be +// ReelTime and the other will be one of the Regular biases. +// +// A new bias is drawn every round, except during ReelTime. Bias towards 7's +// persists across rounds until you match 7's. All other biases are reset after +// the round. +#define BIAS_REPLAY (1 << 0) +#define BIAS_CHERRY (1 << 1) +#define BIAS_LOTAD (1 << 2) +#define BIAS_AZURILL (1 << 3) +#define BIAS_POWER (1 << 4) +#define BIAS_REELTIME (1 << 5) +#define BIAS_MIXED_7 (1 << 6) +#define BIAS_STRAIGHT_7 (1 << 7) + +#define BIAS_7 (BIAS_STRAIGHT_7 | BIAS_MIXED_7) +#define BIAS_SPECIAL (BIAS_7 | BIAS_REELTIME) +#define BIAS_REGULAR (BIAS_REPLAY | BIAS_CHERRY | BIAS_LOATAD | BIAS_AZURILL | BIAS_POWER) + +// The slot machine will try to manipulate the outcome by adding up to 4 extra +// turns to the reel after you press stop. +// +// The only exception is when it is stopping the third reel and it has decided +// you will lose. In this case, it adds as many turns as necessary to prevent a +// match. +#define MAX_EXTRA_TURNS 4 enum { + SYMBOL_7_RED, + SYMBOL_7_BLUE, + SYMBOL_AZURILL, + SYMBOL_LOTAD, + SYMBOL_CHERRY, + SYMBOL_POWER, + SYMBOL_REPLAY, +}; + +enum +{ GFXTAG_7_RED, GFXTAG_7_BLUE, GFXTAG_AZURILL, @@ -72,6 +112,10 @@ enum { #define GFXTAG_SYMBOLS_START (GFXTAG_7_RED) #define GFXTAG_NUMBERS_START (GFXTAG_NUM_0) +#define REEL_NORMAL_SPEED 8 +#define REEL_HALF_SPEED 4 +#define REEL_QUARTER_SPEED 2 + enum { PALTAG_REEL, PALTAG_REEL_TIME_PIKACHU, @@ -84,16 +128,16 @@ enum { }; enum { - MATCHED_1CHERRY, - MATCHED_2CHERRY, - MATCHED_REPLAY, - MATCHED_LOTAD, - MATCHED_AZURILL, - MATCHED_POWER, - MATCHED_777_MIXED, - MATCHED_777_RED, - MATCHED_777_BLUE, - MATCHED_NONE, + MATCH_CHERRY, // Cherry in center of first reel + MATCH_TOPBOT_CHERRY, // Cherry in top/bottom of first reel + MATCH_REPLAY, + MATCH_LOTAD, + MATCH_AZURILL, + MATCH_POWER, + MATCH_MIXED_7, // First two 7's are same color; last is other color + MATCH_RED_7, + MATCH_BLUE_7, + MATCH_NONE, }; enum { @@ -113,43 +157,78 @@ enum { }; enum { - SLOT_ACTION_UNFADE, - SLOT_ACTION_WAIT_FADE, - SLOT_ACTION_READY_NEW_SPIN, - SLOT_ACTION_READY_NEW_RT_SPIN, - SLOT_ACTION_ASK_INSERT_BET, - SLOT_ACTION_BET_INPUT, - SLOT_ACTION_MSG_NEED_3_COINS, - SLOT_ACTION_WAIT_MSG_NEED_3_COINS, - SLOT_ACTION_WAIT_INFO_BOX, - SLOT_ACTION_START_SPIN, - SLOT_ACTION_START_RT_SPIN, - SLOT_ACTION_SET_LUCKY_SPINS, - SLOT_ACTION_AWAIT_REEL_STOP, - SLOT_ACTION_AWAIT_ALL_REELS_STOP, - SLOT_ACTION_CHECK_MATCHES, - SLOT_ACTION_WAIT_PAYOUT, - SLOT_ACTION_END_PAYOUT, - SLOT_ACTION_MATCHED_POWER, - SLOT_ACTION_WAIT_RT_ANIM, - SLOT_ACTION_RESET_BET_TILES, - SLOT_ACTION_NO_MATCHES, - SLOT_ACTION_ASK_QUIT, - SLOT_ACTION_HANDLE_QUIT_INPUT, - SLOT_ACTION_MSG_MAX_COINS, - SLOT_ACTION_WAIT_MSG_MAX_COINS, - SLOT_ACTION_MSG_NO_MORE_COINS, - SLOT_ACTION_WAIT_MSG_NO_MORE_COINS, - SLOT_ACTION_END, - SLOT_ACTION_FREE, + SLOTTASK_UNFADE, + SLOTTASK_WAIT_FADE, + SLOTTASK_READY_NEW_SPIN, + SLOTTASK_READY_NEW_RT_SPIN, + SLOTTASK_ASK_INSERT_BET, + SLOTTASK_BET_INPUT, + SLOTTASK_MSG_NEED_3_COINS, + SLOTTASK_WAIT_MSG_NEED_3_COINS, + SLOTTASK_WAIT_INFO_BOX, + SLOTTASK_START_SPIN, + SLOTTASK_START_RT_SPIN, + SLOTTASK_RESET_BIAS_FAILURE, + SLOTTASK_WAIT_REEL_STOP, + SLOTTASK_WAIT_ALL_REELS_STOP, + SLOTTASK_CHECK_MATCHES, + SLOTTASK_WAIT_PAYOUT, + SLOTTASK_END_PAYOUT, + SLOTTASK_MATCHED_POWER, + SLOTTASK_WAIT_RT_ANIM, + SLOTTASK_RESET_BET_TILES, + SLOTTASK_NO_MATCHES, + SLOTTASK_ASK_QUIT, + SLOTTASK_HANDLE_QUIT_INPUT, + SLOTTASK_MSG_MAX_COINS, + SLOTTASK_WAIT_MSG_MAX_COINS, + SLOTTASK_MSG_NO_MORE_COINS, + SLOTTASK_WAIT_MSG_NO_MORE_COINS, + SLOTTASK_END, + SLOTTASK_FREE, +}; +enum +{ + PAYOUT_TASK_INIT, + PAYOUT_TASK_GIVE_PAYOUT, + PAYOUT_TASK_FREE, }; enum { - REEL_ACTION_STILL, - REEL_ACTION_SPIN, - REEL_ACTION_STOP, - REEL_ACTION_STOP_MOVE, - REEL_ACTION_STOP_SHAKE, + REEL_TASK_STILL, + REEL_TASK_SPIN, + REEL_TASK_DECIDE_STOP, + REEL_TASK_STOP_MOVE, + REEL_TASK_STOP_SHAKE, +}; + +enum { + PIKABOLT_TASK_IDLE, + PIKABOLT_TASK_ADD_BOLT, + PIKABOLT_TASK_WAIT_ANIM, + PIKABOLT_TASK_CLEAR_ALL, +}; + +enum { + RT_TASK_INIT, + RT_TASK_WINDOW_ENTER, + RT_TASK_WAIT_START_PIKA, + RT_TASK_PIKA_SPEEDUP1, + RT_TASK_PIKA_SPEEDUP2, + RT_TASK_WAIT_REEL, + RT_TASK_CHECK_EXPLODE, + RT_TASK_LAND, + RT_TASK_PIKA_REACT, + RT_TASK_WAIT_CLEAR_POWER, + RT_TASK_CLOSE_WINDOW_SUCCESS, + RT_TASK_DESTROY_SPRITES, + RT_TASK_SET_REEL_SPEED, + RT_TASK_END_SUCCESS, + RT_TASK_EXPLODE, + RT_TASK_WAIT_EXPLODE, + RT_TASK_WAIT_SMOKE, + RT_TASK_CLOSE_WINDOW_FAILURE, + RT_TASK_END_FAILURE, }; #define DIG_SPRITE_DUMMY {255, 0, 0} @@ -235,29 +314,74 @@ enum { DIG_DISPLAY_BONUS_BIG }; + +// How ReelTime works +// ================== +// Entering ReelTime: +// - If the bias you draw at the start of the round is BIAS_REELTIME, the +// ReelTime lottery begins. +// - At the start of the lottery, the game selects how many ReelTime spins you +// will get, based on how many Power bolts you've collected and whether it +// is a lucky game. +// - The lottery machine rolls until it lands on the selected number. If it +// selected 0 spins, the lottery machine will mostly likely explode before +// landing on 0. +// - If you win: +// - You receive the selected number of ReelTime spins +// - You lose all the Power bolts you've collected thus far +// - The lottery window closes and ReelTime officially begins +// +// During ReelTime: +// - You still have to pay coins for bets. +// - The slot reels may spin slower than usual in ReelTime. The machine draws a +// reel speed at the beginning of each ReelTime spin. The more coins you've +// lost to the machine, and the more consecutive ReelTime spins you've done, +// the higher your chances of getting a slower reel speed. +// - In ReelTime, the reel stops exactly on your input. That is, it won't add +// extra turns to manipulate the outcome. +// - ReelTime ends early if you win red 7's or blue 7's. + + +// SlotMachine field explanations: +// +// luckyGame: +// Determined at random when you start playing. Some events modify this: +// - Blue 7 match: game becomes lucky +// - Red 7 match: game becomes normal +// +// Effectively, a lucky game inreases the odds of getting more ReelTime spins. +// If the game is lucky, you have a slightly higher chance of matching Power +// bolts (at the expense of Replays). This helps you fill your Power bolt +// gauge faster. +// +// During ReelTime, the more Power bolts you have, the greater your chances +// of drawing more ReelTime spins. In a lucky game, you have greater odds of +// drawing high yields (3+ RT spins). You also have greater odds of drawing 0 +// RT spins. But drawing 0 lets you keep all your Power bolts, allowing you to +// fill your gauge further. struct SlotMachine { /*0x00*/ u8 state; /*0x01*/ u8 machineId; - /*0x02*/ u8 pikaPower; - /*0x03*/ u8 luckyGame; - /*0x04*/ u8 luckyFlags; + /*0x02*/ u8 pikaPowerBolts; + /*0x03*/ bool8 luckyGame; + /*0x04*/ u8 machineBias; /*0x05*/ u8 reelTimeDraw; - /*0x06*/ u8 isLuckySpin; - /*0x07*/ u8 biasTag; - /*0x08*/ u16 matchedSymbols; + /*0x06*/ bool8 didNotFailBias; + /*0x07*/ u8 biasSymbol; + /*0x08*/ u16 matches; /*0x0A*/ u8 reelTimeSpinsLeft; /*0x0B*/ u8 reelTimeSpinsUsed; /*0x0C*/ s16 coins; /*0x0E*/ s16 payout; - /*0x10*/ s16 netCoinLoss; // coins lost to machine (but never goes below 0) + /*0x10*/ s16 netCoinLoss; // never negative /*0x12*/ s16 bet; /*0x14*/ s16 reeltimePixelOffset; /*0x16*/ s16 reeltimePosition; - /*0x18*/ s16 currReel; - /*0x1A*/ s16 reelIncrement; // speed of reel + /*0x18*/ s16 currentReel; + /*0x1A*/ s16 reelSpeed; /*0x1C*/ s16 reelPixelOffsets[NUM_REELS]; - /*0x22*/ u16 reelPixelOffsetsWhileStopping[NUM_REELS]; + /*0x22*/ u16 reelShockOffsets[NUM_REELS]; /*0x28*/ s16 reelPositions[NUM_REELS]; /*0x2E*/ s16 reelExtraTurns[NUM_REELS]; /*0x34*/ s16 winnerRows[NUM_REELS]; @@ -299,7 +423,7 @@ static void SlotMachineSetup_InitBgsWindows(void); static void SlotMachineSetup_InitVRAM(void); static void SlotMachineSetup_InitOAM(void); static void SlotMachineSetup_InitGpuRegs(void); -static void SlotMachineSetup_InitSlotMachineStruct(void); +static void InitSlotMachine(void); static void SlotMachineSetup_InitPalsSpritesTasks(void); static void SlotMachineSetup_InitTilemaps(void); static void SlotMachineSetup_LoadGfxAndTilemaps(void); @@ -308,84 +432,84 @@ static void AllocDigitalDisplayGfx(void); static void SetDigitalDisplayImagePtrs(void); static void CreateSlotMachineSprites(void); static void CreateGameplayTasks(void); -static void CreateSlotMachineTask(void); +static void CreateSlotMachineTasks(void); static void DestroyDigitalDisplayScene(void); static void Task_SlotMachine(u8); -static bool8 SlotAction_UnfadeScreen(struct Task *); -static bool8 SlotAction_WaitForUnfade(struct Task *); -static bool8 SlotAction_ReadyNewSpin(struct Task *); -static bool8 SlotAction_ReadyNewReelTimeSpin(struct Task *); -static bool8 SlotAction_AskInsertBet(struct Task *); -static bool8 SlotAction_HandleBetInput(struct Task *); -static bool8 SlotAction_PrintMsg_Need3Coins(struct Task *); -static bool8 SlotAction_WaitMsg_Need3Coins(struct Task *); -static bool8 SlotAction_WaitForInfoBox(struct Task *); -static bool8 SlotAction_StartSpin(struct Task *); -static bool8 SlotAction_StartReelTimeSpin(struct Task *); -static bool8 SlotAction_SetLuckySpins(struct Task *); -static bool8 SlotAction_AwaitReelStop(struct Task *); -static bool8 SlotAction_WaitForAllReelsToStop(struct Task *); -static bool8 SlotAction_CheckMatches(struct Task *); -static bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *); -static bool8 SlotAction_EndPayout(struct Task *); -static bool8 SlotAction_MatchedPower(struct Task *); -static bool8 SlotAction_WaitReelTimeAnim(struct Task *); -static bool8 SlotAction_ResetBetTiles(struct Task *); -static bool8 SlotAction_NoMatches(struct Task *); -static bool8 SlotAction_AskQuit(struct Task *); -static bool8 SlotAction_HandleQuitInput(struct Task *); -static bool8 SlotAction_PrintMsg_9999Coins(struct Task *); -static bool8 SlotAction_WaitMsg_9999Coins(struct Task *); -static bool8 SlotAction_PrintMsg_NoMoreCoins(struct Task *); -static bool8 SlotAction_WaitMsg_NoMoreCoins(struct Task *); -static bool8 SlotAction_EndGame(struct Task *); -static bool8 SlotAction_FreeDataStructures(struct Task *); -static void DrawLuckyFlags(void); -static void SetLuckySpins(void); -static bool8 IsThisRoundLucky(void); -static u8 AttemptsAtLuckyFlags_Top3(void); -static u16 SlowReelSpeed(void); -static u8 AttemptsAtLuckyFlags_NotTop3(void); +static bool8 SlotTask_UnfadeScreen(struct Task *); +static bool8 SlotTask_WaitUnfade(struct Task *); +static bool8 SlotTask_ReadyNewSpin(struct Task *); +static bool8 SlotTask_ReadyNewReelTimeSpin(struct Task *); +static bool8 SlotTask_AskInsertBet(struct Task *); +static bool8 SlotTask_HandleBetInput(struct Task *); +static bool8 SlotTask_PrintMsg_Need3Coins(struct Task *); +static bool8 SlotTask_WaitMsg_Need3Coins(struct Task *); +static bool8 SlotTask_WaitInfoBox(struct Task *); +static bool8 SlotTask_StartSpin(struct Task *); +static bool8 SlotTask_StartReelTimeSpin(struct Task *); +static bool8 SlotTask_ResetBiasFailure(struct Task *); +static bool8 SlotTask_WaitReelStop(struct Task *); +static bool8 SlotTask_WaitAllReelsStop(struct Task *); +static bool8 SlotTask_CheckMatches(struct Task *); +static bool8 SlotTask_WaitPayout(struct Task *); +static bool8 SlotTask_EndPayout(struct Task *); +static bool8 SlotTask_MatchedPower(struct Task *); +static bool8 SlotTask_WaitReelTimeAnim(struct Task *); +static bool8 SlotTask_ResetBetTiles(struct Task *); +static bool8 SlotTask_NoMatches(struct Task *); +static bool8 SlotTask_AskQuit(struct Task *); +static bool8 SlotTask_HandleQuitInput(struct Task *); +static bool8 SlotTask_PrintMsg_MaxCoins(struct Task *); +static bool8 SlotTask_WaitMsg_MaxCoins(struct Task *); +static bool8 SlotTask_PrintMsg_NoMoreCoins(struct Task *); +static bool8 SlotTask_WaitMsg_NoMoreCoins(struct Task *); +static bool8 SlotTask_EndGame(struct Task *); +static bool8 SlotTask_FreeDataStructures(struct Task *); +static void DrawMachineBias(void); +static void ResetBiasFailure(void); +static bool8 ShouldTrySpecialBias(void); +static u8 TrySelectBias_Special(void); +static u16 ReelTimeSpeed(void); +static u8 TrySelectBias_Regular(void); static void CheckMatch(void); static void CheckMatch_CenterRow(void); static void CheckMatch_TopAndBottom(void); static void CheckMatch_Diagonals(void); static u8 GetMatchFromSymbols(u8, u8, u8); static void AwardPayout(void); -static void RunAwardPayoutActions(u8); -static bool8 IsFinalTask_RunAwardPayoutActions(void); -static bool8 AwardPayoutAction0(struct Task *); -static bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *); -static bool8 AwardPayoutAction_FreeTask(struct Task *); -static u8 GetTagAtRest(u8, s16); -static void CreateSlotReelTasks(void); +static void Task_Payout(u8); +static bool8 IsFinalTask_Task_Payout(void); +static bool8 PayoutTask_Init(struct Task *); +static bool8 PayoutTask_GivePayout(struct Task *); +static bool8 PayoutTask_Free(struct Task *); +static u8 GetSymbolAtRest(u8, s16); +static void CreateReelTasks(void); static void SpinSlotReel(u8); static void StopSlotReel(u8); static bool8 IsSlotReelMoving(u8); -static void Task_RunSlotReelActions(u8); -static bool8 SlotReelAction_StayStill(struct Task *); -static bool8 SlotReelAction_Spin(struct Task *); -static bool8 SlotReelAction_DecideWhereToStop(struct Task *); -static bool8 SlotReelAction_MoveToStop(struct Task *); -static bool8 SlotReelAction_OscillatingStop(struct Task *); -static bool8 DecideReelTurns_BiasTag_Reel1(void); -static bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8, u8); -static bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8, u8); -static bool8 DecideReelTurns_BiasTag_Reel2(void); -static bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void); -static bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void); -static bool8 DecideReelTurns_BiasTag_Reel3(void); -static bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8); -static bool8 DecideReelTurns_BiasTag_Reel3_Bet3(u8); -static void DecideReelTurns_NoBiasTag_Reel1(void); -static void DecideReelTurns_NoBiasTag_Reel2(void); -static void DecideReelTurns_NoBiasTag_Reel2_Bet1(void); -static void DecideReelTurns_NoBiasTag_Reel2_Bet2(void); -static void DecideReelTurns_NoBiasTag_Reel2_Bet3(void); -static void DecideReelTurns_NoBiasTag_Reel3(void); -static void DecideReelTurns_NoBiasTag_Reel3_Bet1(void); -static void DecideReelTurns_NoBiasTag_Reel3_Bet2(void); -static void DecideReelTurns_NoBiasTag_Reel3_Bet3(void); +static void Task_Reel(u8); +static bool8 ReelTask_StayStill(struct Task *); +static bool8 ReelTask_Spin(struct Task *); +static bool8 ReelTask_DecideStop(struct Task *); +static bool8 ReelTask_MoveToStop(struct Task *); +static bool8 ReelTask_ShakingStop(struct Task *); +static bool8 DecideStop_Bias_Reel1(void); +static bool8 DecideStop_Bias_Reel1_Bet1(u8, u8); +static bool8 DecideStop_Bias_Reel1_Bet2or3(u8, u8); +static bool8 DecideStop_Bias_Reel2(void); +static bool8 DecideStop_Bias_Reel2_Bet1or2(void); +static bool8 DecideStop_Bias_Reel2_Bet3(void); +static bool8 DecideStop_Bias_Reel3(void); +static bool8 DecideStop_Bias_Reel3_Bet1or2(u8); +static bool8 DecideStop_Bias_Reel3_Bet3(u8); +static void DecideStop_NoBias_Reel1(void); +static void DecideStop_NoBias_Reel2(void); +static void DecideStop_NoBias_Reel2_Bet1(void); +static void DecideStop_NoBias_Reel2_Bet2(void); +static void DecideStop_NoBias_Reel2_Bet3(void); +static void DecideStop_NoBias_Reel3(void); +static void DecideStop_NoBias_Reel3_Bet1(void); +static void DecideStop_NoBias_Reel3_Bet2(void); +static void DecideStop_NoBias_Reel3_Bet3(void); static void PressStopReelButton(u8); static void Task_PressStopReelButton(u8); static void LightenBetTiles(u8); @@ -427,7 +551,7 @@ static void ReelTime_PikachuReact(struct Task *); static void ReelTime_WaitClearPikaPower(struct Task *); static void ReelTime_CloseWindow(struct Task *); static void ReelTime_DestroySprites(struct Task *); -static void ReelTime_SetReelIncrement(struct Task *); +static void ReelTime_SetReelSpeed(struct Task *); static void ReelTime_EndSuccess(struct Task *); static void ReelTime_ExplodeMachine(struct Task *); static void ReelTime_WaitExplode(struct Task *); @@ -437,11 +561,11 @@ static void LoadReelTimeWindowTilemap(s16, s16); static void ClearReelTimeWindowTilemap(s16); static void OpenInfoBox(u8); static bool8 IsInfoBoxClosed(void); -static void RunInfoBoxActions(u8 ); +static void Task_InfoBox(u8 ); static void InfoBox_FadeIn(struct Task *); -static void InfoBox_WaitForFade(struct Task *); +static void InfoBox_WaitFade(struct Task *); static void InfoBox_DrawWindow(struct Task *); -static void InfoBox_AwaitPlayerInput(struct Task *); +static void InfoBox_WaitInput(struct Task *); static void InfoBox_AddText(struct Task *); static void InfoBox_LoadPikaPowerMeter(struct Task *); static void InfoBox_LoadSlotMachineTilemap(struct Task *); @@ -557,10 +681,10 @@ static struct SpriteFrameImage *sImageTables_DigitalDisplay[NUM_DIG_DISPLAY_SPRI // Const rom data. static const struct DigitalDisplaySprite *const sDigitalDisplayScenes[]; static const u16 sUnkPalette[]; -static const u8 sLuckyRoundProbabilities[][3]; -static const u8 sBiasTags[]; -static const u16 sLuckyFlagSettings_Top3[]; -static const u16 sLuckyFlagSettings_NotTop3[]; +static const u8 sSpecialDrawOdds[NUM_SLOT_MACHINE_IDS][MAX_BET]; +static const u8 sBiasSymbols[]; +static const u16 sBiasesSpecial[3]; +static const u16 sBiasesRegular[5]; static const s16 sDigitalDisplay_SpriteCoords[][2]; static const SpriteCallback sDigitalDisplay_SpriteCallbacks[]; static const struct SpriteTemplate *const sSpriteTemplates_DigitalDisplay[NUM_DIG_DISPLAY_SPRITES]; @@ -572,8 +696,8 @@ static const struct SpriteTemplate sSpriteTemplate_ReelTimeExplosion; static const struct SpriteTemplate sSpriteTemplate_ReelTimePikachuAura; static const u16 sReelTimeExplodeProbability[]; static const u16 *const sPokeballShiningPalTable[]; -static const u16 sReelIncrementTable[][2]; -static const u16 sReelTimeBonusIncrementTable[]; +static const u16 sReelTimeSpeed_Probabilities[][2]; +static const u16 sQuarterSpeed_ProbabilityBoost[]; static const u16 sSlotMatchFlags[]; static const u16 sSlotPayouts[]; static const u8 *const sReelBackground_Tilemap; @@ -582,13 +706,13 @@ static const struct SpriteSheet sSlotMachineSpriteSheets[22]; static const struct SpritePalette sSlotMachineSpritePalettes[]; static const u16 *const sDigitalDisplay_Pal; static const s16 sInitialReelPositions[NUM_REELS][2]; -static const u8 sLuckyFlagProbabilities_Top3[][6]; -static const u8 sLuckyFlagProbabilities_NotTop3[][6]; -static const u8 sReeltimeProbabilities_UnluckyGame[][17]; +static const u8 sBiasProbabilities_Special[][NUM_SLOT_MACHINE_IDS]; +static const u8 sBiasProbabilities_Regular[][NUM_SLOT_MACHINE_IDS]; +static const u8 sReelTimeProbabilities_NormalGame[][17]; static const u8 sReelTimeProbabilities_LuckyGame[][17]; -static const u8 sSymToMatch[]; -static const u8 sReelTimeTags[]; -static const u8 sReelSymbolTileTags[NUM_REELS][SYMBOLS_PER_REEL]; +static const u8 sSymbolToMatch[]; +static const u8 sReelTimeSymbols[]; +static const u8 sReelSymbols[NUM_REELS][SYMBOLS_PER_REEL]; static const u16 *const sLitMatchLinePalTable[NUM_MATCH_LINES]; static const u16 *const sDarkMatchLinePalTable[NUM_MATCH_LINES]; static const u8 sMatchLinePalOffsets[NUM_MATCH_LINES]; @@ -684,123 +808,131 @@ static const struct WindowTemplate sWindowTemplate_InfoBox = static const u8 sColors_ReeltimeHelp[] = {TEXT_COLOR_LIGHT_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY}; -static bool8 (*const sSlotActions[])(struct Task *task) = +static bool8 (*const sSlotTasks[])(struct Task *task) = { - [SLOT_ACTION_UNFADE] = SlotAction_UnfadeScreen, - [SLOT_ACTION_WAIT_FADE] = SlotAction_WaitForUnfade, - [SLOT_ACTION_READY_NEW_SPIN] = SlotAction_ReadyNewSpin, - [SLOT_ACTION_READY_NEW_RT_SPIN] = SlotAction_ReadyNewReelTimeSpin, - [SLOT_ACTION_ASK_INSERT_BET] = SlotAction_AskInsertBet, - [SLOT_ACTION_BET_INPUT] = SlotAction_HandleBetInput, - [SLOT_ACTION_MSG_NEED_3_COINS] = SlotAction_PrintMsg_Need3Coins, - [SLOT_ACTION_WAIT_MSG_NEED_3_COINS] = SlotAction_WaitMsg_Need3Coins, - [SLOT_ACTION_WAIT_INFO_BOX] = SlotAction_WaitForInfoBox, - [SLOT_ACTION_START_SPIN] = SlotAction_StartSpin, - [SLOT_ACTION_START_RT_SPIN] = SlotAction_StartReelTimeSpin, - [SLOT_ACTION_SET_LUCKY_SPINS] = SlotAction_SetLuckySpins, - [SLOT_ACTION_AWAIT_REEL_STOP] = SlotAction_AwaitReelStop, - [SLOT_ACTION_AWAIT_ALL_REELS_STOP] = SlotAction_WaitForAllReelsToStop, - [SLOT_ACTION_CHECK_MATCHES] = SlotAction_CheckMatches, - [SLOT_ACTION_WAIT_PAYOUT] = SlotAction_WaitForPayoutToBeAwarded, - [SLOT_ACTION_END_PAYOUT] = SlotAction_EndPayout, - [SLOT_ACTION_MATCHED_POWER] = SlotAction_MatchedPower, - [SLOT_ACTION_WAIT_RT_ANIM] = SlotAction_WaitReelTimeAnim, - [SLOT_ACTION_RESET_BET_TILES] = SlotAction_ResetBetTiles, - [SLOT_ACTION_NO_MATCHES] = SlotAction_NoMatches, - [SLOT_ACTION_ASK_QUIT] = SlotAction_AskQuit, - [SLOT_ACTION_HANDLE_QUIT_INPUT] = SlotAction_HandleQuitInput, - [SLOT_ACTION_MSG_MAX_COINS] = SlotAction_PrintMsg_9999Coins, - [SLOT_ACTION_WAIT_MSG_MAX_COINS] = SlotAction_WaitMsg_9999Coins, - [SLOT_ACTION_MSG_NO_MORE_COINS] = SlotAction_PrintMsg_NoMoreCoins, - [SLOT_ACTION_WAIT_MSG_NO_MORE_COINS] = SlotAction_WaitMsg_NoMoreCoins, - [SLOT_ACTION_END] = SlotAction_EndGame, - [SLOT_ACTION_FREE] = SlotAction_FreeDataStructures, + [SLOTTASK_UNFADE] = SlotTask_UnfadeScreen, + [SLOTTASK_WAIT_FADE] = SlotTask_WaitUnfade, + [SLOTTASK_READY_NEW_SPIN] = SlotTask_ReadyNewSpin, + [SLOTTASK_READY_NEW_RT_SPIN] = SlotTask_ReadyNewReelTimeSpin, + [SLOTTASK_ASK_INSERT_BET] = SlotTask_AskInsertBet, + [SLOTTASK_BET_INPUT] = SlotTask_HandleBetInput, + [SLOTTASK_MSG_NEED_3_COINS] = SlotTask_PrintMsg_Need3Coins, + [SLOTTASK_WAIT_MSG_NEED_3_COINS] = SlotTask_WaitMsg_Need3Coins, + [SLOTTASK_WAIT_INFO_BOX] = SlotTask_WaitInfoBox, + [SLOTTASK_START_SPIN] = SlotTask_StartSpin, + [SLOTTASK_START_RT_SPIN] = SlotTask_StartReelTimeSpin, + [SLOTTASK_RESET_BIAS_FAILURE] = SlotTask_ResetBiasFailure, + [SLOTTASK_WAIT_REEL_STOP] = SlotTask_WaitReelStop, + [SLOTTASK_WAIT_ALL_REELS_STOP] = SlotTask_WaitAllReelsStop, + [SLOTTASK_CHECK_MATCHES] = SlotTask_CheckMatches, + [SLOTTASK_WAIT_PAYOUT] = SlotTask_WaitPayout, + [SLOTTASK_END_PAYOUT] = SlotTask_EndPayout, + [SLOTTASK_MATCHED_POWER] = SlotTask_MatchedPower, + [SLOTTASK_WAIT_RT_ANIM] = SlotTask_WaitReelTimeAnim, + [SLOTTASK_RESET_BET_TILES] = SlotTask_ResetBetTiles, + [SLOTTASK_NO_MATCHES] = SlotTask_NoMatches, + [SLOTTASK_ASK_QUIT] = SlotTask_AskQuit, + [SLOTTASK_HANDLE_QUIT_INPUT] = SlotTask_HandleQuitInput, + [SLOTTASK_MSG_MAX_COINS] = SlotTask_PrintMsg_MaxCoins, + [SLOTTASK_WAIT_MSG_MAX_COINS] = SlotTask_WaitMsg_MaxCoins, + [SLOTTASK_MSG_NO_MORE_COINS] = SlotTask_PrintMsg_NoMoreCoins, + [SLOTTASK_WAIT_MSG_NO_MORE_COINS] = SlotTask_WaitMsg_NoMoreCoins, + [SLOTTASK_END] = SlotTask_EndGame, + [SLOTTASK_FREE] = SlotTask_FreeDataStructures, }; -static bool8 (*const sAwardPayoutActions[])(struct Task *task) = +static bool8 (*const sPayoutTasks[])(struct Task *task) = { - AwardPayoutAction0, - AwardPayoutAction_GivePayoutToPlayer, - AwardPayoutAction_FreeTask + [PAYOUT_TASK_INIT] = PayoutTask_Init, + [PAYOUT_TASK_GIVE_PAYOUT] = PayoutTask_GivePayout, + [PAYOUT_TASK_FREE] = PayoutTask_Free, }; -static bool8 (*const sSlotReelActions[])(struct Task *task) = +static bool8 (*const sReelTasks[])(struct Task *task) = { - [REEL_ACTION_STILL] = SlotReelAction_StayStill, - [REEL_ACTION_SPIN] = SlotReelAction_Spin, - [REEL_ACTION_STOP] = SlotReelAction_DecideWhereToStop, - [REEL_ACTION_STOP_MOVE] = SlotReelAction_MoveToStop, - [REEL_ACTION_STOP_SHAKE] = SlotReelAction_OscillatingStop + [REEL_TASK_STILL] = ReelTask_StayStill, + [REEL_TASK_SPIN] = ReelTask_Spin, + [REEL_TASK_DECIDE_STOP] = ReelTask_DecideStop, + [REEL_TASK_STOP_MOVE] = ReelTask_MoveToStop, + [REEL_TASK_STOP_SHAKE] = ReelTask_ShakingStop, }; -// returns True if a match with the biasTag is possible in that reel -// also modifies data in sSlotMachine reel arrays to indicate how to get to the matching state -static bool8 (*const sDecideReelTurns_BiasTag[NUM_REELS])(void) = +// Returns true if it is possible to match the bias symbol in the reel. +// +// Modifies the winnerRows and reelExtraTurns to indicate how to match the bias +// symbol. +static bool8 (*const sDecideStop_Bias[NUM_REELS])(void) = { - DecideReelTurns_BiasTag_Reel1, - DecideReelTurns_BiasTag_Reel2, - DecideReelTurns_BiasTag_Reel3 + DecideStop_Bias_Reel1, + DecideStop_Bias_Reel2, + DecideStop_Bias_Reel3, }; -static void (*const sDecideReelTurns_NoBiasTag[NUM_REELS])(void) = +// The player will always lose (barring a few rare circumstances that were not +// accounted for in implementation). +// +// Modifies the winnerRows and reelExtraTurns to indicate how to make the player +// lose. +static void (*const sDecideStop_NoBias[NUM_REELS])(void) = { - DecideReelTurns_NoBiasTag_Reel1, - DecideReelTurns_NoBiasTag_Reel2, - DecideReelTurns_NoBiasTag_Reel3 + DecideStop_NoBias_Reel1, + DecideStop_NoBias_Reel2, + DecideStop_NoBias_Reel3, }; +// The magnitude of the shock depends on how many extra turns are added. static const u16 sReelStopShocks[] = {2, 4, 4, 4, 8}; -static bool8 (*const sDecideReelTurns_BiasTag_Reel1_Bets[MAX_BET])(u8 tag1, u8 tag2) = +static bool8 (*const sDecideStop_Bias_Reel1_Bets[MAX_BET])(u8 sym1, u8 sym2) = { - DecideReelTurns_BiasTag_Reel1_Bet1, - DecideReelTurns_BiasTag_Reel1_Bet2or3, - DecideReelTurns_BiasTag_Reel1_Bet2or3 + DecideStop_Bias_Reel1_Bet1, + DecideStop_Bias_Reel1_Bet2or3, + DecideStop_Bias_Reel1_Bet2or3, }; -static bool8 (*const sDecideReelTurns_BiasTag_Reel2_Bets[MAX_BET])(void) = +static bool8 (*const sDecideStop_Bias_Reel2_Bets[MAX_BET])(void) = { - DecideReelTurns_BiasTag_Reel2_Bet1or2, - DecideReelTurns_BiasTag_Reel2_Bet1or2, - DecideReelTurns_BiasTag_Reel2_Bet3 + DecideStop_Bias_Reel2_Bet1or2, + DecideStop_Bias_Reel2_Bet1or2, + DecideStop_Bias_Reel2_Bet3, }; -static bool8 (*const sDecideReelTurns_BiasTag_Reel3_Bets[MAX_BET])(u8 biasTag) = +static bool8 (*const sDecideStop_Bias_Reel3_Bets[MAX_BET])(u8 biasSymbol) = { - DecideReelTurns_BiasTag_Reel3_Bet1or2, - DecideReelTurns_BiasTag_Reel3_Bet1or2, - DecideReelTurns_BiasTag_Reel3_Bet3 + DecideStop_Bias_Reel3_Bet1or2, + DecideStop_Bias_Reel3_Bet1or2, + DecideStop_Bias_Reel3_Bet3, }; -static void (*const sDecideReelTurns_NoBiasTag_Reel2_Bets[MAX_BET])(void) = +static void (*const sDecideStop_NoBias_Reel2_Bets[MAX_BET])(void) = { - DecideReelTurns_NoBiasTag_Reel2_Bet1, - DecideReelTurns_NoBiasTag_Reel2_Bet2, - DecideReelTurns_NoBiasTag_Reel2_Bet3 + DecideStop_NoBias_Reel2_Bet1, + DecideStop_NoBias_Reel2_Bet2, + DecideStop_NoBias_Reel2_Bet3, }; -static void (*const sDecideReelTurns_NoBiasTag_Reel3_Bets[MAX_BET])(void) = +static void (*const sDecideStop_NoBias_Reel3_Bets[MAX_BET])(void) = { - DecideReelTurns_NoBiasTag_Reel3_Bet1, - DecideReelTurns_NoBiasTag_Reel3_Bet2, - DecideReelTurns_NoBiasTag_Reel3_Bet3 + DecideStop_NoBias_Reel3_Bet1, + DecideStop_NoBias_Reel3_Bet2, + DecideStop_NoBias_Reel3_Bet3, }; -static void (*const sReelStopButtonFuncs[])(struct Task *task, u8 taskId) = +static void (*const sReelStopButtonTasks[])(struct Task *task, u8 taskId) = { StopReelButton_Press, StopReelButton_Wait, - StopReelButton_Unpress + StopReelButton_Unpress, }; static const s16 sReelButtonOffsets[NUM_REELS] = {5, 10, 15}; -static void (*const sPikaPowerBoltFuncs[])(struct Task *task) = +static void (*const sPikaPowerBoltTasks[])(struct Task *task) = { PikaPowerBolt_Idle, PikaPowerBolt_AddBolt, PikaPowerBolt_WaitAnim, - PikaPowerBolt_ClearAll + PikaPowerBolt_ClearAll, }; static const u16 sPikaPowerTileTable[][2] = @@ -810,65 +942,61 @@ static const u16 sPikaPowerTileTable[][2] = {0xaf, 0x7f}, }; -static void (*const sReelTimeActions[])(struct Task *task) = +static void (*const sReelTimeTasks[])(struct Task *task) = { - ReelTime_Init, - ReelTime_WindowEnter, - ReelTime_WaitStartPikachu, - ReelTime_PikachuSpeedUp1, - ReelTime_PikachuSpeedUp2, - ReelTime_WaitReel, - ReelTime_CheckExplode, - ReelTime_LandOnOutcome, - ReelTime_PikachuReact, - ReelTime_WaitClearPikaPower, - ReelTime_CloseWindow, - ReelTime_DestroySprites, - ReelTime_SetReelIncrement, - ReelTime_EndSuccess, - ReelTime_ExplodeMachine, - ReelTime_WaitExplode, - ReelTime_WaitSmoke, - ReelTime_CloseWindow, - ReelTime_EndFailure + [RT_TASK_INIT] = ReelTime_Init, + [RT_TASK_WINDOW_ENTER] = ReelTime_WindowEnter, + [RT_TASK_WAIT_START_PIKA] = ReelTime_WaitStartPikachu, + [RT_TASK_PIKA_SPEEDUP1] = ReelTime_PikachuSpeedUp1, + [RT_TASK_PIKA_SPEEDUP2] = ReelTime_PikachuSpeedUp2, + [RT_TASK_WAIT_REEL] = ReelTime_WaitReel, + [RT_TASK_CHECK_EXPLODE] = ReelTime_CheckExplode, + [RT_TASK_LAND] = ReelTime_LandOnOutcome, + [RT_TASK_PIKA_REACT] = ReelTime_PikachuReact, + [RT_TASK_WAIT_CLEAR_POWER] = ReelTime_WaitClearPikaPower, + [RT_TASK_CLOSE_WINDOW_SUCCESS] = ReelTime_CloseWindow, + [RT_TASK_DESTROY_SPRITES] = ReelTime_DestroySprites, + [RT_TASK_SET_REEL_SPEED] = ReelTime_SetReelSpeed, + [RT_TASK_END_SUCCESS] = ReelTime_EndSuccess, + [RT_TASK_EXPLODE] = ReelTime_ExplodeMachine, + [RT_TASK_WAIT_EXPLODE] = ReelTime_WaitExplode, + [RT_TASK_WAIT_SMOKE] = ReelTime_WaitSmoke, + [RT_TASK_CLOSE_WINDOW_FAILURE] = ReelTime_CloseWindow, + [RT_TASK_END_FAILURE] = ReelTime_EndFailure, }; static const u8 sReelTimePikachuAnimIds[] = {1, 1, 2, 2}; static const s16 sReelTimeBoltDelays[] = {64, 48, 24, 8}; static const s16 sPikachuAuraFlashDelays[] = {10, 8, 6, 4}; -static void (*const sInfoBoxActions[])(struct Task *task) = +static void (*const sInfoBoxTasks[])(struct Task *task) = { // Go to Info screen InfoBox_FadeIn, - InfoBox_WaitForFade, + InfoBox_WaitFade, InfoBox_DrawWindow, - InfoBox_WaitForFade, + InfoBox_WaitFade, InfoBox_AddText, - InfoBox_WaitForFade, + InfoBox_WaitFade, // On Info screen - InfoBox_AwaitPlayerInput, + InfoBox_WaitInput, // Exit Info screen - InfoBox_WaitForFade, + InfoBox_WaitFade, InfoBox_LoadSlotMachineTilemap, - InfoBox_WaitForFade, + InfoBox_WaitFade, InfoBox_CreateDigitalDisplay, - InfoBox_WaitForFade, + InfoBox_WaitFade, InfoBox_LoadPikaPowerMeter, - InfoBox_WaitForFade, + InfoBox_WaitFade, InfoBox_FreeTask, }; // Just idles, digital display is handled by CreateDigitalDisplayScene and sprite callbacks -static void (*const sDigitalDisplayActions[])(struct Task *task) = +static void (*const sDigitalDisplayTasks[])(struct Task *task) = { DigitalDisplay_Idle, }; - - - -// code #define tState data[0] static void Task_FadeToSlotMachine(u8 taskId) @@ -889,12 +1017,12 @@ static void Task_FadeToSlotMachine(u8 taskId) } } -void PlaySlotMachine(u8 slotMachineIndex, MainCallback exitCallback) +void PlaySlotMachine(u8 machineId, MainCallback exitCallback) { u8 taskId; sSlotMachine = AllocZeroed(sizeof(*sSlotMachine)); - PlaySlotMachine_Internal(slotMachineIndex, exitCallback); + PlaySlotMachine_Internal(machineId, exitCallback); taskId = CreateTask(Task_FadeToSlotMachine, 0); gTasks[taskId].tState = 0; } @@ -907,7 +1035,7 @@ static void CB2_SlotMachineSetup(void) { case 0: SlotMachineSetup_InitBgsWindows(); - SlotMachineSetup_InitSlotMachineStruct(); + InitSlotMachine(); gMain.state++; break; case 1: @@ -981,25 +1109,31 @@ static void SlotMachine_VBlankCB(void) SetGpuReg(REG_OFFSET_WINOUT, sSlotMachine->winOut); } -static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback exitCallback) +#define tMachineId data[0] +#define tExitCallback data[1] + +static void PlaySlotMachine_Internal(u8 machineId, MainCallback exitCallback) { struct Task *task = &gTasks[CreateTask(SlotMachineDummyTask, 0xFF)]; - task->data[0] = slotMachineIndex; - StoreWordInTwoHalfwords(&task->data[1], (intptr_t)exitCallback); + task->tMachineId = machineId; + StoreWordInTwoHalfwords(&task->tExitCallback, (intptr_t)exitCallback); } - -static void SlotMachineInitDummyTask(void) +// Extracts and assigns machineId and exit callback from task. +static void SlotMachine_InitFromTask(void) { struct Task *task = &gTasks[FindTaskIdByFunc(SlotMachineDummyTask)]; - sSlotMachine->machineId = task->data[0]; - LoadWordFromTwoHalfwords((u16 *)&task->data[1], (u32 *)&sSlotMachine->prevMainCb); + sSlotMachine->machineId = task->tMachineId; + LoadWordFromTwoHalfwords((u16 *)&task->tExitCallback, (u32 *)&sSlotMachine->prevMainCb); } static void SlotMachineDummyTask(u8 taskId) { } +#undef tMachineId +#undef tExitCallback + static void SlotMachineSetup_InitBgsWindows(void) { SetVBlankCallback(NULL); @@ -1048,25 +1182,25 @@ static void SlotMachineSetup_InitGpuRegs(void) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(9, 8)); } -// set up initial state of slot machine -static void SlotMachineSetup_InitSlotMachineStruct(void) +// Set up initial state of slot machine +static void InitSlotMachine(void) { u8 i; - SlotMachineInitDummyTask(); // assigns sSlotMachine->machineId, etc. - sSlotMachine->state = 0; - sSlotMachine->pikaPower = 0; + SlotMachine_InitFromTask(); + sSlotMachine->state = SLOTTASK_UNFADE; + sSlotMachine->pikaPowerBolts = 0; sSlotMachine->luckyGame = Random() & 1; - sSlotMachine->luckyFlags = 0; - sSlotMachine->matchedSymbols = 0; + sSlotMachine->machineBias = 0; + sSlotMachine->matches = 0; sSlotMachine->reelTimeSpinsLeft = 0; sSlotMachine->reelTimeSpinsUsed = 0; sSlotMachine->coins = GetCoins(); sSlotMachine->payout = 0; sSlotMachine->netCoinLoss = 0; sSlotMachine->bet = 0; - sSlotMachine->currReel = 0; - sSlotMachine->reelIncrement = 8; + sSlotMachine->currentReel = LEFT_REEL; + sSlotMachine->reelSpeed = REEL_NORMAL_SPEED; sSlotMachine->win0h = DISPLAY_WIDTH; sSlotMachine->win0v = DISPLAY_HEIGHT; sSlotMachine->winIn = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR; @@ -1075,10 +1209,10 @@ static void SlotMachineSetup_InitSlotMachineStruct(void) for (i = 0; i < NUM_REELS; i++) { - sSlotMachine->reelPixelOffsetsWhileStopping[i] = 0; + sSlotMachine->reelShockOffsets[i] = 0; sSlotMachine->reelPositions[i] = sInitialReelPositions[i][sSlotMachine->luckyGame] % SYMBOLS_PER_REEL; - sSlotMachine->reelPixelOffsets[i] = SYMBOLS_PER_REEL * REEL_SYMBOL_HEIGHT - sSlotMachine->reelPositions[i] * REEL_SYMBOL_HEIGHT; - sSlotMachine->reelPixelOffsets[i] %= SYMBOLS_PER_REEL * REEL_SYMBOL_HEIGHT; + sSlotMachine->reelPixelOffsets[i] = REEL_HEIGHT - sSlotMachine->reelPositions[i] * REEL_SYMBOL_HEIGHT; + sSlotMachine->reelPixelOffsets[i] %= REEL_HEIGHT; } AlertTVThatPlayerPlayedSlotMachine(GetCoins()); } @@ -1129,89 +1263,92 @@ static void CreateSlotMachineSprites(void) static void CreateGameplayTasks(void) { CreatePikaPowerBoltTask(); - CreateSlotReelTasks(); + CreateReelTasks(); CreateDigitalDisplayTask(); - CreateSlotMachineTask(); + CreateSlotMachineTasks(); } -static void CreateSlotMachineTask(void) +static void CreateSlotMachineTasks(void) { Task_SlotMachine(CreateTask(Task_SlotMachine, 0)); } -// task->data[0] is a timer static void Task_SlotMachine(u8 taskId) { - while (sSlotActions[sSlotMachine->state](&gTasks[taskId])) + while (sSlotTasks[sSlotMachine->state](&gTasks[taskId])) ; } -// SLOT_ACTION_UNFADE -static bool8 SlotAction_UnfadeScreen(struct Task *task) +#define tTimer data[0] +#define tTimer2 data[1] + +// SLOTTASK_UNFADE +static bool8 SlotTask_UnfadeScreen(struct Task *task) { BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB(0, 0, 0)); - LoadPikaPowerMeter(sSlotMachine->pikaPower); - sSlotMachine->state++; // SLOT_ACTION_WAIT_FADE + LoadPikaPowerMeter(sSlotMachine->pikaPowerBolts); + sSlotMachine->state++; // SLOTTASK_WAIT_FADE return FALSE; } -// SLOT_ACTION_WAIT_FADE -static bool8 SlotAction_WaitForUnfade(struct Task *task) +// SLOTTASK_WAIT_FADE +static bool8 SlotTask_WaitUnfade(struct Task *task) { if (!gPaletteFade.active) sSlotMachine->state++; return FALSE; } -// SLOT_ACTION_READY_NEW_SPIN -static bool8 SlotAction_ReadyNewSpin(struct Task *task) +// SLOTTASK_READY_NEW_SPIN +static bool8 SlotTask_ReadyNewSpin(struct Task *task) { sSlotMachine->payout = 0; sSlotMachine->bet = 0; - sSlotMachine->currReel = 0; - sSlotMachine->luckyFlags &= (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); - sSlotMachine->state = SLOT_ACTION_ASK_INSERT_BET; + sSlotMachine->currentReel = LEFT_REEL; + sSlotMachine->machineBias &= (BIAS_STRAIGHT_7 | BIAS_MIXED_7); + sSlotMachine->state = SLOTTASK_ASK_INSERT_BET; if (sSlotMachine->coins <= 0) { - sSlotMachine->state = SLOT_ACTION_MSG_NO_MORE_COINS; + sSlotMachine->state = SLOTTASK_MSG_NO_MORE_COINS; } else if (sSlotMachine->reelTimeSpinsLeft) { - sSlotMachine->state = SLOT_ACTION_READY_NEW_RT_SPIN; + sSlotMachine->state = SLOTTASK_READY_NEW_RT_SPIN; CreateDigitalDisplayScene(DIG_DISPLAY_REEL_TIME); } return TRUE; } -// SLOT_ACTION_READY_NEW_RT_SPIN -static bool8 SlotAction_ReadyNewReelTimeSpin(struct Task *task) +// SLOTTASK_READY_NEW_RT_SPIN +static bool8 SlotTask_ReadyNewReelTimeSpin(struct Task *task) { if (IsDigitalDisplayAnimFinished()) - sSlotMachine->state = SLOT_ACTION_ASK_INSERT_BET; + sSlotMachine->state = SLOTTASK_ASK_INSERT_BET; return FALSE; } -// SLOT_ACTION_ASK_INSERT_BET -static bool8 SlotAction_AskInsertBet(struct Task *task) +// SLOTTASK_ASK_INSERT_BET +static bool8 SlotTask_AskInsertBet(struct Task *task) { CreateDigitalDisplayScene(DIG_DISPLAY_INSERT_BET); - sSlotMachine->state = SLOT_ACTION_BET_INPUT; + sSlotMachine->state = SLOTTASK_BET_INPUT; if (sSlotMachine->coins >= MAX_COINS) - sSlotMachine->state = SLOT_ACTION_MSG_MAX_COINS; + sSlotMachine->state = SLOTTASK_MSG_MAX_COINS; return TRUE; } -// SLOT_ACTION_BET_INPUT -static bool8 SlotAction_HandleBetInput(struct Task *task) +// SLOTTASK_BET_INPUT +static bool8 SlotTask_HandleBetInput(struct Task *task) { s16 i; if (JOY_NEW(SELECT_BUTTON)) { OpenInfoBox(DIG_DISPLAY_INSERT_BET); - sSlotMachine->state = SLOT_ACTION_WAIT_INFO_BOX; + sSlotMachine->state = SLOTTASK_WAIT_INFO_BOX; } - else if (JOY_NEW(R_BUTTON)) // bet the max amount + // Try to bet the max amount + else if (JOY_NEW(R_BUTTON)) { if (sSlotMachine->coins - (MAX_BET - sSlotMachine->bet) >= 0) { @@ -1219,12 +1356,13 @@ static bool8 SlotAction_HandleBetInput(struct Task *task) LightenBetTiles(i); sSlotMachine->coins -= (MAX_BET - sSlotMachine->bet); sSlotMachine->bet = MAX_BET; - sSlotMachine->state = SLOT_ACTION_START_SPIN; + sSlotMachine->state = SLOTTASK_START_SPIN; PlaySE(SE_SHOP); } - else // you didn't have enough coins to bet the max + // Not enough coins + else { - sSlotMachine->state = SLOT_ACTION_MSG_NEED_3_COINS; + sSlotMachine->state = SLOTTASK_MSG_NEED_3_COINS; } } else @@ -1240,48 +1378,48 @@ static bool8 SlotAction_HandleBetInput(struct Task *task) // Maxed bet or finished betting if (sSlotMachine->bet >= MAX_BET || (sSlotMachine->bet != 0 && JOY_NEW(A_BUTTON))) - sSlotMachine->state = SLOT_ACTION_START_SPIN; + sSlotMachine->state = SLOTTASK_START_SPIN; // Quit prompt if (JOY_NEW(B_BUTTON)) - sSlotMachine->state = SLOT_ACTION_ASK_QUIT; + sSlotMachine->state = SLOTTASK_ASK_QUIT; } return FALSE; } -// SLOT_ACTION_NEED_3_COINS -static bool8 SlotAction_PrintMsg_Need3Coins(struct Task *task) +// SLOTTASK_MSG_NEED_3_COINS +static bool8 SlotTask_PrintMsg_Need3Coins(struct Task *task) { DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, FONT_NORMAL, gText_YouDontHaveThreeCoins, 0, 1, 0, 0); CopyWindowToVram(0, COPYWIN_FULL); - sSlotMachine->state = SLOT_ACTION_WAIT_MSG_NEED_3_COINS; + sSlotMachine->state = SLOTTASK_WAIT_MSG_NEED_3_COINS; return FALSE; } -// SLOT_ACTION_WAIT_MSG_NEED_3_COINS -static bool8 SlotAction_WaitMsg_Need3Coins(struct Task *task) +// SLOTTASK_WAIT_MSG_NEED_3_COINS +static bool8 SlotTask_WaitMsg_Need3Coins(struct Task *task) { if (JOY_NEW(A_BUTTON | B_BUTTON)) { ClearDialogWindowAndFrame(0, TRUE); - sSlotMachine->state = SLOT_ACTION_BET_INPUT; + sSlotMachine->state = SLOTTASK_BET_INPUT; } return FALSE; } -// SLOT_ACTION_WAIT_INFO_BOX -static bool8 SlotAction_WaitForInfoBox(struct Task *task) +// SLOTTASK_WAIT_INFO_BOX +static bool8 SlotTask_WaitInfoBox(struct Task *task) { if (IsInfoBoxClosed()) - sSlotMachine->state = SLOT_ACTION_BET_INPUT; + sSlotMachine->state = SLOTTASK_BET_INPUT; return FALSE; } -// SLOT_ACTION_START_SPIN -static bool8 SlotAction_StartSpin(struct Task *task) +// SLOTTASK_START_SPIN +static bool8 SlotTask_StartSpin(struct Task *task) { - DrawLuckyFlags(); + DrawMachineBias(); DestroyDigitalDisplayScene(); SpinSlotReel(LEFT_REEL); @@ -1290,79 +1428,79 @@ static bool8 SlotAction_StartSpin(struct Task *task) IncrementDailySlotsUses(); - task->data[0] = 0; - if (sSlotMachine->luckyFlags & LUCKY_BIAS_REELTIME) + task->tTimer = 0; + if (sSlotMachine->machineBias & BIAS_REELTIME) { BeginReelTime(); - sSlotMachine->state = SLOT_ACTION_START_RT_SPIN; + sSlotMachine->state = SLOTTASK_START_RT_SPIN; } else { CreateDigitalDisplayScene(DIG_DISPLAY_STOP_REEL); - sSlotMachine->state = SLOT_ACTION_SET_LUCKY_SPINS; + sSlotMachine->state = SLOTTASK_RESET_BIAS_FAILURE; } - sSlotMachine->reelIncrement = 8; + sSlotMachine->reelSpeed = REEL_NORMAL_SPEED; if (sSlotMachine->reelTimeSpinsLeft) - sSlotMachine->reelIncrement = SlowReelSpeed(); + sSlotMachine->reelSpeed = ReelTimeSpeed(); return FALSE; } -// SLOT_ACTION_START_RT_SPIN -static bool8 SlotAction_StartReelTimeSpin(struct Task *task) +// SLOTTASK_START_RT_SPIN +static bool8 SlotTask_StartReelTimeSpin(struct Task *task) { if (IsReelTimeTaskDone()) { CreateDigitalDisplayScene(DIG_DISPLAY_STOP_REEL); - sSlotMachine->luckyFlags &= ~LUCKY_BIAS_REELTIME; - sSlotMachine->state = SLOT_ACTION_SET_LUCKY_SPINS; + sSlotMachine->machineBias &= ~BIAS_REELTIME; + sSlotMachine->state = SLOTTASK_RESET_BIAS_FAILURE; } return FALSE; } -// SLOT_ACTION_SET_LUCKY_SPINS -static bool8 SlotAction_SetLuckySpins(struct Task *task) +// SLOTTASK_RESET_BIAS_FAILURE +static bool8 SlotTask_ResetBiasFailure(struct Task *task) { - if (++task->data[0] >= 30) + if (++task->tTimer >= 30) { - SetLuckySpins(); - sSlotMachine->state = SLOT_ACTION_AWAIT_REEL_STOP; + ResetBiasFailure(); + sSlotMachine->state = SLOTTASK_WAIT_REEL_STOP; } return FALSE; } -// SLOT_ACTION_AWAIT_REEL_STOP -static bool8 SlotAction_AwaitReelStop(struct Task *task) +// SLOTTASK_WAIT_REEL_STOP +static bool8 SlotTask_WaitReelStop(struct Task *task) { if (JOY_NEW(A_BUTTON)) { PlaySE(SE_CONTEST_PLACE); - StopSlotReel(sSlotMachine->currReel); - PressStopReelButton(sSlotMachine->currReel); - sSlotMachine->state = SLOT_ACTION_AWAIT_ALL_REELS_STOP; + StopSlotReel(sSlotMachine->currentReel); + PressStopReelButton(sSlotMachine->currentReel); + sSlotMachine->state = SLOTTASK_WAIT_ALL_REELS_STOP; } return FALSE; } -// SLOT_ACTION_AWAIT_ALL_REELS_STOP -static bool8 SlotAction_WaitForAllReelsToStop(struct Task *task) +// SLOTTASK_WAIT_ALL_REELS_STOP +static bool8 SlotTask_WaitAllReelsStop(struct Task *task) { - if (!IsSlotReelMoving(sSlotMachine->currReel)) + if (!IsSlotReelMoving(sSlotMachine->currentReel)) { - sSlotMachine->currReel++; - sSlotMachine->state = SLOT_ACTION_AWAIT_REEL_STOP; - if (sSlotMachine->currReel >= NUM_REELS) + sSlotMachine->currentReel++; + sSlotMachine->state = SLOTTASK_WAIT_REEL_STOP; + if (sSlotMachine->currentReel >= NUM_REELS) { - sSlotMachine->state = SLOT_ACTION_CHECK_MATCHES; + sSlotMachine->state = SLOTTASK_CHECK_MATCHES; } return TRUE; } return FALSE; } -// SLOT_ACTION_CHECK_MATCHES -static bool8 SlotAction_CheckMatches(struct Task *task) +// SLOTTASK_CHECK_MATCHES +static bool8 SlotTask_CheckMatches(struct Task *task) { - sSlotMachine->luckyFlags &= (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); + sSlotMachine->machineBias &= (BIAS_STRAIGHT_7 | BIAS_MIXED_7); CheckMatch(); if (sSlotMachine->reelTimeSpinsLeft) { @@ -1370,21 +1508,21 @@ static bool8 SlotAction_CheckMatches(struct Task *task) sSlotMachine->reelTimeSpinsUsed++; } - if (sSlotMachine->matchedSymbols) + if (sSlotMachine->matches) { - sSlotMachine->state = SLOT_ACTION_WAIT_PAYOUT; + sSlotMachine->state = SLOTTASK_WAIT_PAYOUT; AwardPayout(); FlashSlotMachineLights(); if ((sSlotMachine->netCoinLoss -= sSlotMachine->payout) < 0) { sSlotMachine->netCoinLoss = 0; } - if (sSlotMachine->matchedSymbols & ((1 << MATCHED_777_BLUE) | (1 << MATCHED_777_RED))) + if (sSlotMachine->matches & ((1 << MATCH_BLUE_7) | (1 << MATCH_RED_7))) { PlayFanfare(MUS_SLOTS_JACKPOT); CreateDigitalDisplayScene(DIG_DISPLAY_BONUS_BIG); } - else if (sSlotMachine->matchedSymbols & (1 << MATCHED_777_MIXED)) + else if (sSlotMachine->matches & (1 << MATCH_MIXED_7)) { PlayFanfare(MUS_SLOTS_JACKPOT); CreateDigitalDisplayScene(DIG_DISPLAY_BONUS_REG); @@ -1394,212 +1532,212 @@ static bool8 SlotAction_CheckMatches(struct Task *task) PlayFanfare(MUS_SLOTS_WIN); CreateDigitalDisplayScene(DIG_DISPLAY_WIN); } - // if you matched 777... - if (sSlotMachine->matchedSymbols & ((1 << MATCHED_777_MIXED) | (1 << MATCHED_777_BLUE) | (1 << MATCHED_777_RED))) + + if (sSlotMachine->matches & ((1 << MATCH_MIXED_7) | (1 << MATCH_BLUE_7) | (1 << MATCH_RED_7))) { - sSlotMachine->luckyFlags &= ~(LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); - if (sSlotMachine->matchedSymbols & ((1 << MATCHED_777_BLUE) | (1 << MATCHED_777_RED))) + sSlotMachine->machineBias &= ~(BIAS_STRAIGHT_7 | BIAS_MIXED_7); + if (sSlotMachine->matches & ((1 << MATCH_BLUE_7) | (1 << MATCH_RED_7))) { + // ReelTime ends if it was ongoing sSlotMachine->reelTimeSpinsLeft = 0; sSlotMachine->reelTimeSpinsUsed = 0; sSlotMachine->luckyGame = FALSE; - if (sSlotMachine->matchedSymbols & (1 << MATCHED_777_BLUE)) - // this may be an error, but if you get blue 777, the game becomes lucky + if (sSlotMachine->matches & (1 << MATCH_BLUE_7)) sSlotMachine->luckyGame = TRUE; } } - if (sSlotMachine->matchedSymbols & (1 << MATCHED_POWER) && sSlotMachine->pikaPower < 16) + if (sSlotMachine->matches & (1 << MATCH_POWER) && sSlotMachine->pikaPowerBolts < 16) { - sSlotMachine->pikaPower++; - AddPikaPowerBolt(sSlotMachine->pikaPower); + sSlotMachine->pikaPowerBolts++; + AddPikaPowerBolt(sSlotMachine->pikaPowerBolts); } } else { CreateDigitalDisplayScene(DIG_DISPLAY_LOSE); - sSlotMachine->state = SLOT_ACTION_NO_MATCHES; + sSlotMachine->state = SLOTTASK_NO_MATCHES; if ((sSlotMachine->netCoinLoss += sSlotMachine->bet) > MAX_COINS) sSlotMachine->netCoinLoss = MAX_COINS; } return FALSE; } -// SLOT_ACTION_WAIT_PAYOUT -static bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task) +// SLOTTASK_WAIT_PAYOUT +static bool8 SlotTask_WaitPayout(struct Task *task) { - if (IsFinalTask_RunAwardPayoutActions()) - sSlotMachine->state = SLOT_ACTION_END_PAYOUT; + if (IsFinalTask_Task_Payout()) + sSlotMachine->state = SLOTTASK_END_PAYOUT; return FALSE; } -// SLOT_ACTION_END_PAYOUT -static bool8 SlotAction_EndPayout(struct Task *task) +// SLOTTASK_END_PAYOUT +static bool8 SlotTask_EndPayout(struct Task *task) { if (TryStopSlotMachineLights()) { - sSlotMachine->state = SLOT_ACTION_RESET_BET_TILES; + sSlotMachine->state = SLOTTASK_RESET_BET_TILES; - if (sSlotMachine->matchedSymbols & ((1 << MATCHED_777_RED) | (1 << MATCHED_777_BLUE))) + if (sSlotMachine->matches & ((1 << MATCH_RED_7) | (1 << MATCH_BLUE_7))) IncrementGameStat(GAME_STAT_SLOT_JACKPOTS); - if (sSlotMachine->matchedSymbols & (1 << MATCHED_REPLAY)) + if (sSlotMachine->matches & (1 << MATCH_REPLAY)) { - sSlotMachine->currReel = 0; - sSlotMachine->state = SLOT_ACTION_START_SPIN; + sSlotMachine->currentReel = LEFT_REEL; + sSlotMachine->state = SLOTTASK_START_SPIN; } - if (sSlotMachine->matchedSymbols & (1 << MATCHED_POWER)) - sSlotMachine->state = SLOT_ACTION_MATCHED_POWER; + if (sSlotMachine->matches & (1 << MATCH_POWER)) + sSlotMachine->state = SLOTTASK_MATCHED_POWER; - if (sSlotMachine->reelTimeSpinsLeft && sSlotMachine->matchedSymbols & (1 << MATCHED_REPLAY)) + if (sSlotMachine->reelTimeSpinsLeft && sSlotMachine->matches & (1 << MATCH_REPLAY)) { CreateDigitalDisplayScene(DIG_DISPLAY_REEL_TIME); - sSlotMachine->state = SLOT_ACTION_WAIT_RT_ANIM; + sSlotMachine->state = SLOTTASK_WAIT_RT_ANIM; } } return FALSE; } -// SLOT_ACTION_MATCHED_POWER -static bool8 SlotAction_MatchedPower(struct Task *task) +// SLOTTASK_MATCHED_POWER +static bool8 SlotTask_MatchedPower(struct Task *task) { if (!IsPikaPowerBoltAnimating()) { - sSlotMachine->state = SLOT_ACTION_RESET_BET_TILES; - if (sSlotMachine->matchedSymbols & (1 << MATCHED_REPLAY)) + sSlotMachine->state = SLOTTASK_RESET_BET_TILES; + if (sSlotMachine->matches & (1 << MATCH_REPLAY)) { - sSlotMachine->state = SLOT_ACTION_START_SPIN; + sSlotMachine->state = SLOTTASK_START_SPIN; if (sSlotMachine->reelTimeSpinsLeft) { CreateDigitalDisplayScene(DIG_DISPLAY_REEL_TIME); - sSlotMachine->state = SLOT_ACTION_WAIT_RT_ANIM; + sSlotMachine->state = SLOTTASK_WAIT_RT_ANIM; } } } return FALSE; } -// SLOT_ACTION_WAIT_RT_ANIM -static bool8 SlotAction_WaitReelTimeAnim(struct Task *task) +// SLOTTASK_WAIT_RT_ANIM +static bool8 SlotTask_WaitReelTimeAnim(struct Task *task) { if (IsDigitalDisplayAnimFinished()) { - sSlotMachine->state = SLOT_ACTION_RESET_BET_TILES; - if (sSlotMachine->matchedSymbols & (1 << MATCHED_REPLAY)) + sSlotMachine->state = SLOTTASK_RESET_BET_TILES; + if (sSlotMachine->matches & (1 << MATCH_REPLAY)) { - sSlotMachine->state = SLOT_ACTION_START_SPIN; + sSlotMachine->state = SLOTTASK_START_SPIN; } } return FALSE; } -// SLOT_ACTION_RESET_BET_TILES -static bool8 SlotAction_ResetBetTiles(struct Task *task) +// SLOTTASK_RESET_BET_TILES +static bool8 SlotTask_ResetBetTiles(struct Task *task) { DarkenBetTiles(0); DarkenBetTiles(1); DarkenBetTiles(2); - sSlotMachine->state = SLOT_ACTION_READY_NEW_SPIN; + sSlotMachine->state = SLOTTASK_READY_NEW_SPIN; return FALSE; } -// SLOT_ACTION_NO_MATCHES -static bool8 SlotAction_NoMatches(struct Task *task) +// SLOTTASK_NO_MATCHES +static bool8 SlotTask_NoMatches(struct Task *task) { - if (++task->data[1] > 64) + if (++task->tTimer2 > 64) { - task->data[1] = 0; - sSlotMachine->state = SLOT_ACTION_RESET_BET_TILES; + task->tTimer2 = 0; + sSlotMachine->state = SLOTTASK_RESET_BET_TILES; } return FALSE; } -// SLOT_ACTION_ASK_QUIT -static bool8 SlotAction_AskQuit(struct Task *task) +// SLOTTASK_ASK_QUIT +static bool8 SlotTask_AskQuit(struct Task *task) { DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, FONT_NORMAL, gText_QuitTheGame, 0, 1, 0, 0); CopyWindowToVram(0, COPYWIN_FULL); CreateYesNoMenuParameterized(0x15, 7, 0x214, 0x180, 0xE, 0xF); - sSlotMachine->state = SLOT_ACTION_HANDLE_QUIT_INPUT; + sSlotMachine->state = SLOTTASK_HANDLE_QUIT_INPUT; return FALSE; } -// SLOT_ACTION_HANDLE_QUIT_INPUT -static bool8 SlotAction_HandleQuitInput(struct Task *task) +// SLOTTASK_HANDLE_QUIT_INPUT +static bool8 SlotTask_HandleQuitInput(struct Task *task) { s8 input = Menu_ProcessInputNoWrapClearOnChoose(); - if (input == 0) // player chooses to quit + if (input == 0) // Chose to quit { ClearDialogWindowAndFrame(0, TRUE); DarkenBetTiles(0); DarkenBetTiles(1); DarkenBetTiles(2); sSlotMachine->coins += sSlotMachine->bet; - sSlotMachine->state = SLOT_ACTION_END; + sSlotMachine->state = SLOTTASK_END; } - else if (input == 1 || input == -1) // player chooses not to quit + else if (input == 1 || input == -1) // Chose not to quit { ClearDialogWindowAndFrame(0, TRUE); - sSlotMachine->state = SLOT_ACTION_BET_INPUT; + sSlotMachine->state = SLOTTASK_BET_INPUT; } return FALSE; } -// SLOT_ACTION_MSG_MAX_COINS -static bool8 SlotAction_PrintMsg_9999Coins(struct Task *task) +// SLOTTASK_MSG_MAX_COINS +static bool8 SlotTask_PrintMsg_MaxCoins(struct Task *task) { DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, FONT_NORMAL, gText_YouveGot9999Coins, 0, 1, 0, 0); CopyWindowToVram(0, COPYWIN_FULL); - sSlotMachine->state = SLOT_ACTION_WAIT_MSG_MAX_COINS; + sSlotMachine->state = SLOTTASK_WAIT_MSG_MAX_COINS; return FALSE; } -// SLOT_ACTION_WAIT_MSG_MAX_COINS -static bool8 SlotAction_WaitMsg_9999Coins(struct Task *task) +// SLOTTASK_WAIT_MSG_MAX_COINS +static bool8 SlotTask_WaitMsg_MaxCoins(struct Task *task) { if (JOY_NEW(A_BUTTON | B_BUTTON)) { ClearDialogWindowAndFrame(0, TRUE); - sSlotMachine->state = SLOT_ACTION_BET_INPUT; + sSlotMachine->state = SLOTTASK_BET_INPUT; } return FALSE; } -// SLOT_ACTION_MSG_NO_MORE_COINS -static bool8 SlotAction_PrintMsg_NoMoreCoins(struct Task *task) +// SLOTTASK_MSG_NO_MORE_COINS +static bool8 SlotTask_PrintMsg_NoMoreCoins(struct Task *task) { DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, FONT_NORMAL, gText_YouveRunOutOfCoins, 0, 1, 0, 0); CopyWindowToVram(0, COPYWIN_FULL); - sSlotMachine->state = SLOT_ACTION_WAIT_MSG_NO_MORE_COINS; + sSlotMachine->state = SLOTTASK_WAIT_MSG_NO_MORE_COINS; return FALSE; } -// SLOT_ACTION_WAIT_MSG_NO_MORE_COINS -static bool8 SlotAction_WaitMsg_NoMoreCoins(struct Task *task) +// SLOTTASK_WAIT_MSG_NO_MORE_COINS +static bool8 SlotTask_WaitMsg_NoMoreCoins(struct Task *task) { if (JOY_NEW(A_BUTTON | B_BUTTON)) { ClearDialogWindowAndFrame(0, TRUE); - sSlotMachine->state = SLOT_ACTION_END; + sSlotMachine->state = SLOTTASK_END; } return FALSE; } -// SLOT_ACTION_END -static bool8 SlotAction_EndGame(struct Task *task) +// SLOTTASK_END +static bool8 SlotTask_EndGame(struct Task *task) { SetCoins(sSlotMachine->coins); TryPutFindThatGamerOnAir(GetCoins()); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB(0, 0, 0)); - sSlotMachine->state++; // SLOT_ACTION_FREE + sSlotMachine->state++; // SLOTTASK_FREE return FALSE; } -// SLOT_ACTION_FREE -static bool8 SlotAction_FreeDataStructures(struct Task *task) +// SLOTTASK_FREE +static bool8 SlotTask_FreeDataStructures(struct Task *task) { if (!gPaletteFade.active) { @@ -1640,97 +1778,122 @@ static bool8 SlotAction_FreeDataStructures(struct Task *task) return FALSE; } -static void DrawLuckyFlags(void) +# undef tTimer +# undef tTimer2 + +// Determine the biases for this round. There can be at most two biases, one of +// which would need to be a ReelTime bias. +// +// HOW IT WORKS: +// If the machine is already biased toward 7's, keep this bias. +// +// Otherwise, there are up to three draws. You first draw to see if you'll get +// to draw a Special bias. If so, then you draw for the Special bias (and can +// still potentially miss). +// +// If you didn't get to draw a Special bias, missed a Special bias, or drew a +// ReelTime bias, then you can still try to draw a Regular bias. +static void DrawMachineBias(void) { - u8 attempts; + u8 whichBias; if (sSlotMachine->reelTimeSpinsLeft == 0) { - if (!(sSlotMachine->luckyFlags & (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777))) + if (!(sSlotMachine->machineBias & (BIAS_STRAIGHT_7 | BIAS_MIXED_7))) { - if (IsThisRoundLucky()) + if (ShouldTrySpecialBias()) { - attempts = AttemptsAtLuckyFlags_Top3(); - if (attempts != 3) // if you found a lucky number + whichBias = TrySelectBias_Special(); + if (whichBias != ARRAY_COUNT(sBiasesSpecial)) // A bias was selected { - // attempts == 1: reelTime flag set - sSlotMachine->luckyFlags |= sLuckyFlagSettings_Top3[attempts]; - if (attempts != 1) - { - return; - } + sSlotMachine->machineBias |= sBiasesSpecial[whichBias]; + + // ReelTime was not selected; don't add other biases + if (whichBias != 1) return; } } - // if it's not a lucky round or you got reel time, roll for the lower lucky flags - attempts = AttemptsAtLuckyFlags_NotTop3(); - if (attempts != 5) // if you found a lucky number - { - sSlotMachine->luckyFlags |= sLuckyFlagSettings_NotTop3[attempts]; - } + + whichBias = TrySelectBias_Regular(); + if (whichBias != ARRAY_COUNT(sBiasesRegular)) // A bias was selected + sSlotMachine->machineBias |= sBiasesRegular[whichBias]; } } } -static void SetLuckySpins(void) +// Reset `didNotFailBias` to match `machineBias`. +static void ResetBiasFailure(void) { - sSlotMachine->isLuckySpin = FALSE; - if (sSlotMachine->luckyFlags) - sSlotMachine->isLuckySpin = TRUE; + sSlotMachine->didNotFailBias = FALSE; + if (sSlotMachine->machineBias) + sSlotMachine->didNotFailBias = TRUE; } -static u8 GetBiasTag(u8 luckyFlags) +// See sBiasSymbols for each bias's corresponding symbol. +static u8 GetBiasSymbol(u8 machineBias) { u8 i; for (i = 0; i < 8; i++) { - if (luckyFlags & 1) - return sBiasTags[i]; - luckyFlags >>= 1; + if (machineBias & 1) + return sBiasSymbols[i]; + machineBias >>= 1; } return 0; } -// you have way more luck betting 3 coins than anything lower -static bool8 IsThisRoundLucky(void) +// Decides whether you will be given the opportunity to draw for a Special bias. +// Depends on your bet and the machine you're using. +// +// The probability of getting to draw a Special is miniscule if you don't bet 3 +// coins: barely 1% even on the luckiest machine. +// +// The odds increase to roughly ~5% if you bet 3 coins. +static bool8 ShouldTrySpecialBias(void) { u8 rval = Random(); - if (sLuckyRoundProbabilities[sSlotMachine->machineId][sSlotMachine->bet - 1] > rval) + if (sSpecialDrawOdds[sSlotMachine->machineId][sSlotMachine->bet - 1] > rval) return TRUE; return FALSE; } -static u8 AttemptsAtLuckyFlags_Top3(void) +// Draws for a Special bias. Note that even when you're given the opportunity to +// draw a Special bias, you can still miss. +// +// On the luckiest machine, there's a 61% chance of drawing no Special bias. On +// the unluckiest, a 73% chance. +static u8 TrySelectBias_Special(void) { - s16 count; + s16 whichBias; - for (count = 0; count < 3; count++) + for (whichBias = 0; whichBias < (int)ARRAY_COUNT(sBiasesSpecial); whichBias++) { s16 rval = Random() & 0xff; - s16 value = sLuckyFlagProbabilities_Top3[count][sSlotMachine->machineId]; + s16 value = sBiasProbabilities_Special[whichBias][sSlotMachine->machineId]; if (value > rval) break; } - return count; + return whichBias; } -static u8 AttemptsAtLuckyFlags_NotTop3(void) +static u8 TrySelectBias_Regular(void) { - s16 count; + s16 whichBias; - for (count = 0; count < 5; count++) + for (whichBias = 0; whichBias < (int)ARRAY_COUNT(sBiasesRegular); whichBias++) { - s16 rval = Random() & 0xff; // random byte - s16 value = sLuckyFlagProbabilities_NotTop3[count][sSlotMachine->machineId]; - // make first attempt easier if it's a lucky game - if (count == 0 && sSlotMachine->luckyGame == TRUE) + s16 rval = Random() & 0xff; + s16 value = sBiasProbabilities_Regular[whichBias][sSlotMachine->machineId]; + + // Boost odds of BIAS_POWER if it's a lucky game. + if (whichBias == 0 && sSlotMachine->luckyGame == TRUE) { value += 10; if (value > 0x100) value = 0x100; } - // make last attempt harder if it's a lucky game - else if (count == 4 && sSlotMachine->luckyGame == TRUE) + // Reduce odds of BIAS_REPLAY if it's a lucky game + else if (whichBias == 4 && sSlotMachine->luckyGame == TRUE) { value -= 10; if (value < 0) @@ -1739,45 +1902,60 @@ static u8 AttemptsAtLuckyFlags_NotTop3(void) if (value > rval) break; } - return count; + return whichBias; } -static u8 GetReelTimeProbability(u8 reelTimeDraw) +// Return the probability of drawing the given number of ReelTime spins. +// +// This depends on whether it is a lucky game and the number of Power bolts you +// have collected. +static u8 GetReelTimeSpinProbability(u8 spins) { if (sSlotMachine->luckyGame == FALSE) - return sReeltimeProbabilities_UnluckyGame[reelTimeDraw][sSlotMachine->pikaPower]; + return sReelTimeProbabilities_NormalGame[spins][sSlotMachine->pikaPowerBolts]; else - return sReelTimeProbabilities_LuckyGame[reelTimeDraw][sSlotMachine->pikaPower]; + return sReelTimeProbabilities_LuckyGame[spins][sSlotMachine->pikaPowerBolts]; } -static void GetReeltimeDraw(void) +// The way this is computed skews the odds much more toward drawing a 0 than +// intended. It initially checks whether you draw a 0 (using the intended +// probability). It then tries to draw positive values, but if these draws all +// miss, you'll still draw a 0. +// +// As a result, even when the power gauge is maxed out, you still have a ~30% +// chance of drawing 0 spins. See sReelTimeProbabilities for more details. +// +// Drawing a random number via a cumulative pdf would have prevented this. +static void GetReelTimeDraw(void) { u8 rval; - s16 reelTimeDraw; + s16 spins; sSlotMachine->reelTimeDraw = 0; rval = Random(); - if (rval < GetReelTimeProbability(0)) + if (rval < GetReelTimeSpinProbability(0)) return; - for (reelTimeDraw = 5; reelTimeDraw > 0; reelTimeDraw--) + for (spins = 5; spins > 0; spins--) { rval = Random(); - if (rval < GetReelTimeProbability(reelTimeDraw)) + if (rval < GetReelTimeSpinProbability(spins)) break; } - sSlotMachine->reelTimeDraw = reelTimeDraw; + sSlotMachine->reelTimeDraw = spins; } -static bool8 ShouldReelTimeMachineExplode(u16 i) +// Returns true if the ReelTime machine should explode. Each time we check, +// the odds of explosion increase. +static bool8 ShouldReelTimeMachineExplode(u16 check) { u16 rval = Random() & 0xff; - if (rval < sReelTimeExplodeProbability[i]) + if (rval < sReelTimeExplodeProbability[check]) return TRUE; else return FALSE; } -static u16 SlowReelSpeed(void) +static u16 ReelTimeSpeed(void) { u8 i = 0; u8 rval; @@ -1790,20 +1968,23 @@ static u16 SlowReelSpeed(void) i = 2; else if (sSlotMachine->netCoinLoss >= 150) i = 1; + rval = Random() % 100; - value = sReelIncrementTable[i][0]; + value = sReelTimeSpeed_Probabilities[i][0]; if (rval < value) - return 4; + return REEL_HALF_SPEED; + rval = Random() % 100; - value = sReelIncrementTable[i][1] + sReelTimeBonusIncrementTable[sSlotMachine->reelTimeSpinsUsed]; + value = sReelTimeSpeed_Probabilities[i][1] + sQuarterSpeed_ProbabilityBoost[sSlotMachine->reelTimeSpinsUsed]; if (rval < value) - return 2; - return 8; + return REEL_QUARTER_SPEED; + + return REEL_NORMAL_SPEED; } static void CheckMatch(void) { - sSlotMachine->matchedSymbols = 0; + sSlotMachine->matches = 0; CheckMatch_CenterRow(); if (sSlotMachine->bet > 1) CheckMatch_TopAndBottom(); @@ -1813,140 +1994,146 @@ static void CheckMatch(void) static void CheckMatch_CenterRow(void) { - u8 c1, c2, c3, match; + u8 sym1, sym2, sym3, match; - c1 = GetTagAtRest(LEFT_REEL, 2); - c2 = GetTagAtRest(MIDDLE_REEL, 2); - c3 = GetTagAtRest(RIGHT_REEL, 2); - match = GetMatchFromSymbols(c1, c2, c3); - if (match != MATCHED_NONE) + sym1 = GetSymbolAtRest(LEFT_REEL, 2); + sym2 = GetSymbolAtRest(MIDDLE_REEL, 2); + sym3 = GetSymbolAtRest(RIGHT_REEL, 2); + match = GetMatchFromSymbols(sym1, sym2, sym3); + if (match != MATCH_NONE) { sSlotMachine->payout += sSlotPayouts[match]; - sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + sSlotMachine->matches |= sSlotMatchFlags[match]; FlashMatchLine(MATCH_MIDDLE_ROW); } } static void CheckMatch_TopAndBottom(void) { - u8 c1, c2, c3, match; + u8 sym1, sym2, sym3, match; - c1 = GetTagAtRest(LEFT_REEL, 1); - c2 = GetTagAtRest(MIDDLE_REEL, 1); - c3 = GetTagAtRest(RIGHT_REEL, 1); - match = GetMatchFromSymbols(c1, c2, c3); - if (match != MATCHED_NONE) + sym1 = GetSymbolAtRest(LEFT_REEL, 1); + sym2 = GetSymbolAtRest(MIDDLE_REEL, 1); + sym3 = GetSymbolAtRest(RIGHT_REEL, 1); + match = GetMatchFromSymbols(sym1, sym2, sym3); + if (match != MATCH_NONE) { - if (match == MATCHED_1CHERRY) - match = MATCHED_2CHERRY; + if (match == MATCH_CHERRY) + match = MATCH_TOPBOT_CHERRY; sSlotMachine->payout += sSlotPayouts[match]; - sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + sSlotMachine->matches |= sSlotMatchFlags[match]; FlashMatchLine(MATCH_TOP_ROW); } - c1 = GetTagAtRest(LEFT_REEL, 3); - c2 = GetTagAtRest(MIDDLE_REEL, 3); - c3 = GetTagAtRest(RIGHT_REEL, 3); - match = GetMatchFromSymbols(c1, c2, c3); - if (match != MATCHED_NONE) + sym1 = GetSymbolAtRest(LEFT_REEL, 3); + sym2 = GetSymbolAtRest(MIDDLE_REEL, 3); + sym3 = GetSymbolAtRest(RIGHT_REEL, 3); + match = GetMatchFromSymbols(sym1, sym2, sym3); + if (match != MATCH_NONE) { - if (match == MATCHED_1CHERRY) - match = MATCHED_2CHERRY; + if (match == MATCH_CHERRY) + match = MATCH_TOPBOT_CHERRY; sSlotMachine->payout += sSlotPayouts[match]; - sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + sSlotMachine->matches |= sSlotMatchFlags[match]; FlashMatchLine(MATCH_BOTTOM_ROW); } } static void CheckMatch_Diagonals(void) { - u8 c1, c2, c3, match; + u8 sym1, sym2, sym3, match; - c1 = GetTagAtRest(LEFT_REEL, 1); - c2 = GetTagAtRest(MIDDLE_REEL, 2); - c3 = GetTagAtRest(RIGHT_REEL, 3); - match = GetMatchFromSymbols(c1, c2, c3); - if (match != MATCHED_NONE) + sym1 = GetSymbolAtRest(LEFT_REEL, 1); + sym2 = GetSymbolAtRest(MIDDLE_REEL, 2); + sym3 = GetSymbolAtRest(RIGHT_REEL, 3); + match = GetMatchFromSymbols(sym1, sym2, sym3); + if (match != MATCH_NONE) { - if (match != MATCHED_1CHERRY) + // Don't add payout for cherry, since it's already counted in + // CheckMatch_TopAndBottom(). + if (match != MATCH_CHERRY) { sSlotMachine->payout += sSlotPayouts[match]; - sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + sSlotMachine->matches |= sSlotMatchFlags[match]; } FlashMatchLine(MATCH_NWSE_DIAG); } - c1 = GetTagAtRest(LEFT_REEL, 3); - c2 = GetTagAtRest(MIDDLE_REEL, 2); - c3 = GetTagAtRest(RIGHT_REEL, 1); - match = GetMatchFromSymbols(c1, c2, c3); - if (match != MATCHED_NONE) + sym1 = GetSymbolAtRest(LEFT_REEL, 3); + sym2 = GetSymbolAtRest(MIDDLE_REEL, 2); + sym3 = GetSymbolAtRest(RIGHT_REEL, 1); + match = GetMatchFromSymbols(sym1, sym2, sym3); + if (match != MATCH_NONE) { - if (match != MATCHED_1CHERRY) + // Don't add payout for cherry, since it's already counted in + // CheckMatch_TopAndBottom(). + if (match != MATCH_CHERRY) { sSlotMachine->payout += sSlotPayouts[match]; - sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + sSlotMachine->matches |= sSlotMatchFlags[match]; } FlashMatchLine(MATCH_NESW_DIAG); } } -static u8 GetMatchFromSymbols(u8 c1, u8 c2, u8 c3) +static u8 GetMatchFromSymbols(u8 sym1, u8 sym2, u8 sym3) { - if (c1 == c2 && c1 == c3) - return sSymToMatch[c1]; - if (c1 == GFXTAG_7_RED && c2 == GFXTAG_7_RED && c3 == GFXTAG_7_BLUE) - return MATCHED_777_MIXED; - if (c1 == GFXTAG_7_BLUE && c2 == GFXTAG_7_BLUE && c3 == GFXTAG_7_RED) - return MATCHED_777_MIXED; - if (c1 == GFXTAG_CHERRY) - return MATCHED_1CHERRY; - return MATCHED_NONE; + if (sym1 == sym2 && sym1 == sym3) + return sSymbolToMatch[sym1]; + if (sym1 == SYMBOL_7_RED && sym2 == SYMBOL_7_RED && sym3 == SYMBOL_7_BLUE) + return MATCH_MIXED_7; + if (sym1 == SYMBOL_7_BLUE && sym2 == SYMBOL_7_BLUE && sym3 == SYMBOL_7_RED) + return MATCH_MIXED_7; + if (sym1 == SYMBOL_CHERRY) + return MATCH_CHERRY; + return MATCH_NONE; } static void AwardPayout(void) { - RunAwardPayoutActions(CreateTask(RunAwardPayoutActions, 4)); + Task_Payout(CreateTask(Task_Payout, 4)); } -static bool8 IsFinalTask_RunAwardPayoutActions(void) +static bool8 IsFinalTask_Task_Payout(void) { - if (FindTaskIdByFunc(RunAwardPayoutActions) == TAIL_SENTINEL) + if (FindTaskIdByFunc(Task_Payout) == TAIL_SENTINEL) return TRUE; else return FALSE; } -static void RunAwardPayoutActions(u8 taskId) +static void Task_Payout(u8 taskId) { - while (sAwardPayoutActions[gTasks[taskId].data[0]](&gTasks[taskId])) + while (sPayoutTasks[gTasks[taskId].data[0]](&gTasks[taskId])) ; } -static bool8 AwardPayoutAction0(struct Task *task) +#define tState data[0] +#define tTimer data[1] + +static bool8 PayoutTask_Init(struct Task *task) { if (IsMatchLineDoneFlashingBeforePayout()) { - task->data[0]++; + task->tState++; // PAYOUT_TASK_GIVE_PAYOUT if (sSlotMachine->payout == 0) { - task->data[0] = 2; + task->tState = PAYOUT_TASK_FREE; return TRUE; } } return FALSE; } -// task->data[1]: timer -static bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task) +static bool8 PayoutTask_GivePayout(struct Task *task) { - if (!task->data[1]--) + if (!task->tTimer--) { if (IsFanfareTaskInactive()) PlaySE(SE_PIN); sSlotMachine->payout--; if (sSlotMachine->coins < MAX_COINS) sSlotMachine->coins++; - task->data[1] = 8; + task->tTimer = 8; if (JOY_HELD(A_BUTTON)) - task->data[1] = 4; + task->tTimer = 4; } if (IsFanfareTaskInactive() && JOY_NEW(START_BUTTON)) { @@ -1957,19 +2144,22 @@ static bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task) sSlotMachine->payout = 0; } if (sSlotMachine->payout == 0) - task->data[0]++; + task->tState++; // PAYOUT_TASK_FREE return FALSE; } -static bool8 AwardPayoutAction_FreeTask(struct Task *task) +static bool8 PayoutTask_Free(struct Task *task) { if (TryStopMatchLinesFlashing()) - DestroyTask(FindTaskIdByFunc(RunAwardPayoutActions)); + DestroyTask(FindTaskIdByFunc(Task_Payout)); return FALSE; } -// Get the tag at position `offset` below the top of the reel's tape. Note that -// if `offset` is negative, it wraps around to the bottom of the tape. +#undef tState +#undef tTimer + +// Get the symbol at position `offset` below the top of the reel's tape. Note +// that if `offset` is negative, it wraps around to the bottom of the tape. // .-----------------. // | [ ] | [ ] | [ ] | <- offset = 0 // /-----|-----|-----\ @@ -1980,40 +2170,42 @@ static bool8 AwardPayoutAction_FreeTask(struct Task *task) // | ... | ... | ... | // | [ ] | [ ] | [ ] | <- offset = 20 // .-----------------. -static u8 GetTagAtRest(u8 reel, s16 offset) +static u8 GetSymbolAtRest(u8 reel, s16 offset) { s16 pos = (sSlotMachine->reelPositions[reel] + offset) % SYMBOLS_PER_REEL; if (pos < 0) pos += SYMBOLS_PER_REEL; - return sReelSymbolTileTags[reel][pos]; + return sReelSymbols[reel][pos]; } -// Calculates GetTagAtRest as if the reel were snapped downwards into place. -static u8 GetTag(u8 reel, s16 offset) +// Calculates GetSymbolAtRest as if the reel were snapped downwards into place. +static u8 GetSymbol(u8 reel, s16 offset) { s16 inc = 0; s16 pixelOffset = sSlotMachine->reelPixelOffsets[reel] % REEL_SYMBOL_HEIGHT; if (pixelOffset != 0) inc = -1; - return GetTagAtRest(reel, offset + inc); + return GetSymbolAtRest(reel, offset + inc); } -static u8 GetNearbyReelTimeTag(s16 n) +static u8 GetReelTimeSymbol(s16 offset) { - s16 newPosition = (sSlotMachine->reeltimePosition + n) % 6; + s16 newPosition = (sSlotMachine->reeltimePosition + offset) % REELTIME_SYMBOLS; if (newPosition < 0) - newPosition += 6; - return sReelTimeTags[newPosition]; + newPosition += REELTIME_SYMBOLS; + return sReelTimeSymbols[newPosition]; } static void AdvanceSlotReel(u8 reelIndex, s16 value) { sSlotMachine->reelPixelOffsets[reelIndex] += value; - sSlotMachine->reelPixelOffsets[reelIndex] %= 504; + sSlotMachine->reelPixelOffsets[reelIndex] %= REEL_HEIGHT; sSlotMachine->reelPositions[reelIndex] = SYMBOLS_PER_REEL - sSlotMachine->reelPixelOffsets[reelIndex] / REEL_SYMBOL_HEIGHT; } -s16 AdvanceSlotReelToNextTag(u8 reelIndex, s16 value) +// Advances the reel no further than the next symbol. Returns the remaining +// pixels until the next symbol. +s16 AdvanceSlotReelToNextSymbol(u8 reelIndex, s16 value) { s16 offset = sSlotMachine->reelPixelOffsets[reelIndex] % REEL_SYMBOL_HEIGHT; if (offset != 0) @@ -2029,48 +2221,53 @@ s16 AdvanceSlotReelToNextTag(u8 reelIndex, s16 value) static void AdvanceReeltimeReel(s16 value) { sSlotMachine->reeltimePixelOffset += value; - sSlotMachine->reeltimePixelOffset %= 120; - sSlotMachine->reeltimePosition = 6 - sSlotMachine->reeltimePixelOffset / 20; + sSlotMachine->reeltimePixelOffset %= REELTIME_REEL_HEIGHT; + sSlotMachine->reeltimePosition = REELTIME_SYMBOLS - sSlotMachine->reeltimePixelOffset / REELTIME_SYMBOL_HEIGHT; } -s16 AdvanceReeltimeReelToNextTag(s16 value) +// Advances the reel no further than the next symbol. Returns the remaining +// pixels until the next symbol. +s16 AdvanceReeltimeReelToNextSymbol(s16 value) { - s16 offset = sSlotMachine->reeltimePixelOffset % 20; + s16 offset = sSlotMachine->reeltimePixelOffset % REELTIME_SYMBOL_HEIGHT; if (offset != 0) { if (offset < value) value = offset; AdvanceReeltimeReel(value); - offset = sSlotMachine->reeltimePixelOffset % 20; + offset = sSlotMachine->reeltimePixelOffset % REELTIME_SYMBOL_HEIGHT; } return offset; } -#define tState data[0] -#define tMoving data[14] -#define tReelId data[15] +#define tState data[0] +#define tExtraTurns data[1] +#define tShockMagnitude data[1] +#define tTimer data[2] +#define tMoving data[14] +#define tReelId data[15] -static void CreateSlotReelTasks(void) +static void CreateReelTasks(void) { u8 i; for (i = 0; i < NUM_REELS; i++) { - u8 taskId = CreateTask(Task_RunSlotReelActions, 2); + u8 taskId = CreateTask(Task_Reel, 2); gTasks[taskId].tReelId = i; sSlotMachine->slotReelTasks[i] = taskId; - Task_RunSlotReelActions(taskId); + Task_Reel(taskId); } } static void SpinSlotReel(u8 reelIndex) { - gTasks[sSlotMachine->slotReelTasks[reelIndex]].tState = REEL_ACTION_SPIN; + gTasks[sSlotMachine->slotReelTasks[reelIndex]].tState = REEL_TASK_SPIN; gTasks[sSlotMachine->slotReelTasks[reelIndex]].tMoving = TRUE; } static void StopSlotReel(u8 reelIndex) { - gTasks[sSlotMachine->slotReelTasks[reelIndex]].tState = REEL_ACTION_STOP; + gTasks[sSlotMachine->slotReelTasks[reelIndex]].tState = REEL_TASK_DECIDE_STOP; } static bool8 IsSlotReelMoving(u8 reelIndex) @@ -2078,43 +2275,52 @@ static bool8 IsSlotReelMoving(u8 reelIndex) return gTasks[sSlotMachine->slotReelTasks[reelIndex]].tMoving; } -static void Task_RunSlotReelActions(u8 taskId) +static void Task_Reel(u8 taskId) { - while (sSlotReelActions[gTasks[taskId].tState](&gTasks[taskId])) + while (sReelTasks[gTasks[taskId].tState](&gTasks[taskId])) ; } -// task->data[1] reel turns -static bool8 SlotReelAction_StayStill(struct Task *task) +static bool8 ReelTask_StayStill(struct Task *task) { return FALSE; } -static bool8 SlotReelAction_Spin(struct Task *task) +static bool8 ReelTask_Spin(struct Task *task) { - AdvanceSlotReel(task->tReelId, sSlotMachine->reelIncrement); + AdvanceSlotReel(task->tReelId, sSlotMachine->reelSpeed); return FALSE; } -// As in previous generations, the slot machine often doesn't stop exactly when you press stop -static bool8 SlotReelAction_DecideWhereToStop(struct Task *task) +// In ReelTime, the reel stops immediately. Otherwise, the game may manipulate +// the results by stopping after at most 4 extra turns. The exact behavior +// differs depending on whether the machine has a bias. +// +// If the machine has a bias, it will try to match the bias symbol in each reel. +// +// Otherwise, if the machine doesn't have a bias or it could not line up the +// bias symbol in any of the previous reels, it will perform the NoBias stopping +// routine, which manipulates the outcome so the player loses. +static bool8 ReelTask_DecideStop(struct Task *task) { - task->tState++; - // initialize data for that reel --> these will be changed if sBiasTags can be lined up + task->tState++; // REEL_TASK_STOP_MOVE sSlotMachine->winnerRows[task->tReelId] = 0; sSlotMachine->reelExtraTurns[task->tReelId] = 0; - if (sSlotMachine->reelTimeSpinsLeft == 0 && (sSlotMachine->luckyFlags == 0 || !sSlotMachine->isLuckySpin || !sDecideReelTurns_BiasTag[task->tReelId]())) + if (sSlotMachine->reelTimeSpinsLeft == 0) { - sSlotMachine->isLuckySpin = FALSE; - sDecideReelTurns_NoBiasTag[task->tReelId](); + if (sSlotMachine->machineBias == 0 || !sSlotMachine->didNotFailBias || !sDecideStop_Bias[task->tReelId]()) + { + sSlotMachine->didNotFailBias = FALSE; + sDecideStop_NoBias[task->tReelId](); + } } - task->data[1] = sSlotMachine->reelExtraTurns[task->tReelId]; + task->tExtraTurns = sSlotMachine->reelExtraTurns[task->tReelId]; return TRUE; } -// go to next tag and then do any additional turns -static bool8 SlotReelAction_MoveToStop(struct Task *task) +// Go to the next symbol, then add any extra turns. +static bool8 ReelTask_MoveToStop(struct Task *task) { u16 reelStopShocks[ARRAY_COUNT(sReelStopShocks)]; s16 reelPixelPos; @@ -2122,112 +2328,147 @@ static bool8 SlotReelAction_MoveToStop(struct Task *task) memcpy(reelStopShocks, sReelStopShocks, sizeof(sReelStopShocks)); reelPixelPos = sSlotMachine->reelPixelOffsets[task->tReelId] % REEL_SYMBOL_HEIGHT; if (reelPixelPos != 0) - reelPixelPos = AdvanceSlotReelToNextTag(task->tReelId, sSlotMachine->reelIncrement); + reelPixelPos = AdvanceSlotReelToNextSymbol(task->tReelId, sSlotMachine->reelSpeed); else if (sSlotMachine->reelExtraTurns[task->tReelId]) { sSlotMachine->reelExtraTurns[task->tReelId]--; - AdvanceSlotReel(task->tReelId, sSlotMachine->reelIncrement); + AdvanceSlotReel(task->tReelId, sSlotMachine->reelSpeed); reelPixelPos = sSlotMachine->reelPixelOffsets[task->tReelId] % REEL_SYMBOL_HEIGHT; } + if (reelPixelPos == 0 && sSlotMachine->reelExtraTurns[task->tReelId] == 0) { - task->tState++; - task->data[1] = reelStopShocks[task->data[1]]; - task->data[2] = 0; + task->tState++; // REEL_TASK_STOP_SHAKE + task->tShockMagnitude = reelStopShocks[task->tExtraTurns]; + task->tTimer = 0; } return FALSE; } -// make selected tag oscillate before it becomes still -static bool8 SlotReelAction_OscillatingStop(struct Task *task) +// The reel shakes a little at the selected symbol before settling. +static bool8 ReelTask_ShakingStop(struct Task *task) { - sSlotMachine->reelPixelOffsetsWhileStopping[task->tReelId] = task->data[1]; - task->data[1] = -task->data[1]; - task->data[2]++; - if ((task->data[2] & 0x3) == 0) - task->data[1] >>= 1; - if (task->data[1] == 0) + sSlotMachine->reelShockOffsets[task->tReelId] = task->tShockMagnitude; + task->tShockMagnitude = -task->tShockMagnitude; + task->tTimer++; + if ((task->tTimer & 0x3) == 0) + task->tShockMagnitude >>= 1; + if (task->tShockMagnitude == 0) { task->tState = 0; task->tMoving = FALSE; - sSlotMachine->reelPixelOffsetsWhileStopping[task->tReelId] = 0; + sSlotMachine->reelShockOffsets[task->tReelId] = 0; } return FALSE; } #undef tState +#undef tExtraTurns +#undef tShockMagnitude +#undef tTimer #undef tMoving #undef tReelId -static bool8 DecideReelTurns_BiasTag_Reel1(void) +// We pass along two symbols to bias toward. If the machine is biased toward +// 7's, we pass both the 7 symbols. Otherwise, we just pass the bias symbol +// twice. +static bool8 DecideStop_Bias_Reel1(void) { - u8 tag2 = GetBiasTag(sSlotMachine->luckyFlags); - u8 tag1 = tag2; - if (sSlotMachine->luckyFlags & (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777)) + u8 sym2 = GetBiasSymbol(sSlotMachine->machineBias); + u8 sym1 = sym2; + if (sSlotMachine->machineBias & (BIAS_STRAIGHT_7 | BIAS_MIXED_7)) { - tag1 = GFXTAG_7_RED; - tag2 = GFXTAG_7_BLUE; + sym1 = SYMBOL_7_RED; + sym2 = SYMBOL_7_BLUE; } - return sDecideReelTurns_BiasTag_Reel1_Bets[sSlotMachine->bet - 1](tag1, tag2); + return sDecideStop_Bias_Reel1_Bets[sSlotMachine->bet - 1](sym1, sym2); } -static bool8 AreTagsAtPosition_Reel1(s16 pos, u8 tag1, u8 tag2) +// The biasSymbol for subsequent reels is determined based on which of the bias +// symbols can be found in reel 1. This really only matters when the machine is +// biased toward 7's. It will try to match a 7 of the same color as reel 1. +static bool8 EitherSymbolAtPos_Reel1(s16 pos, u8 sym1, u8 sym2) { - u8 tag = GetTag(LEFT_REEL, pos); - if (tag == tag1 || tag == tag2) + u8 sym = GetSymbol(LEFT_REEL, pos); + if (sym == sym1 || sym == sym2) { - sSlotMachine->biasTag = tag; + sSlotMachine->biasSymbol = sym; return TRUE; } return FALSE; } -static bool8 AreCherriesOnScreen_Reel1(s16 offsetFromCenter) +// Returns true if there are cherries on screen in reel 1 after the given number +// of turns. +static bool8 AreCherriesOnScreen_Reel1(s16 turns) { - if (GetTag(LEFT_REEL, 1 - offsetFromCenter) == GFXTAG_CHERRY - || GetTag(LEFT_REEL, 2 - offsetFromCenter) == GFXTAG_CHERRY - || GetTag(LEFT_REEL, 3 - offsetFromCenter) == GFXTAG_CHERRY) + if (GetSymbol(LEFT_REEL, 1 - turns) == SYMBOL_CHERRY + || GetSymbol(LEFT_REEL, 2 - turns) == SYMBOL_CHERRY + || GetSymbol(LEFT_REEL, 3 - turns) == SYMBOL_CHERRY) return TRUE; else return FALSE; } -static bool8 IsBiasTowardsCherryOr7s(void) +static bool8 BiasedTowardCherryOr7s(void) { - if (sSlotMachine->luckyFlags & (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777 | LUCKY_BIAS_CHERRY)) + if (sSlotMachine->machineBias & (BIAS_STRAIGHT_7 | BIAS_MIXED_7 | BIAS_CHERRY)) return TRUE; else return FALSE; } -static bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 tag1, u8 tag2) +// If a bias symbol appears in the center of reel 1 within the next 4 turns, +// stop there. That symbol becomes the biasSymbol for the subsequent reels. +static bool8 DecideStop_Bias_Reel1_Bet1(u8 sym1, u8 sym2) { s16 i; - for (i = 0; i < 5; i++) + for (i = 0; i <= MAX_EXTRA_TURNS; i++) { - // if a lucky tag appears in the center row within 4 turns - if (AreTagsAtPosition_Reel1(2 - i, tag1, tag2)) + if (EitherSymbolAtPos_Reel1(2 - i, sym1, sym2)) { sSlotMachine->winnerRows[LEFT_REEL] = 2; - sSlotMachine->reelExtraTurns[0] = i; + sSlotMachine->reelExtraTurns[LEFT_REEL] = i; return TRUE; } } return FALSE; } -static bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 tag1, u8 tag2) +// There is slightly different behavior depending on the machine's bias. +// +// Bias toward cherry or 7s: +// - Check if a cherry or 7 is currently on screen. If so, stop immediately. +// - Roll up to 4 extra turns to see if a cherry or 7 enters the screen: +// - If it enters after 1 turn, stop the reel when it gets the bottom row. +// - Otherwise, if it enters before the 4th turn, stop the reel when it gets +// to the middle row. +// - If it enters on the 4th turn, stop here. It will be in the top row. +// +// Other bias: +// - This is very similar, except the game is checking for the bias symbol +// rather than cherries / 7s. +// +// However, the game adds an additional constraint: it will not stop if there +// will be any cherries on screen. Presumably, this ensures that you will not +// get any matches if you fail to line up the bias symbol in the remaining +// reels. +// +// This is programmed in such a way that it excludes more options than +// necessary. If there are cherries in the two positions below the bias symbol, +// it will skip over this option, even if those cherries would not have ended +// up on screen. +static bool8 DecideStop_Bias_Reel1_Bet2or3(u8 sym1, u8 sym2) { s16 i; - bool8 biased = IsBiasTowardsCherryOr7s(); - // if lucky numbers or no cherries are currently on screen in reel 1... - if (biased || !AreCherriesOnScreen_Reel1(0)) + bool8 cherry7Bias = BiasedTowardCherryOr7s(); + if (cherry7Bias || !AreCherriesOnScreen_Reel1(0)) { - for (i = 1; i < 4; i++) + // Check the current screen + for (i = 1; i <= 3; i++) { - // if a bias tag is currently on the screen - if (AreTagsAtPosition_Reel1(i, tag1, tag2)) + if (EitherSymbolAtPos_Reel1(i, sym1, sym2)) { sSlotMachine->winnerRows[0] = i; sSlotMachine->reelExtraTurns[0] = 0; @@ -2235,30 +2476,27 @@ static bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 tag1, u8 tag2) } } } - for (i = 1; i < 5; i++) + + // Check the next 4 turns + for (i = 1; i <= MAX_EXTRA_TURNS; i++) { - bool8 biasedCopy = biased; // redundant - // if biased or if in the next 4 turns there is a screen with no cherries... - if (biasedCopy || !AreCherriesOnScreen_Reel1(i)) + bool8 cherry7BiasCopy = cherry7Bias; // redundant + if (cherry7BiasCopy || !AreCherriesOnScreen_Reel1(i)) { - //...and if a bias tag is in top row of that screen - if (AreTagsAtPosition_Reel1(1 - i, tag1, tag2)) + if (EitherSymbolAtPos_Reel1(1 - i, sym1, sym2)) { - //...and if it only took 1 turn and the lucky tag could also be the bottom row of a screen with no cherries... - if (i == 1 && (biasedCopy || !AreCherriesOnScreen_Reel1(3))) + if (i == 1 && (cherry7BiasCopy || !AreCherriesOnScreen_Reel1(3))) { sSlotMachine->winnerRows[0] = 3; sSlotMachine->reelExtraTurns[0] = 3; return TRUE; } - //...or if it isn't the last turn and the lucky tag could be in the center row of a screen with no cherries... - if (i < 4 && (biasedCopy || !AreCherriesOnScreen_Reel1(i + 1))) + if (i <= 3 && (cherry7BiasCopy || !AreCherriesOnScreen_Reel1(i + 1))) { sSlotMachine->winnerRows[0] = 2; sSlotMachine->reelExtraTurns[0] = i + 1; return TRUE; } - //...else sSlotMachine->winnerRows[0] = 1; sSlotMachine->reelExtraTurns[0] = i; return TRUE; @@ -2268,22 +2506,23 @@ static bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 tag1, u8 tag2) return FALSE; } -static bool8 DecideReelTurns_BiasTag_Reel2(void) +static bool8 DecideStop_Bias_Reel2(void) { - return sDecideReelTurns_BiasTag_Reel2_Bets[sSlotMachine->bet - 1](); + return sDecideStop_Bias_Reel2_Bets[sSlotMachine->bet - 1](); } -static bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void) +// Turn at most 4 extra turns to try to line up the bias symbol in the same row +// as reel 1. +static bool8 DecideStop_Bias_Reel2_Bet1or2(void) { s16 i; - s16 biasTagLocation_Reel1 = sSlotMachine->winnerRows[0]; + s16 reel1BiasRow = sSlotMachine->winnerRows[0]; - for (i = 0; i < 5; i++) + for (i = 0; i <= MAX_EXTRA_TURNS; i++) { - // if biasTag appears in the same row within 4 turns - if (GetTag(MIDDLE_REEL, biasTagLocation_Reel1 - i) == sSlotMachine->biasTag) + if (GetSymbol(MIDDLE_REEL, reel1BiasRow - i) == sSlotMachine->biasSymbol) { - sSlotMachine->winnerRows[1] = biasTagLocation_Reel1; + sSlotMachine->winnerRows[1] = reel1BiasRow; sSlotMachine->reelExtraTurns[1] = i; return TRUE; } @@ -2291,19 +2530,55 @@ static bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void) return FALSE; } -static bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void) +// Checks whether it can match the bias symbol diagonally, and sometimes skews +// toward this type of match rather than a match straight across. +// +// The behavior is different depending on where the bias symbol landed in +// reel 1: +// +// Landed in middle row: +// A diagonal match is impossible. Just try to match the bias symbol in the +// middle row of reel 2 within 4 turns. +// +// Landed in top/bottom row: +// - If it would take 2 or 3 turns to get the bias symbol into the same row as +// reel 1, force a diagonal match by stopping it in the middle row instead. +// - Check if the bias symbol is already in the same row as reel 1, or if it +// takes 1 or 4 turns to get it there. If so, stop when it reaches that row. +// - Otherwise, check if the bias symbol is already in the middle row of +// reel 2. If so, stop here. +// +// So in how many more cases would betting 3 coins let you win compared to +// betting 2? +// Not many. Most of the time, the game would have matched the symbol in the +// same row as reel 1 if you had bet 2 coins. Betting 3 effectively adds +// coverage for only two additional cases: +// - Bias symbol is in top row of reel 1 and bias symbol is currently in +// middle row of reel 2. +// - Bias symbol is in bottom row of reel 1 and bias symbol could get to the +// middle row of reel 2 in 4 turns. +// +// Assuming this is the implementation Game Freak intended, the game effectively +// turns straight matches into diagonal matches with 2/5 probability. +// Presumably, this makes the player feel fortunate that they bet 3 coins rather +// than 2, even though most times the game would have still forced a match with +// only 2 coins. +static bool8 DecideStop_Bias_Reel2_Bet3(void) { s16 i; - // if biasTag appears in the same row within 4 turns... - if (DecideReelTurns_BiasTag_Reel2_Bet1or2()) + // If you can line up the bias symbol in the same row as reel 1 within 4 + // turns + if (DecideStop_Bias_Reel2_Bet1or2()) { - //...and if the biasTag is not in middle row of reel 1 and if biasTag appears in middle row of reel 2 in 2 or 3 turns... + // If bias symbol is not in the middle row of reel 1 and it takes either + // 2 or 3 turns to get it in the same row for reel 2 if (sSlotMachine->winnerRows[0] != 2 && sSlotMachine->reelExtraTurns[1] > 1 && sSlotMachine->reelExtraTurns[1] != 4) { - for (i = 0; i < 5; i++) + // Try turning this into a diagonal match by lining up the bias + // symbol in the middle row of reel 2 within 4 turns. + for (i = 0; i <= MAX_EXTRA_TURNS; i++) { - //...and if the bias tag will appear in the middle row within 4 turns - if (GetTag(MIDDLE_REEL, 2 - i) == sSlotMachine->biasTag) + if (GetSymbol(MIDDLE_REEL, 2 - i) == sSlotMachine->biasSymbol) { sSlotMachine->winnerRows[1] = 2; sSlotMachine->reelExtraTurns[1] = i; @@ -2313,13 +2588,16 @@ static bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void) } return TRUE; } - // else if the biasTag is not in middle row of reel 1... + + // If you can't line up the bias symbol in the same row in 4 turns, and the + // bias symbol is not in the middle row of reel 1 if (sSlotMachine->winnerRows[0] != 2) { - for (i = 0; i < 5; i++) + // Try to match the bias symbol in middle row of reel 2 within 4 turns. + // Adds coverage for the two cases mentioned above. + for (i = 0; i <= MAX_EXTRA_TURNS; i++) { - //...and if the biasTag will appear in the center row of reel 2 within 4 turns - if (GetTag(MIDDLE_REEL, 2 - i) == sSlotMachine->biasTag) + if (GetSymbol(MIDDLE_REEL, 2 - i) == sSlotMachine->biasSymbol) { sSlotMachine->winnerRows[1] = 2; sSlotMachine->reelExtraTurns[1] = i; @@ -2330,31 +2608,34 @@ static bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void) return FALSE; } -static bool8 DecideReelTurns_BiasTag_Reel3(void) +// If the machine is biased toward mixed 7's, swap the color of the bias symbol +// from red 7 to blue 7, or vice versa. +static bool8 DecideStop_Bias_Reel3(void) { - u8 biasTag = sSlotMachine->biasTag; - if (sSlotMachine->luckyFlags & LUCKY_BIAS_MIXED_777) + u8 biasSymbol = sSlotMachine->biasSymbol; + if (sSlotMachine->machineBias & BIAS_MIXED_7) { - biasTag = GFXTAG_7_RED; - if (sSlotMachine->biasTag == GFXTAG_7_RED) + biasSymbol = SYMBOL_7_RED; + if (sSlotMachine->biasSymbol == SYMBOL_7_RED) { - biasTag = GFXTAG_7_BLUE; + biasSymbol = SYMBOL_7_BLUE; } } - return sDecideReelTurns_BiasTag_Reel3_Bets[sSlotMachine->bet - 1](biasTag); + return sDecideStop_Bias_Reel3_Bets[sSlotMachine->bet - 1](biasSymbol); } -static bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 biasTag) +// Turn at most 4 extra turns to try to line up the bias symbol in the same +// row as reel 2. +static bool8 DecideStop_Bias_Reel3_Bet1or2(u8 biasSymbol) { s16 i; - s16 biasTagLocation_Reel2 = sSlotMachine->winnerRows[1]; + s16 reel2BiasRow = sSlotMachine->winnerRows[1]; - for (i = 0; i < 5; i++) + for (i = 0; i <= MAX_EXTRA_TURNS; i++) { - // if the biasTag appears in the same row as in reel 2 within 4 turns - if (GetTag(RIGHT_REEL, biasTagLocation_Reel2 - i) == biasTag) + if (GetSymbol(RIGHT_REEL, reel2BiasRow - i) == biasSymbol) { - sSlotMachine->winnerRows[2] = biasTagLocation_Reel2; + sSlotMachine->winnerRows[2] = reel2BiasRow; sSlotMachine->reelExtraTurns[2] = i; return TRUE; } @@ -2362,35 +2643,40 @@ static bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 biasTag) return FALSE; } -static bool8 DecideReelTurns_BiasTag_Reel3_Bet3(u8 biasTag) +// Try to complete a match in reel 3 by lining up a bias symbol with the bias +// symbols from the first two reels. +static bool8 DecideStop_Bias_Reel3_Bet3(u8 biasSymbol) { s16 i; - s16 biasTagFinalPos; - // if the final position of the biasTag matches in reel 1 and reel 2... + s16 biasRow; + + // First two bias symbols in the same row. Try to line up bias symbol in + // same the row here too if (sSlotMachine->winnerRows[0] == sSlotMachine->winnerRows[1]) - //...then try to line it up in reel 3 - return DecideReelTurns_BiasTag_Reel3_Bet1or2(biasTag); - // else place it in the row opposite reel 1's + return DecideStop_Bias_Reel3_Bet1or2(biasSymbol); + + // Otherwise, try to line up the bias symbol diagonally if (sSlotMachine->winnerRows[0] == 1) - biasTagFinalPos = 3; + biasRow = 3; else - biasTagFinalPos = 1; - for (i = 0; i < 5; i++) + biasRow = 1; + for (i = 0; i <= MAX_EXTRA_TURNS; i++) { - // if the biasTag lands in that position within 4 turns - if (GetTag(RIGHT_REEL, biasTagFinalPos - i) == biasTag) + if (GetSymbol(RIGHT_REEL, biasRow - i) == biasSymbol) { sSlotMachine->reelExtraTurns[2] = i; - sSlotMachine->winnerRows[2] = biasTagFinalPos; + sSlotMachine->winnerRows[2] = biasRow; return TRUE; } } return FALSE; } -// Advance until there are no cherries on screen in reel 1 - -static void DecideReelTurns_NoBiasTag_Reel1(void) +// Advance as many turns as needed until there are no cherries on screen in +// reel 1, as cherries would cause a match. +// +// Based on the distribution of reel 1, this will add at most 3 extra turns. +static void DecideStop_NoBias_Reel1(void) { s16 i = 0; @@ -2399,41 +2685,60 @@ static void DecideReelTurns_NoBiasTag_Reel1(void) sSlotMachine->reelExtraTurns[0] = i; } -static bool8 IsBiasTag777_SwitchColor(u8 *biasTagPtr) +// If the bias symbol is one of the 7's, switch to the opposite color and return +// true. Otherwise, return false. +static bool8 IfSymbol7_SwitchColor(u8 *symbol) { - if (*biasTagPtr == GFXTAG_7_RED) + if (*symbol == SYMBOL_7_RED) { - *biasTagPtr = GFXTAG_7_BLUE; + *symbol = SYMBOL_7_BLUE; return TRUE; } - if (*biasTagPtr == GFXTAG_7_BLUE) + if (*symbol == SYMBOL_7_BLUE) { - *biasTagPtr = GFXTAG_7_RED; + *symbol = SYMBOL_7_RED; return TRUE; } return FALSE; } -static void DecideReelTurns_NoBiasTag_Reel2(void) +// If the machine doesn't have a bias, the reel stops immediately. +// +// Otherwise, the machine tries to taunt the player if it is biased toward +// straight 7's. This would only happen if the player did not stop near the +// correct-color 7, so the machine couldn't force a match. +// +// Instead, the machine now tries to line up the opposite-color 7, which is not +// a valid match. +static void DecideStop_NoBias_Reel2(void) { - sDecideReelTurns_NoBiasTag_Reel2_Bets[sSlotMachine->bet - 1](); + sDecideStop_NoBias_Reel2_Bets[sSlotMachine->bet - 1](); } -// only does stuff if the biasTag is one of the 7's, plus other conditions -static void DecideReelTurns_NoBiasTag_Reel2_Bet1(void) +// If the machine has no bias, stop immediately. +// +// Otherwise, the machine manipulates the results if all the following +// conditions are met: +// If +// - The machine is biased toward straight 7's +// - The machine managed to match a 7 in the middle of reel 1 +// - The machine could not line up a 7 of the same color in reel 2 +// Then +// The machine will try to line up a 7 of the opposite color in reel 2 +static void DecideStop_NoBias_Reel2_Bet1(void) { - if (sSlotMachine->winnerRows[0] != 0 && sSlotMachine->luckyFlags & LUCKY_BIAS_777) + if (sSlotMachine->winnerRows[0] != 0 && sSlotMachine->machineBias & BIAS_STRAIGHT_7) { - u8 biasTag = GetTag(LEFT_REEL, 2 - sSlotMachine->reelExtraTurns[0]); - //...and if biasTag is one of the 7's... - if (IsBiasTag777_SwitchColor(&biasTag)) - //...swap color of biasTag... + // Note here and in other NoBias functions, reelExtraTurns is 0 if it + // corresponds to a previous reel. That reel has already stopped and any + // extra turns were applied. + u8 reel1MiddleSym = GetSymbol(LEFT_REEL, 2 - sSlotMachine->reelExtraTurns[0]); + if (IfSymbol7_SwitchColor(&reel1MiddleSym)) { s16 i; - for (i = 0; i < 5; i++) + for (i = 0; i <= MAX_EXTRA_TURNS; i++) { - //...and if the biasTag appears within 4 turns - if (biasTag == GetTag(MIDDLE_REEL, 2 - i)) + if (reel1MiddleSym == GetSymbol(MIDDLE_REEL, 2 - i)) { sSlotMachine->winnerRows[1] = 2; sSlotMachine->reelExtraTurns[1] = i; @@ -2444,20 +2749,27 @@ static void DecideReelTurns_NoBiasTag_Reel2_Bet1(void) } } -static void DecideReelTurns_NoBiasTag_Reel2_Bet2(void) +// If the machine has no bias, stop immediately. +// +// Otherwise, the machine manipulates the results if all the following +// conditions are met: +// If +// - The machine is biased toward straight 7's +// - The machine managed to match a 7 anywhere in reel 1 +// - The machine could not line up a 7 of the same color in reel 2 +// Then +// The machine will try to line up a 7 of the opposite color in reel 2 +static void DecideStop_NoBias_Reel2_Bet2(void) { - if (sSlotMachine->winnerRows[0] != 0 && sSlotMachine->luckyFlags & LUCKY_BIAS_777) + if (sSlotMachine->winnerRows[0] != 0 && sSlotMachine->machineBias & BIAS_STRAIGHT_7) { - u8 biasTag = GetTag(LEFT_REEL, sSlotMachine->winnerRows[0] - sSlotMachine->reelExtraTurns[0]); - //...and if biasTag is one of the 7's... - if (IsBiasTag777_SwitchColor(&biasTag)) - //...swap color of biasTag... + u8 reel1BiasSym = GetSymbol(LEFT_REEL, sSlotMachine->winnerRows[0] - sSlotMachine->reelExtraTurns[0]); + if (IfSymbol7_SwitchColor(&reel1BiasSym)) { s16 i; - for (i = 0; i < 5; i++) + for (i = 0; i <= MAX_EXTRA_TURNS; i++) { - //...and if the biasTag appears in same row in reel 2 within 4 turns - if (biasTag == GetTag(MIDDLE_REEL, sSlotMachine->winnerRows[0] - i)) + if (reel1BiasSym == GetSymbol(MIDDLE_REEL, sSlotMachine->winnerRows[0] - i)) { sSlotMachine->winnerRows[1] = sSlotMachine->winnerRows[0]; sSlotMachine->reelExtraTurns[1] = i; @@ -2468,146 +2780,225 @@ static void DecideReelTurns_NoBiasTag_Reel2_Bet2(void) } } -static void DecideReelTurns_NoBiasTag_Reel2_Bet3(void) +// If the machine has no bias, stop immediately. +// +// Otherwise, the machine manipulates the results if all the following +// conditions are met: +// If +// - The machine is biased toward straight 7's +// - The machine managed to match a 7 anywhere in reel 1 +// - The machine could not line up a 7 of the same color in reel 2 +// Then +// The machine will try to line up a 7 of the opposite color in reel 2 +// +// The way it tries to line up an opposite-color 7 differs depending on where +// the 7 is in reel 1: +// +// Middle row: +// Try to line up an opposite-color 7 in the middle of reel 2 within 4 turns. +// +// Top row: +// - First check for an opposite-color 7 in the top and middle rows of the +// current screen. If found, stop immediately. +// - Otherwise, check if an opposite-color 7 will enter the top row within 4 +// turns. +// - If one enters in 1 or 2 turns, stop the reel when it gets to the middle +// row. +// - If one enters in 3 or 4 turns, stop the reel when it gets to the top +// row. +// +// Bottom row: +// - First check for an opposite-color 7 in the middle and bottom rows of the +// current screen. If found, stop immediately. +// - Otherwise, check if an opposite-color 7 will enter the bottom row within 4 +// turns. +// - If one enters in 1 or 2 turns, stop the reel when it gets to the bottom +// row. +// - If one enters in 3 or 4 turns, stop the reel when it gets to the middle +// row. +// +// BUG: This procedure misses an opportunity to line up an opposite-color 7 in +// one scenario, when: +// - There is a 7 in the bottom row of reel 1 +// - And, you can get an opposite-color 7 in the middle row of reel 2 in 4 +// turns +static void DecideStop_NoBias_Reel2_Bet3(void) { s16 i; s16 j; - // if reel 1 has a biasTag and bit 7 is set in luckyFlags... - if (sSlotMachine->winnerRows[0] != 0 && sSlotMachine->luckyFlags & LUCKY_BIAS_777) + u8 reel1BiasSym; + + if (sSlotMachine->winnerRows[0] != 0 && sSlotMachine->machineBias & BIAS_STRAIGHT_7) { - //...and if biasTag appeared in the center row of reel 1 + // Lined up 7 in middle of reel 1 if (sSlotMachine->winnerRows[0] == 2) { - DecideReelTurns_NoBiasTag_Reel2_Bet2(); + DecideStop_NoBias_Reel2_Bet2(); + return; } - else + + reel1BiasSym = GetSymbol(LEFT_REEL, sSlotMachine->winnerRows[0] - sSlotMachine->reelExtraTurns[0]); + if (IfSymbol7_SwitchColor(&reel1BiasSym)) { - u8 biasTag = GetTag(LEFT_REEL, sSlotMachine->winnerRows[0] - sSlotMachine->reelExtraTurns[0]); - //...and if biasTag is one of the 7's... - if (IsBiasTag777_SwitchColor(&biasTag)) - //...swap the color of the 7... + // Check current screen to see if there is already an opposite-color + // 7 lined up for a match. + j = 2; + if (sSlotMachine->winnerRows[0] == 3) + j = 3; + for (i = 0; i < 2; i++, j--) { - j = 2; - if (sSlotMachine->winnerRows[0] == 3) - j = 3; - for (i = 0; i < 2; i++, j--) + if (reel1BiasSym == GetSymbol(MIDDLE_REEL, j)) { - if (biasTag == GetTag(MIDDLE_REEL, j)) - { - sSlotMachine->winnerRows[1] = j; - sSlotMachine->reelExtraTurns[1] = 0; - return; - } + sSlotMachine->winnerRows[1] = j; + sSlotMachine->reelExtraTurns[1] = 0; + return; } - for (j = 1; j < 5; j++) + } + + // Check if opposite-color 7 will appear in same row as reel 1 in + // over the next 4 turns + for (j = 1; j <= MAX_EXTRA_TURNS; j++) + { + if (reel1BiasSym == GetSymbol(MIDDLE_REEL, sSlotMachine->winnerRows[0] - j)) { - if (biasTag == GetTag(MIDDLE_REEL, sSlotMachine->winnerRows[0] - j)) + // If 7 appeared in top row of reel 1 + if (sSlotMachine->winnerRows[0] == 1) { - if (sSlotMachine->winnerRows[0] == 1) + if (j <= 2) { - if (j < 3) - { - sSlotMachine->winnerRows[1] = 2; - sSlotMachine->reelExtraTurns[1] = j + 1; - } - else - { - sSlotMachine->winnerRows[1] = 1; - sSlotMachine->reelExtraTurns[1] = j; - } + sSlotMachine->winnerRows[1] = 2; + sSlotMachine->reelExtraTurns[1] = j + 1; } else { - if (j < 3) - { - sSlotMachine->winnerRows[1] = 3; - sSlotMachine->reelExtraTurns[1] = j; - } - else - { - sSlotMachine->winnerRows[1] = 2; - sSlotMachine->reelExtraTurns[1] = j - 1; - } + sSlotMachine->winnerRows[1] = 1; + sSlotMachine->reelExtraTurns[1] = j; } - return; } + // If 7 appeared in bottom row of reel 1 + else + { + if (j <= 2) + { + sSlotMachine->winnerRows[1] = 3; + sSlotMachine->reelExtraTurns[1] = j; + } + else + { + sSlotMachine->winnerRows[1] = 2; + sSlotMachine->reelExtraTurns[1] = j - 1; + } + } + return; } } } } } -static bool8 AreTagsMixed77(u8 tag1, u8 tag2) +// Returns true if the reel 1 and reel 2 symbols are opposite-color 7's. +// +// Note that if true, this does not constitue a MATCH_MIXED_7, as the first two +// reels are not the same color. +static bool8 MismatchedSyms_77(u8 sym1, u8 sym2) { - if ((tag1 == GFXTAG_7_RED && tag2 == GFXTAG_7_BLUE) || (tag1 == GFXTAG_7_BLUE && tag2 == GFXTAG_7_RED)) + if ((sym1 == SYMBOL_7_RED && sym2 == SYMBOL_7_BLUE) || (sym1 == SYMBOL_7_BLUE && sym2 == SYMBOL_7_RED)) return TRUE; else return FALSE; } -static bool8 AreTagsMixed777(u8 tag1, u8 tag2, u8 tag3) +// Returns true if the reel 1, reel 2 and reel 3 symbolss form a 7 mismatch, +// i.e. {7R, 7B, 7R} or {7B, 7R, 7B}. +static bool8 MismatchedSyms_777(u8 sym1, u8 sym2, u8 sym3) { - if ((tag1 == GFXTAG_7_RED && tag2 == GFXTAG_7_BLUE && tag3 == GFXTAG_7_RED) || - (tag1 == GFXTAG_7_BLUE && tag2 == GFXTAG_7_RED && tag3 == GFXTAG_7_BLUE)) + if ((sym1 == SYMBOL_7_RED && sym2 == SYMBOL_7_BLUE && sym3 == SYMBOL_7_RED) || + (sym1 == SYMBOL_7_BLUE && sym2 == SYMBOL_7_RED && sym3 == SYMBOL_7_BLUE)) return TRUE; else return FALSE; } -static bool8 TagsDontMatchOrHaveAny7s(u8 tag1, u8 tag2, u8 tag3) +// Returns false if either: +// - The symbols form a match (including MATCH_MIXED_7) +// - Or, the symbols form a 7 mismatch (i.e., {7R, 7B, 7R} or {7B, 7R, 7B}) +// +// Note, this does not account for cherry matches. +static bool8 NeitherMatchNor7Mismatch(u8 sym1, u8 sym2, u8 sym3) { - if ((tag1 == GFXTAG_7_RED && tag2 == GFXTAG_7_BLUE && tag3 == GFXTAG_7_RED) || - (tag1 == GFXTAG_7_BLUE && tag2 == GFXTAG_7_RED && tag3 == GFXTAG_7_BLUE) || - (tag1 == GFXTAG_7_RED && tag2 == GFXTAG_7_RED && tag3 == GFXTAG_7_BLUE) || - (tag1 == GFXTAG_7_BLUE && tag2 == GFXTAG_7_BLUE && tag3 == GFXTAG_7_RED) || - (tag1 == tag2 && tag1 == tag3)) + if ((sym1 == SYMBOL_7_RED && sym2 == SYMBOL_7_BLUE && sym3 == SYMBOL_7_RED) + || (sym1 == SYMBOL_7_BLUE && sym2 == SYMBOL_7_RED && sym3 == SYMBOL_7_BLUE) + || (sym1 == SYMBOL_7_RED && sym2 == SYMBOL_7_RED && sym3 == SYMBOL_7_BLUE) + || (sym1 == SYMBOL_7_BLUE && sym2 == SYMBOL_7_BLUE && sym3 == SYMBOL_7_RED) + || (sym1 == sym2 && sym1 == sym3)) { return FALSE; } return TRUE; } -static void DecideReelTurns_NoBiasTag_Reel3(void) +// Spin until there's no match, or try to taunt the player with a 7 mismatch if +// they failed the straight 7 bias. +static void DecideStop_NoBias_Reel3(void) { - sDecideReelTurns_NoBiasTag_Reel3_Bets[sSlotMachine->bet - 1](); + sDecideStop_NoBias_Reel3_Bets[sSlotMachine->bet - 1](); } -static void DecideReelTurns_NoBiasTag_Reel3_Bet1(void) +// Spin until there is no match in reel 3. Additionally, if the player failed a +// straight 7 bias, try to taunt them with a 7 mismatch. +// +// The way this plays out depends on the first two matched symbols. +// +// If first two symbols are the same: +// Spin until you get a symbol that won't complete a match. +// +// Otherwise, if the first two symbols are opposite-color 7's: +// - If the machine is biased toward straight 7's, then the player must have +// failed with this bias. The machine tries to taunt the player by turning +// up to 4 turns to complete a 7 mismatch (i.e., {7R, 7B, 7R} or +// {7B, 7R, 7B}). +// - Otherwise, spin until you get a symbol that won't complete a match. +static void DecideStop_NoBias_Reel3_Bet1(void) { s16 i = 0; - u8 tag1 = GetTag(LEFT_REEL, 2 - sSlotMachine->reelExtraTurns[0]); - u8 tag2 = GetTag(MIDDLE_REEL, 2 - sSlotMachine->reelExtraTurns[1]); - // if tags match in first 2 reels... - if (tag1 == tag2) + u8 sym1 = GetSymbol(LEFT_REEL, 2 - sSlotMachine->reelExtraTurns[0]); + u8 sym2 = GetSymbol(MIDDLE_REEL, 2 - sSlotMachine->reelExtraTurns[1]); + + // If first two symbols match, spin until you get a non-matching symbol + if (sym1 == sym2) { - //...spin until you get non-matching tag - while (1) + while (TRUE) { - u8 tag3; - if (!(tag1 == (tag3 = GetTag(RIGHT_REEL, 2 - i)) || (tag1 == GFXTAG_7_RED && tag3 == GFXTAG_7_BLUE) || (tag1 == GFXTAG_7_BLUE && tag3 == GFXTAG_7_RED))) + u8 sym3; + if (!((sym1 == (sym3 = GetSymbol(RIGHT_REEL, 2 - i))) + || (sym1 == SYMBOL_7_RED && sym3 == SYMBOL_7_BLUE) + || (sym1 == SYMBOL_7_BLUE && sym3 == SYMBOL_7_RED))) break; i++; } } - else if (AreTagsMixed77(tag1, tag2)) + // First two symbols are opposite-color 7's + else if (MismatchedSyms_77(sym1, sym2)) { - if (sSlotMachine->luckyFlags & LUCKY_BIAS_777) + // If biased toward straight 7's, try to complete the 7 mismatch in 4 + // turns + if (sSlotMachine->machineBias & BIAS_STRAIGHT_7) { - //...see if you can match with reel 1 within 4 turns - for (i = 0; i < 5; i++) + for (i = 0; i <= MAX_EXTRA_TURNS; i++) { - if (tag1 == GetTag(RIGHT_REEL, 2 - i)) + if (sym1 == GetSymbol(RIGHT_REEL, 2 - i)) { sSlotMachine->reelExtraTurns[2] = i; return; } } } - // turn until you aren't matching with reel 1 + + // Otherwise, just spin until you get a non-matching symbol i = 0; - while (1) + while (TRUE) { - if (tag1 != GetTag(RIGHT_REEL, 2 - i)) + if (sym1 != GetSymbol(RIGHT_REEL, 2 - i)) break; i++; } @@ -2615,25 +3006,49 @@ static void DecideReelTurns_NoBiasTag_Reel3_Bet1(void) sSlotMachine->reelExtraTurns[2] = i; } -static void DecideReelTurns_NoBiasTag_Reel3_Bet2(void) +// Spin until there is no match in reel 3. Additionally, if the player failed a +// straight 7 bias, try to taunt them with a 7 mismatch. +// +// There are up to two stages, depending on the first two matched symbols: +// +// 1. [Optional] If first two symbols are opposite-color 7's in the same row and +// the machine is biased toward straight 7's: +// Check if a 7 with the same color as reel 1 appears in the same row +// within 4 turns. If so, initially advance to that position. +// +// 2. Check rows. Keep advancing the reel a turn at a time as long as: +// - There is a match in any row +// - Or, there is a 7 mismatch in any row and the machine isn't biased +// toward straight 7's +// +// Note, stage 2 is not limited to 4 turns. The reel keeps spinning until you +// lose. +static void DecideStop_NoBias_Reel3_Bet2(void) { s16 extraTurns = 0; s16 i; - u8 tag1; - u8 tag2; - u8 tag3; - if (sSlotMachine->winnerRows[1] != 0 && sSlotMachine->winnerRows[0] == sSlotMachine->winnerRows[1] && sSlotMachine->luckyFlags & LUCKY_BIAS_777) + u8 sym1; + u8 sym2; + u8 sym3; + + // Effectively, if you lined up two 7's in the same row + if (sSlotMachine->winnerRows[1] != 0 && + sSlotMachine->winnerRows[0] == sSlotMachine->winnerRows[1] && + sSlotMachine->machineBias & BIAS_STRAIGHT_7) { - tag1 = GetTag(LEFT_REEL, sSlotMachine->winnerRows[0] - sSlotMachine->reelExtraTurns[0]); - tag2 = GetTag(MIDDLE_REEL, sSlotMachine->winnerRows[1] - sSlotMachine->reelExtraTurns[1]); - //...and if tags are mixed 7s... - if (AreTagsMixed77(tag1, tag2)) + sym1 = GetSymbol(LEFT_REEL, sSlotMachine->winnerRows[0] - sSlotMachine->reelExtraTurns[0]); + sym2 = GetSymbol(MIDDLE_REEL, sSlotMachine->winnerRows[1] - sSlotMachine->reelExtraTurns[1]); + + // If the first two 7's are opposite colors, see if you can line up a 7 + // mismatch in the same row. If so, advance initially to that position. + // More turns may be added further below. + if (MismatchedSyms_77(sym1, sym2)) { - //...try to match with reel 1 within 4 turns - for (i = 0; i < 5; i++) + // Iterate over the next 4 turns + for (i = 0; i <= MAX_EXTRA_TURNS; i++) { - tag3 = GetTag(RIGHT_REEL, sSlotMachine->winnerRows[1] - i); - if (tag1 == tag3) + sym3 = GetSymbol(RIGHT_REEL, sSlotMachine->winnerRows[1] - i); + if (sym1 == sym3) { extraTurns = i; break; @@ -2641,53 +3056,100 @@ static void DecideReelTurns_NoBiasTag_Reel3_Bet2(void) } } } - // GUESS: spin until there's no possible match within 4 turns of you stopping - while (1) + + while (TRUE) { - s16 loopExit; - for (i = 1, loopExit = 0; i < 4; i++) + s16 numMatches; + // Iterate over the rows of the screen after `extraTurns` turns + for (i = 1, numMatches = 0; i <= 3; i++) { - tag1 = GetTag(LEFT_REEL, i - sSlotMachine->reelExtraTurns[0]); // why does this update with i - tag2 = GetTag(MIDDLE_REEL, i - sSlotMachine->reelExtraTurns[1]); - tag3 = GetTag(RIGHT_REEL, i - extraTurns); - // if bit 7 of luckyFlags is unset... - //...and if all 3 tags match and they're not mixed 7s - if (!TagsDontMatchOrHaveAny7s(tag1, tag2, tag3) && (!AreTagsMixed777(tag1, tag2, tag3) || !(sSlotMachine->luckyFlags & LUCKY_BIAS_777))) + sym1 = GetSymbol(LEFT_REEL, i - sSlotMachine->reelExtraTurns[0]); + sym2 = GetSymbol(MIDDLE_REEL, i - sSlotMachine->reelExtraTurns[1]); + sym3 = GetSymbol(RIGHT_REEL, i - extraTurns); + + // This boils down to: + // If there's a match on screen, keep spinning. Otherwise, if + // there's a 7 mismatch on screen, keep spinning if the machine + // isn't biased toward straight 7's. + if (!NeitherMatchNor7Mismatch(sym1, sym2, sym3) && + !(MismatchedSyms_777(sym1, sym2, sym3) && (sSlotMachine->machineBias & BIAS_STRAIGHT_7))) { - loopExit++; + numMatches++; break; } } - if (loopExit == 0) + + // If no matches were found, stop here. Otherwise, add an extra spin and + // check again. + if (numMatches == 0) break; extraTurns++; } sSlotMachine->reelExtraTurns[2] = extraTurns; } -static void DecideReelTurns_NoBiasTag_Reel3_Bet3(void) +// Try to spin until there is no match in reel 3. Additionally, if the player +// failed a straight 7 bias, try to taunt them with a 7 mismatch. +// +// There are up to four stages: +// +// 1. Advance the reel as if 2 coins were bet: to mildly oversimplify, spin +// until there's no matches straight across in any rows. +// +// 2. [Optional] If you've lined up two opposite-color 7's diagonally and the +// machine is biased toward straight 7's: +// Check if a 7 with the same color as reel 1 appears in the final diagonal +// position within 4 turns. If so, advance to that position. +// +// 3. Check NWSE diagonal. Keep advancing the reel a turn at a time as long as: +// - There is a match in the diagonal +// - Or, there is a 7 mismatch in the diagonal and the machine isn't +// biased toward straight 7's +// +// 3. Check NESW diagonal. Keep advancing the reel a turn at a time as long as: +// - There is a match in the diagonal +// - Or, there is a 7 mismatch in the diagonal and the machine isn't +// biased toward straight 7's +// +// Note that stages 3 and 4 are not limited to 4 turns. +// +// Also, note that it actually is possible to win a match here. After stage 1, +// the game never again checks whether it will be matching any rows straight +// across. So any extra turns added in stages 2-4 could result in a match +// occurring straight across. +static void DecideStop_NoBias_Reel3_Bet3(void) { - u8 tag1; - u8 tag2; - u8 tag3; - s16 j; + u8 sym1; + u8 sym2; + u8 sym3; + s16 row; s16 i; - DecideReelTurns_NoBiasTag_Reel3_Bet2(); - if (sSlotMachine->winnerRows[1] != 0 && sSlotMachine->winnerRows[0] != sSlotMachine->winnerRows[1] && sSlotMachine->luckyFlags & LUCKY_BIAS_777) + // Spin until there's no matches in any row straight across, potentially + // skewing toward a 7 mismatch. Consider this the new starting position for + // this function. + DecideStop_NoBias_Reel3_Bet2(); + + // Essentially, if you lined up two 7's diagonally + if (sSlotMachine->winnerRows[1] != 0 && + sSlotMachine->winnerRows[0] != sSlotMachine->winnerRows[1] && + sSlotMachine->machineBias & BIAS_STRAIGHT_7) { - tag1 = GetTag(LEFT_REEL, sSlotMachine->winnerRows[0] - sSlotMachine->reelExtraTurns[0]); - tag2 = GetTag(MIDDLE_REEL, sSlotMachine->winnerRows[1] - sSlotMachine->reelExtraTurns[1]); - //..and if tags are mixed 7s... - if (AreTagsMixed77(tag1, tag2)) + sym1 = GetSymbol(LEFT_REEL, sSlotMachine->winnerRows[0] - sSlotMachine->reelExtraTurns[0]); + sym2 = GetSymbol(MIDDLE_REEL, sSlotMachine->winnerRows[1] - sSlotMachine->reelExtraTurns[1]); + + // If the first two 7's are opposite colors, try advancing up to 4 + // additional turns to line up a diagonal 7 mismatch. More turns may be + // added further below. + if (MismatchedSyms_77(sym1, sym2)) { - j = 1; + row = 1; if (sSlotMachine->winnerRows[0] == 1) - j = 3; - for (i = 0; i < 5; i++) + row = 3; + for (i = 0; i <= MAX_EXTRA_TURNS; i++) { - tag3 = GetTag(RIGHT_REEL, j - (sSlotMachine->reelExtraTurns[2] + i)); - if (tag1 == tag3) + sym3 = GetSymbol(RIGHT_REEL, row - (sSlotMachine->reelExtraTurns[2] + i)); + if (sym1 == sym3) { sSlotMachine->reelExtraTurns[2] += i; break; @@ -2695,21 +3157,27 @@ static void DecideReelTurns_NoBiasTag_Reel3_Bet3(void) } } } - while (1) + + while (TRUE) { - tag1 = GetTag(LEFT_REEL, 1 - sSlotMachine->reelExtraTurns[0]); - tag2 = GetTag(MIDDLE_REEL, 2 - sSlotMachine->reelExtraTurns[1]); - tag3 = GetTag(RIGHT_REEL, 3 - sSlotMachine->reelExtraTurns[2]); - if (TagsDontMatchOrHaveAny7s(tag1, tag2, tag3) || (AreTagsMixed777(tag1, tag2, tag3) && sSlotMachine->luckyFlags & LUCKY_BIAS_777)) + // Check NWSE diagonal + sym1 = GetSymbol(LEFT_REEL, 1 - sSlotMachine->reelExtraTurns[0]); + sym2 = GetSymbol(MIDDLE_REEL, 2 - sSlotMachine->reelExtraTurns[1]); + sym3 = GetSymbol(RIGHT_REEL, 3 - sSlotMachine->reelExtraTurns[2]); + if (NeitherMatchNor7Mismatch(sym1, sym2, sym3) + || (MismatchedSyms_777(sym1, sym2, sym3) && sSlotMachine->machineBias & BIAS_STRAIGHT_7)) break; sSlotMachine->reelExtraTurns[2]++; } - while (1) + + while (TRUE) { - tag1 = GetTag(LEFT_REEL, 3 - sSlotMachine->reelExtraTurns[0]); - tag2 = GetTag(MIDDLE_REEL, 2 - sSlotMachine->reelExtraTurns[1]); - tag3 = GetTag(RIGHT_REEL, 1 - sSlotMachine->reelExtraTurns[2]); - if (TagsDontMatchOrHaveAny7s(tag1, tag2, tag3) || (AreTagsMixed777(tag1, tag2, tag3) && sSlotMachine->luckyFlags & LUCKY_BIAS_777)) + // Check NESW diagonal + sym1 = GetSymbol(LEFT_REEL, 3 - sSlotMachine->reelExtraTurns[0]); + sym2 = GetSymbol(MIDDLE_REEL, 2 - sSlotMachine->reelExtraTurns[1]); + sym3 = GetSymbol(RIGHT_REEL, 1 - sSlotMachine->reelExtraTurns[2]); + if (NeitherMatchNor7Mismatch(sym1, sym2, sym3) + || (MismatchedSyms_777(sym1, sym2, sym3) && sSlotMachine->machineBias & BIAS_STRAIGHT_7)) break; sSlotMachine->reelExtraTurns[2]++; } @@ -2724,7 +3192,7 @@ static void PressStopReelButton(u8 reelNum) static void Task_PressStopReelButton(u8 taskId) { - sReelStopButtonFuncs[gTasks[taskId].data[0]](&gTasks[taskId], taskId); + sReelStopButtonTasks[gTasks[taskId].data[0]](&gTasks[taskId], taskId); } static void StopReelButton_Press(struct Task *task, u8 taskId) @@ -2930,11 +3398,11 @@ static void CreatePikaPowerBoltTask(void) sSlotMachine->pikaPowerBoltTaskId = CreateTask(Task_CreatePikaPowerBolt, 8); } -static void AddPikaPowerBolt(u8 pikaPower) +static void AddPikaPowerBolt(u8 bolts) { struct Task *task = &gTasks[sSlotMachine->pikaPowerBoltTaskId]; ResetPikaPowerBoltTask(task); - task->tState = 1; + task->tState = PIKABOLT_TASK_ADD_BOLT; task->tNumBolts++; task->tAnimating = TRUE; } @@ -2943,7 +3411,7 @@ static void ResetPikaPowerBolts(void) { struct Task *task = &gTasks[sSlotMachine->pikaPowerBoltTaskId]; ResetPikaPowerBoltTask(task); - task->tState = 3; + task->tState = PIKABOLT_TASK_CLEAR_ALL; task->tAnimating = TRUE; } @@ -2954,7 +3422,7 @@ static bool8 IsPikaPowerBoltAnimating(void) static void Task_CreatePikaPowerBolt(u8 taskId) { - sPikaPowerBoltFuncs[gTasks[taskId].tState](&gTasks[taskId]); + sPikaPowerBoltTasks[gTasks[taskId].tState](&gTasks[taskId]); } static void PikaPowerBolt_Idle(struct Task *task) @@ -2964,7 +3432,7 @@ static void PikaPowerBolt_Idle(struct Task *task) static void PikaPowerBolt_AddBolt(struct Task *task) { task->tSpriteId = CreatePikaPowerBoltSprite((task->tNumBolts << 3) + 20, 20); - task->tState++; + task->tState++; // PIKABOLT_TASK_WAIT_ANIM } // The bolt sprite spins around as it appears @@ -2983,7 +3451,7 @@ static void PikaPowerBolt_WaitAnim(struct Task *task) sSelectedPikaPowerTile[r2] = sPikaPowerTileTable[r3][0]; LoadBgTilemap(2, &sSelectedPikaPowerTile[r2], 2, r5 + 0x40); DestroyPikaPowerBoltSprite(task->tSpriteId); - task->tState = 0; + task->tState = PIKABOLT_TASK_IDLE; task->tAnimating = 0; } } @@ -3007,7 +3475,7 @@ static void PikaPowerBolt_ClearAll(struct Task *task) task->tTimer = 0; if (task->tNumBolts == 0) { - task->tState = 0; + task->tState = PIKABOLT_TASK_IDLE; task->tAnimating = 0; } } @@ -3020,17 +3488,17 @@ static void ResetPikaPowerBoltTask(struct Task *task) task->data[i] = 0; } -static void LoadPikaPowerMeter(u8 pikaPower) +static void LoadPikaPowerMeter(u8 bolts) { s16 i; s16 r3 = 0, r1 = 0; s16 r4 = 3; - for (i = 0; i < pikaPower; i++, r4++) + for (i = 0; i < bolts; i++, r4++) { r3 = 0, r1 = 0; if (i == 0) r3 = 1, r1 = 1; - else if (i == 15) // pikaPower meter is full + else if (i == 15) // meter is full r3 = 2, r1 = 2; sSelectedPikaPowerTile[r1] = sPikaPowerTileTable[r3][0]; LoadBgTilemap(2, &sSelectedPikaPowerTile[r1], 2, r4 + 0x40); @@ -3045,7 +3513,7 @@ static void LoadPikaPowerMeter(u8 pikaPower) sSelectedPikaPowerTile[r1] = sPikaPowerTileTable[r3][1]; LoadBgTilemap(2, &sSelectedPikaPowerTile[r1], 2, r4 + 0x40); } - gTasks[sSlotMachine->pikaPowerBoltTaskId].data[1] = pikaPower; + gTasks[sSlotMachine->pikaPowerBoltTaskId].data[1] = bolts; } #undef tState @@ -3054,7 +3522,13 @@ static void LoadPikaPowerMeter(u8 pikaPower) #undef tTimer #undef tAnimating -#define tState data[0] +#define tState data[0] +#define tReelSpeed data[1] +#define tTimer3 data[2] +#define tRtReelSpeed data[4] +#define tTimer2 data[4] +#define tTimer1 data[5] +#define tExplodeChecks data[6] static void BeginReelTime(void) { @@ -3071,10 +3545,7 @@ static bool8 IsReelTimeTaskDone(void) static void Task_ReelTime(u8 taskId) { - // task.data[1] has something to do with the threshold - // task.data[4] says how many pixels to advance the reel - // task.data[5] is a timer - sReelTimeActions[gTasks[taskId].tState](&gTasks[taskId]); + sReelTimeTasks[gTasks[taskId].tState](&gTasks[taskId]); } static void ReelTime_Init(struct Task *task) @@ -3082,10 +3553,10 @@ static void ReelTime_Init(struct Task *task) sSlotMachine->reelTimeSpinsLeft = 0; sSlotMachine->reeltimePixelOffset = 0; sSlotMachine->reeltimePosition = 0; - task->tState++; + task->tState++; // RT_TASK_WINDOW_ENTER task->data[1] = 0; task->data[2] = 30; - task->data[4] = 1280; // reel speed + task->tRtReelSpeed = 1280; gSpriteCoordOffsetX = 0; gSpriteCoordOffsetY = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); @@ -3096,7 +3567,7 @@ static void ReelTime_Init(struct Task *task) CreateReelTimeNumberSprites(); CreateReelTimeShadowSprites(); CreateReelTimeNumberGapSprite(); - GetReeltimeDraw(); + GetReelTimeDraw(); StopMapMusic(); PlayNewMapMusic(MUS_ROULETTE); } @@ -3116,18 +3587,18 @@ static void ReelTime_WindowEnter(struct Task *task) } if (task->data[1] >= 200) { - task->tState++; + task->tState++; // RT_TASK_WAIT_START_PIKA task->data[3] = 0; } - AdvanceReeltimeReel(task->data[4] >> 8); + AdvanceReeltimeReel(task->tRtReelSpeed >> 8); } static void ReelTime_WaitStartPikachu(struct Task *task) { - AdvanceReeltimeReel(task->data[4] >> 8); - if (++task->data[5] >= 60) + AdvanceReeltimeReel(task->tRtReelSpeed >> 8); + if (++task->tTimer1 >= 60) { - task->tState++; + task->tState++; // RT_TASK_PIKA_SPEEDUP1 CreateReelTimeBoltSprites(); CreateReelTimePikachuAuraSprites(); } @@ -3144,29 +3615,29 @@ static void ReelTime_PikachuSpeedUp1(struct Task *task) memcpy(reelTimeBoltDelays, sReelTimeBoltDelays, sizeof(sReelTimeBoltDelays)); memcpy(pikachuAuraFlashDelays, sPikachuAuraFlashDelays, sizeof(sPikachuAuraFlashDelays)); - AdvanceReeltimeReel(task->data[4] >> 8); + AdvanceReeltimeReel(task->tRtReelSpeed >> 8); // gradually slow down the reel - task->data[4] -= 4; - i = 4 - (task->data[4] >> 8); + task->tRtReelSpeed -= 4; + i = 4 - (task->tRtReelSpeed >> 8); SetReelTimeBoltDelay(reelTimeBoltDelays[i]); SetReelTimePikachuAuraFlashDelay(pikachuAuraFlashDelays[i]); StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], pikachuAnimIds[i]); - // once speed goes below 256, go to next ReelTimeAction and keep the speed level - if (task->data[4] <= 0x100) + // once speed goes below 256, go to next ReelTime task and keep the speed level + if (task->tRtReelSpeed <= 0x100) { - task->tState++; - task->data[4] = 0x100; - task->data[5] = 0; + task->tState++; // RT_TASK_PIKA_SPEEDUP2 + task->tRtReelSpeed = 0x100; + task->tTimer1 = 0; } } static void ReelTime_PikachuSpeedUp2(struct Task *task) { - AdvanceReeltimeReel(task->data[4] >> 8); - if (++task->data[5] >= 80) + AdvanceReeltimeReel(task->tRtReelSpeed >> 8); + if (++task->tTimer1 >= 80) { - task->tState++; - task->data[5] = 0; + task->tState++; // RT_TASK_WAIT_REEL + task->tTimer1 = 0; SetReelTimePikachuAuraFlashDelay(2); StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], 3); } @@ -3174,83 +3645,94 @@ static void ReelTime_PikachuSpeedUp2(struct Task *task) static void ReelTime_WaitReel(struct Task *task) { - AdvanceReeltimeReel(task->data[4] >> 8); - task->data[4] = (u8)task->data[4] + 0x80; - if (++task->data[5] >= 80) + AdvanceReeltimeReel(task->tRtReelSpeed >> 8); + task->tRtReelSpeed = (u8)task->tRtReelSpeed + 0x80; + if (++task->tTimer1 >= 80) { - task->tState++; - task->data[5] = 0; + task->tState++; // RT_TASK_CHECK_EXPLODE + task->tTimer1 = 0; } } +// Check whether the ReelTime machine should explode. +// +// The ReelTime machine displays 0 when this task starts. If there is a positive +// ReelTime draw, the machine keeps spinning until it lands on that number. +// +// Otherwise, it checks every 40 frames whether it should explode. If so, it +// explodes immediately. After 4 checks, the machine won't explode but continues +// to spin until it lands on 0. static void ReelTime_CheckExplode(struct Task *task) { - AdvanceReeltimeReel(task->data[4] >> 8); - task->data[4] = (u8)task->data[4] + 0x40; - if (++task->data[5] >= 40) + AdvanceReeltimeReel(task->tRtReelSpeed >> 8); + task->tRtReelSpeed = (u8)task->tRtReelSpeed + 0x40; + if (++task->tTimer1 >= 40) { - task->data[5] = 0; + task->tTimer1 = 0; if (sSlotMachine->reelTimeDraw) { - if (sSlotMachine->reelTimeSpinsLeft <= task->data[6]) - task->tState++; + if (sSlotMachine->reelTimeSpinsLeft <= task->tExplodeChecks) + task->tState++; // RT_TASK_LAND } - else if (task->data[6] > 3) + else if (task->tExplodeChecks > 3) { - task->tState++; + task->tState++; // RT_TASK_LAND } - else if (ShouldReelTimeMachineExplode(task->data[6])) + else if (ShouldReelTimeMachineExplode(task->tExplodeChecks)) { - task->tState = 14; // ReelTime_ExplodeMachine + task->tState = RT_TASK_EXPLODE; } - task->data[6]++; + task->tExplodeChecks++; } } +// Reel spins until it lands on the selected outcome. static void ReelTime_LandOnOutcome(struct Task *task) { s16 reeltimePixelOffset = sSlotMachine->reeltimePixelOffset % 20; if (reeltimePixelOffset) { - reeltimePixelOffset = AdvanceReeltimeReelToNextTag(task->data[4] >> 8); - task->data[4] = (u8)task->data[4] + 0x40; + reeltimePixelOffset = AdvanceReeltimeReelToNextSymbol(task->tRtReelSpeed >> 8); + task->tRtReelSpeed = (u8)task->tRtReelSpeed + 0x40; } - else if (GetNearbyReelTimeTag(1) != sSlotMachine->reelTimeDraw) + else if (GetReelTimeSymbol(1) != sSlotMachine->reelTimeDraw) { - AdvanceReeltimeReel(task->data[4] >> 8); + AdvanceReeltimeReel(task->tRtReelSpeed >> 8); reeltimePixelOffset = sSlotMachine->reeltimePixelOffset % 20; - task->data[4] = (u8)task->data[4] + 0x40; + task->tRtReelSpeed = (u8)task->tRtReelSpeed + 0x40; } - if (reeltimePixelOffset == 0 && GetNearbyReelTimeTag(1) == sSlotMachine->reelTimeDraw) + if (reeltimePixelOffset == 0 && GetReelTimeSymbol(1) == sSlotMachine->reelTimeDraw) { - task->data[4] = 0; // stop moving - task->tState++; + task->tRtReelSpeed = 0; // Also initializes task->tTimer2 + task->tState++; // RT_TASK_PIKA_REACT } } +// Animate Pikachu reaction. Clear any power bolts the player may have won if +// they got a positive ReelTime draw. static void ReelTime_PikachuReact(struct Task *task) { - if (++task->data[4] >= 60) + if (++task->tTimer2 >= 60) { StopMapMusic(); DestroyReelTimeBoltSprites(); DestroyReelTimePikachuAuraSprites(); - task->tState++; + task->tState++; // RT_TASK_WAIT_CLEAR_POWER if(sSlotMachine->reelTimeDraw == 0) { - task->data[4] = 0xa0; + task->tTimer2 = 0xa0; StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], 5); PlayFanfare(MUS_TOO_BAD); } else { - task->data[4] = 0xc0; + task->tTimer2 = 0xc0; StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], 4); gSprites[sSlotMachine->reelTimePikachuSpriteId].animCmdIndex = 0; - if (sSlotMachine->pikaPower) + if (sSlotMachine->pikaPowerBolts) { ResetPikaPowerBolts(); - sSlotMachine->pikaPower = 0; + sSlotMachine->pikaPowerBolts = 0; } PlayFanfare(MUS_SLOTS_WIN); } @@ -3259,8 +3741,8 @@ static void ReelTime_PikachuReact(struct Task *task) static void ReelTime_WaitClearPikaPower(struct Task *task) { - if ((task->data[4] == 0 || --task->data[4] == 0) && !IsPikaPowerBoltAnimating()) - task->tState++; + if ((task->tTimer2 == 0 || --task->tTimer2 == 0) && !IsPikaPowerBoltAnimating()) + task->tState++; // RT_TASK_CLOSE_WINDOW_SUCCESS } static void ReelTime_CloseWindow(struct Task *task) @@ -3274,16 +3756,20 @@ static void ReelTime_CloseWindow(struct Task *task) if (task->data[3] >> 3 <= 25) ClearReelTimeWindowTilemap(r4); else - task->tState++; + task->tState++; // RT_TASK_DESTROY_SPRITES } +// Destroy sprites and wrap up the ReelTime task. +// +// If the player got a positive ReelTime draw, select the speed that the slot +// reels will initially move at. static void ReelTime_DestroySprites(struct Task *task) { sSlotMachine->reelTimeSpinsUsed = 0; sSlotMachine->reelTimeSpinsLeft = sSlotMachine->reelTimeDraw; gSpriteCoordOffsetX = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); - sSlotMachine->reelIncrement = 8; + sSlotMachine->reelSpeed = REEL_NORMAL_SPEED; DestroyReelTimePikachuSprite(); DestroyReelTimeMachineSprites(); DestroyReelTimeShadowSprites(); @@ -3295,19 +3781,20 @@ static void ReelTime_DestroySprites(struct Task *task) else { CreateDigitalDisplayScene(DIG_DISPLAY_REEL_TIME); - task->data[1] = SlowReelSpeed(); - task->data[2] = 0; + task->tReelSpeed = ReelTimeSpeed(); + task->tTimer3 = 0; task->data[3] = 0; - task->tState++; + task->tState++; // RT_TASK_SET_REEL_SPEED } } -static void ReelTime_SetReelIncrement(struct Task *task) +// Slow the slot reels down until they match the selected speed. +static void ReelTime_SetReelSpeed(struct Task *task) { - if (sSlotMachine->reelIncrement == task->data[1]) - task->tState++; - else if (sSlotMachine->reelPixelOffsets[0] % REEL_SYMBOL_HEIGHT == 0 && (++task->data[2]& 0x07) == 0) - sSlotMachine->reelIncrement >>= 1; + if (sSlotMachine->reelSpeed == task->tReelSpeed) + task->tState++; // RT_TASK_END_SUCCESS + else if (sSlotMachine->reelPixelOffsets[0] % REEL_SYMBOL_HEIGHT == 0 && (++task->tTimer3 & 0x07) == 0) + sSlotMachine->reelSpeed >>= 1; } static void ReelTime_EndSuccess(struct Task *task) @@ -3324,9 +3811,9 @@ static void ReelTime_ExplodeMachine(struct Task *task) CreateReelTimeExplosionSprite(); gSprites[sSlotMachine->reelTimeShadowSpriteIds[0]].invisible = TRUE; StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], 5); - task->tState++; + task->tState++; // RT_TASK_WAIT_EXPLODE task->data[4] = 4; - task->data[5] = 0; + task->tTimer1 = 0; StopMapMusic(); PlayFanfare(MUS_TOO_BAD); PlaySE(SE_M_EXPLOSION); @@ -3336,9 +3823,9 @@ static void ReelTime_WaitExplode(struct Task *task) { gSpriteCoordOffsetY = task->data[4]; SetGpuReg(REG_OFFSET_BG1VOFS, task->data[4]); - if (task->data[5] & 0x01) + if (task->tTimer1 & 0x01) task->data[4] = -task->data[4]; - if ((++task->data[5] & 0x1f) == 0) + if ((++task->tTimer1 & 0x1f) == 0) task->data[4] >>= 1; if (task->data[4] == 0) { @@ -3347,8 +3834,8 @@ static void ReelTime_WaitExplode(struct Task *task) CreateBrokenReelTimeMachineSprite(); CreateReelTimeSmokeSprite(); gSprites[sSlotMachine->reelTimeShadowSpriteIds[0]].invisible = FALSE; - task->tState++; - task->data[5] = 0; + task->tState++; // RT_TASK_WAIT_SMOKE + task->tTimer1 = 0; } } @@ -3358,7 +3845,7 @@ static void ReelTime_WaitSmoke(struct Task *task) SetGpuReg(REG_OFFSET_BG1VOFS, 0); if (IsReelTimeSmokeAnimFinished()) { - task->tState++; + task->tState++; // RT_TASK_CLOSE_WINDOW_FAILURE DestroyReelTimeSmokeSprite(); } } @@ -3396,28 +3883,33 @@ static void ClearReelTimeWindowTilemap(s16 a0) } #undef tState +#undef tReelSpeed +#undef tRtReelSpeed +#undef tTimer2 +#undef tTimer1 +#undef tExplodeChecks #define tState data[0] // Info Box is the screen shown when Select is pressed static void OpenInfoBox(u8 digDisplayId) { - u8 taskId = CreateTask(RunInfoBoxActions, 1); + u8 taskId = CreateTask(Task_InfoBox, 1); gTasks[taskId].data[1] = digDisplayId; - RunInfoBoxActions(taskId); + Task_InfoBox(taskId); } static bool8 IsInfoBoxClosed(void) { - if (FindTaskIdByFunc(RunInfoBoxActions) == TASK_NONE) + if (FindTaskIdByFunc(Task_InfoBox) == TASK_NONE) return TRUE; else return FALSE; } -static void RunInfoBoxActions(u8 taskId) +static void Task_InfoBox(u8 taskId) { - sInfoBoxActions[gTasks[taskId].tState](&gTasks[taskId]); + sInfoBoxTasks[gTasks[taskId].tState](&gTasks[taskId]); } static void InfoBox_FadeIn(struct Task *task) @@ -3426,7 +3918,7 @@ static void InfoBox_FadeIn(struct Task *task) task->tState++; } -static void InfoBox_WaitForFade(struct Task *task) +static void InfoBox_WaitFade(struct Task *task) { if (!gPaletteFade.active) task->tState++; @@ -3450,7 +3942,7 @@ static void InfoBox_AddText(struct Task *task) task->tState++; } -static void InfoBox_AwaitPlayerInput(struct Task *task) +static void InfoBox_WaitInput(struct Task *task) { if (JOY_NEW(B_BUTTON | SELECT_BUTTON)) { @@ -3478,14 +3970,14 @@ static void InfoBox_CreateDigitalDisplay(struct Task *task) static void InfoBox_LoadPikaPowerMeter(struct Task *task) { - LoadPikaPowerMeter(sSlotMachine->pikaPower); + LoadPikaPowerMeter(sSlotMachine->pikaPowerBolts); BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB(0, 0, 0)); task->tState++; } static void InfoBox_FreeTask(struct Task *task) { - DestroyTask(FindTaskIdByFunc(RunInfoBoxActions)); + DestroyTask(FindTaskIdByFunc(Task_InfoBox)); } #undef tState @@ -3576,7 +4068,7 @@ static bool8 IsDigitalDisplayAnimFinished(void) static void Task_DigitalDisplay(u8 taskId) { - sDigitalDisplayActions[gTasks[taskId].data[0]](&gTasks[taskId]); + sDigitalDisplayTasks[gTasks[taskId].data[0]](&gTasks[taskId]); } static void DigitalDisplay_Idle(struct Task *task) @@ -3605,8 +4097,8 @@ static void SpriteCB_ReelSymbol(struct Sprite *sprite) { sprite->data[2] = sSlotMachine->reelPixelOffsets[sprite->data[0]] + sprite->data[1]; sprite->data[2] %= 120; - sprite->y = sSlotMachine->reelPixelOffsetsWhileStopping[sprite->data[0]] + 28 + sprite->data[2]; - sprite->sheetTileStart = GetSpriteTileStartByTag(GetTagAtRest(sprite->data[0], sprite->data[2] / 24)); + sprite->y = sSlotMachine->reelShockOffsets[sprite->data[0]] + 28 + sprite->data[2]; + sprite->sheetTileStart = GetSpriteTileStartByTag(GetSymbolAtRest(sprite->data[0], sprite->data[2] / 24)); SetSpriteSheetFrameTileNum(sprite); } @@ -3777,7 +4269,7 @@ static void SpriteCB_ReelTimeNumbers(struct Sprite *sprite) s16 r0 = (u16)(sSlotMachine->reeltimePixelOffset + sprite->data[7]); r0 %= 40; sprite->y = r0 + 59; - StartSpriteAnimIfDifferent(sprite, GetNearbyReelTimeTag(r0 / 20)); + StartSpriteAnimIfDifferent(sprite, GetReelTimeSymbol(r0 / 20)); } static void CreateReelTimeShadowSprites(void) @@ -4724,135 +5216,233 @@ static void AllocDigitalDisplayGfx(void) sImageTable_DigitalDisplay_DPad[1].size = 0x180; } -static const u8 sReelSymbolTileTags[NUM_REELS][SYMBOLS_PER_REEL] = +static const u8 sReelSymbols[NUM_REELS][SYMBOLS_PER_REEL] = { [LEFT_REEL] = { - GFXTAG_7_RED, - GFXTAG_CHERRY, - GFXTAG_AZURILL, - GFXTAG_REPLAY, - GFXTAG_POWER, - GFXTAG_LOTAD, - GFXTAG_7_BLUE, - GFXTAG_LOTAD, - GFXTAG_CHERRY, - GFXTAG_POWER, - GFXTAG_REPLAY, - GFXTAG_AZURILL, - GFXTAG_7_RED, - GFXTAG_POWER, - GFXTAG_LOTAD, - GFXTAG_REPLAY, - GFXTAG_AZURILL, - GFXTAG_7_BLUE, - GFXTAG_POWER, - GFXTAG_LOTAD, - GFXTAG_REPLAY + SYMBOL_7_RED, + SYMBOL_CHERRY, + SYMBOL_AZURILL, + SYMBOL_REPLAY, + SYMBOL_POWER, + SYMBOL_LOTAD, + SYMBOL_7_BLUE, + SYMBOL_LOTAD, + SYMBOL_CHERRY, + SYMBOL_POWER, + SYMBOL_REPLAY, + SYMBOL_AZURILL, + SYMBOL_7_RED, + SYMBOL_POWER, + SYMBOL_LOTAD, + SYMBOL_REPLAY, + SYMBOL_AZURILL, + SYMBOL_7_BLUE, + SYMBOL_POWER, + SYMBOL_LOTAD, + SYMBOL_REPLAY }, [MIDDLE_REEL] = { - GFXTAG_7_RED, - GFXTAG_CHERRY, - GFXTAG_REPLAY, - GFXTAG_LOTAD, - GFXTAG_AZURILL, - GFXTAG_CHERRY, - GFXTAG_REPLAY, - GFXTAG_POWER, - GFXTAG_POWER, - GFXTAG_LOTAD, - GFXTAG_7_BLUE, - GFXTAG_LOTAD, - GFXTAG_REPLAY, - GFXTAG_CHERRY, - GFXTAG_AZURILL, - GFXTAG_LOTAD, - GFXTAG_REPLAY, - GFXTAG_CHERRY, - GFXTAG_LOTAD, - GFXTAG_REPLAY, - GFXTAG_CHERRY + SYMBOL_7_RED, + SYMBOL_CHERRY, + SYMBOL_REPLAY, + SYMBOL_LOTAD, + SYMBOL_AZURILL, + SYMBOL_CHERRY, + SYMBOL_REPLAY, + SYMBOL_POWER, + SYMBOL_POWER, + SYMBOL_LOTAD, + SYMBOL_7_BLUE, + SYMBOL_LOTAD, + SYMBOL_REPLAY, + SYMBOL_CHERRY, + SYMBOL_AZURILL, + SYMBOL_LOTAD, + SYMBOL_REPLAY, + SYMBOL_CHERRY, + SYMBOL_LOTAD, + SYMBOL_REPLAY, + SYMBOL_CHERRY }, [RIGHT_REEL] = { - GFXTAG_7_RED, - GFXTAG_POWER, - GFXTAG_7_BLUE, - GFXTAG_REPLAY, - GFXTAG_LOTAD, - GFXTAG_AZURILL, - GFXTAG_REPLAY, - GFXTAG_LOTAD, - GFXTAG_POWER, - GFXTAG_AZURILL, - GFXTAG_REPLAY, - GFXTAG_LOTAD, - GFXTAG_AZURILL, - GFXTAG_POWER, - GFXTAG_REPLAY, - GFXTAG_LOTAD, - GFXTAG_AZURILL, - GFXTAG_POWER, - GFXTAG_REPLAY, - GFXTAG_LOTAD, - GFXTAG_CHERRY + SYMBOL_7_RED, + SYMBOL_POWER, + SYMBOL_7_BLUE, + SYMBOL_REPLAY, + SYMBOL_LOTAD, + SYMBOL_AZURILL, + SYMBOL_REPLAY, + SYMBOL_LOTAD, + SYMBOL_POWER, + SYMBOL_AZURILL, + SYMBOL_REPLAY, + SYMBOL_LOTAD, + SYMBOL_AZURILL, + SYMBOL_POWER, + SYMBOL_REPLAY, + SYMBOL_LOTAD, + SYMBOL_AZURILL, + SYMBOL_POWER, + SYMBOL_REPLAY, + SYMBOL_LOTAD, + SYMBOL_CHERRY }, }; -static const u8 sReelTimeTags[] = { +static const u8 sReelTimeSymbols[] = { 1, 0, 5, 4, 3, 2 }; +// Column 0: Normal game +// Column 1: Lucky game static const s16 sInitialReelPositions[NUM_REELS][2] = { [LEFT_REEL] = {0, 6}, [MIDDLE_REEL] = {0, 10}, [RIGHT_REEL] = {0, 2} }; -static const u8 sLuckyRoundProbabilities[][3] = { - {1, 1, 12}, - {1, 1, 14}, - {2, 2, 14}, - {2, 2, 14}, - {2, 3, 16}, - {3, 3, 16} +static const u8 sSpecialDrawOdds[NUM_SLOT_MACHINE_IDS][MAX_BET] = { + [SLOT_MACHINE_UNLUCKIEST] = {1, 1, 12}, + [SLOT_MACHINE_UNLUCKIER] = {1, 1, 14}, + [SLOT_MACHINE_UNLUCKY] = {2, 2, 14}, + [SLOT_MACHINE_LUCKY] = {2, 2, 14}, + [SLOT_MACHINE_LUCKIER] = {2, 3, 16}, + [SLOT_MACHINE_LUCKIEST] = {3, 3, 16} }; -static const u8 sLuckyFlagProbabilities_Top3[][6] = { - {25, 25, 30, 40, 40, 50}, - {25, 25, 30, 30, 35, 35}, - {25, 25, 30, 25, 25, 30} +static const u8 sBiasProbabilities_Special[][NUM_SLOT_MACHINE_IDS] = { + { + // Probabilities for BIAS_STRAIGHT_7 + [SLOT_MACHINE_UNLUCKIEST] = 25, + [SLOT_MACHINE_UNLUCKIER] = 25, + [SLOT_MACHINE_UNLUCKY] = 30, + [SLOT_MACHINE_LUCKY] = 40, + [SLOT_MACHINE_LUCKIER] = 40, + [SLOT_MACHINE_LUCKIEST] = 50 + }, + { + // Probabilities for BIAS_REELTIME + [SLOT_MACHINE_UNLUCKIEST] = 25, + [SLOT_MACHINE_UNLUCKIER] = 25, + [SLOT_MACHINE_UNLUCKY] = 30, + [SLOT_MACHINE_LUCKY] = 30, + [SLOT_MACHINE_LUCKIER] = 35, + [SLOT_MACHINE_LUCKIEST] = 35 + }, + { + // Probabilities for BIAS_MIXED_7 + [SLOT_MACHINE_UNLUCKIEST] = 25, + [SLOT_MACHINE_UNLUCKIER] = 25, + [SLOT_MACHINE_UNLUCKY] = 30, + [SLOT_MACHINE_LUCKY] = 25, + [SLOT_MACHINE_LUCKIER] = 25, + [SLOT_MACHINE_LUCKIEST] = 30 + } }; -static const u8 sLuckyFlagProbabilities_NotTop3[][6] = { - {20, 25, 25, 20, 25, 25}, - {12, 15, 15, 18, 19, 22}, - {25, 25, 25, 30, 30, 40}, - {25, 25, 20, 20, 15, 15}, - {40, 40, 35, 35, 40, 40} +static const u8 sBiasProbabilities_Regular[][NUM_SLOT_MACHINE_IDS] = { + { + // Probabilities for BIAS_POWER + [SLOT_MACHINE_UNLUCKIEST] = 20, + [SLOT_MACHINE_UNLUCKIER] = 25, + [SLOT_MACHINE_UNLUCKY] = 25, + [SLOT_MACHINE_LUCKY] = 20, + [SLOT_MACHINE_LUCKIER] = 25, + [SLOT_MACHINE_LUCKIEST] = 25 + }, + { + // Probabilities for BIAS_AZURILL + [SLOT_MACHINE_UNLUCKIEST] = 12, + [SLOT_MACHINE_UNLUCKIER] = 15, + [SLOT_MACHINE_UNLUCKY] = 15, + [SLOT_MACHINE_LUCKY] = 18, + [SLOT_MACHINE_LUCKIER] = 19, + [SLOT_MACHINE_LUCKIEST] = 22 + }, + { + // Probabilities for BIAS_LOTAD + [SLOT_MACHINE_UNLUCKIEST] = 25, + [SLOT_MACHINE_UNLUCKIER] = 25, + [SLOT_MACHINE_UNLUCKY] = 25, + [SLOT_MACHINE_LUCKY] = 30, + [SLOT_MACHINE_LUCKIER] = 30, + [SLOT_MACHINE_LUCKIEST] = 40 + }, + { + // Probabilities for BIAS_CHERRY + [SLOT_MACHINE_UNLUCKIEST] = 25, + [SLOT_MACHINE_UNLUCKIER] = 25, + [SLOT_MACHINE_UNLUCKY] = 20, + [SLOT_MACHINE_LUCKY] = 20, + [SLOT_MACHINE_LUCKIER] = 15, + [SLOT_MACHINE_LUCKIEST] = 15 + }, + { + // Probabilities for BIAS_REPLAY + [SLOT_MACHINE_UNLUCKIEST] = 40, + [SLOT_MACHINE_UNLUCKIER] = 40, + [SLOT_MACHINE_UNLUCKY] = 35, + [SLOT_MACHINE_LUCKY] = 35, + [SLOT_MACHINE_LUCKIER] = 40, + [SLOT_MACHINE_LUCKIEST] = 40 + } }; -static const u8 sReeltimeProbabilities_UnluckyGame[][17] = { - {243, 243, 243, 80, 80, 80, 80, 40, 40, 40, 40, 40, 40, 5, 5, 5, 5}, - { 5, 5, 5, 150, 150, 150, 150, 130, 130, 130, 130, 130, 130, 100, 100, 100, 5}, - { 4, 4, 4, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 100, 100, 100, 40}, - { 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 45, 45, 45, 100}, - { 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 100}, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6} +// INTENTION: +// As you get more Power bolts, the odds of getting higher yields (3+ spins) +// increases modestly. There's a high chance of getting at least 1 spin, which +// will clear your Power bolts. +// +// NOTE: The way these probabilities are drawn significantly skews the odds +// toward drawing 0 spins: +// +// | Up to N bolts | Prob intended | Prob actual | +// |---------------|---------------|-------------| +// | 2 | 94% | 99% | +// | 6 | 31% | 57% | +// | 12 | 16% | 44% | +// | 15 | 2% | 31% | +// | 16 | 2% | 31% | +static const u8 sReelTimeProbabilities_NormalGame[][17] = { + {243, 243, 243, 80, 80, 80, 80, 40, 40, 40, 40, 40, 40, 5, 5, 5, 5}, // 0 spins + { 5, 5, 5, 150, 150, 150, 150, 130, 130, 130, 130, 130, 130, 100, 100, 100, 5}, // 1 spin + { 4, 4, 4, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 100, 100, 100, 40}, // 2 spins + { 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 45, 45, 45, 100}, // 3 spins + { 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 100}, // 4 spins + { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6} // 5 spins }; +// INTENTION: +// As you get more Power bolts, the odds of getting higher yields (3+ spins) +// increases substantially. There is always a high chance of getting no spins, +// which lets you keep your Power bolts. +// +// NOTE: The way these probabilities are drawn significantly skews the odds +// toward drawing 0 spins: +// +// | Up to N bolts | Prob intended | Prob actual | +// |---------------|---------------|-------------| +// | 2 | 94% | 99% | +// | 6 | 78% | 96% | +// | 12 | 63% | 88% | +// | 15 | 27% | 58% | +// | 16 | 2% | 33% | static const u8 sReelTimeProbabilities_LuckyGame[][17] = { - { 243, 243, 243, 200, 200, 200, 200, 160, 160, 160, 160, 160, 160, 70, 70, 70, 5}, - { 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 2, 2, 2, 6}, - { 4, 4, 4, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 40, 40, 40, 35}, - { 2, 2, 2, 3, 3, 3, 3, 30, 30, 30, 30, 30, 30, 100, 100, 100, 50}, - { 1, 1, 1, 2, 2, 2, 2, 30, 30, 30, 30, 30, 30, 40, 40, 40, 100}, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 60} + { 243, 243, 243, 200, 200, 200, 200, 160, 160, 160, 160, 160, 160, 70, 70, 70, 5}, // 0 spins + { 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 2, 2, 2, 6}, // 1 spin + { 4, 4, 4, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 40, 40, 40, 35}, // 2 spins + { 2, 2, 2, 3, 3, 3, 3, 30, 30, 30, 30, 30, 30, 100, 100, 100, 50}, // 3 spins + { 1, 1, 1, 2, 2, 2, 2, 30, 30, 30, 30, 30, 30, 40, 40, 40, 100}, // 4 spins + { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 60} // 5 spins }; static const u16 sReelTimeExplodeProbability[] = { 128, 175, 200, 225, 256 }; -static const u16 sReelIncrementTable[][2] = { +// Column 0: Probability of half-speed +// Column 1: Base probability of quarter-speed +static const u16 sReelTimeSpeed_Probabilities[][2] = { {10, 5}, {10, 10}, {10, 15}, @@ -4860,55 +5450,62 @@ static const u16 sReelIncrementTable[][2] = { {10, 35} }; -static const u16 sReelTimeBonusIncrementTable[] = { +// Boosted odds of quarter speed during ReelTime +static const u16 sQuarterSpeed_ProbabilityBoost[] = { 0, 5, 10, 15, 20 }; -// tentative name -static const u8 sBiasTags[] = { - GFXTAG_REPLAY, GFXTAG_CHERRY, GFXTAG_LOTAD, GFXTAG_AZURILL, GFXTAG_POWER, GFXTAG_7_RED, GFXTAG_7_RED, GFXTAG_7_RED +static const u8 sBiasSymbols[] = { + SYMBOL_REPLAY, // BIAS_REPLAY + SYMBOL_CHERRY, // BIAS_CHERRY + SYMBOL_LOTAD, // BIAS_LOTAD + SYMBOL_AZURILL, // BIAS_AZURILL + SYMBOL_POWER, // BIAS_POWER + SYMBOL_7_RED, // BIAS_REELTIME + SYMBOL_7_RED, // BIAS_MIXED_7 + SYMBOL_7_RED // BIAS_STRAIGHT_7 }; -static const u16 sLuckyFlagSettings_Top3[] = { - LUCKY_BIAS_777, LUCKY_BIAS_REELTIME, LUCKY_BIAS_MIXED_777 +static const u16 sBiasesSpecial[] = { + BIAS_STRAIGHT_7, BIAS_REELTIME, BIAS_MIXED_7 }; -static const u16 sLuckyFlagSettings_NotTop3[] = { - LUCKY_BIAS_POWER, LUCKY_BIAS_AZURILL, LUCKY_BIAS_LOTAD, LUCKY_BIAS_CHERRY, LUCKY_BIAS_REPLAY +static const u16 sBiasesRegular[] = { + BIAS_POWER, BIAS_AZURILL, BIAS_LOTAD, BIAS_CHERRY, BIAS_REPLAY }; -static const u8 sSymToMatch[] = { - [GFXTAG_7_RED] = MATCHED_777_RED, - [GFXTAG_7_BLUE] = MATCHED_777_BLUE, - [GFXTAG_AZURILL] = MATCHED_AZURILL, - [GFXTAG_LOTAD] = MATCHED_LOTAD, - [GFXTAG_CHERRY] = MATCHED_1CHERRY, - [GFXTAG_POWER] = MATCHED_POWER, - [GFXTAG_REPLAY] = MATCHED_REPLAY +static const u8 sSymbolToMatch[] = { + [SYMBOL_7_RED] = MATCH_RED_7, + [SYMBOL_7_BLUE] = MATCH_BLUE_7, + [SYMBOL_AZURILL] = MATCH_AZURILL, + [SYMBOL_LOTAD] = MATCH_LOTAD, + [SYMBOL_CHERRY] = MATCH_CHERRY, + [SYMBOL_POWER] = MATCH_POWER, + [SYMBOL_REPLAY] = MATCH_REPLAY }; static const u16 sSlotMatchFlags[] = { - [MATCHED_1CHERRY] = 1 << MATCHED_1CHERRY, - [MATCHED_2CHERRY] = 1 << MATCHED_2CHERRY, - [MATCHED_REPLAY] = 1 << MATCHED_REPLAY, - [MATCHED_LOTAD] = 1 << MATCHED_LOTAD, - [MATCHED_AZURILL] = 1 << MATCHED_AZURILL, - [MATCHED_POWER] = 1 << MATCHED_POWER, - [MATCHED_777_MIXED] = 1 << MATCHED_777_MIXED, - [MATCHED_777_RED] = 1 << MATCHED_777_RED, - [MATCHED_777_BLUE] = 1 << MATCHED_777_BLUE + [MATCH_CHERRY] = 1 << MATCH_CHERRY, + [MATCH_TOPBOT_CHERRY] = 1 << MATCH_TOPBOT_CHERRY, + [MATCH_REPLAY] = 1 << MATCH_REPLAY, + [MATCH_LOTAD] = 1 << MATCH_LOTAD, + [MATCH_AZURILL] = 1 << MATCH_AZURILL, + [MATCH_POWER] = 1 << MATCH_POWER, + [MATCH_MIXED_7] = 1 << MATCH_MIXED_7, + [MATCH_RED_7] = 1 << MATCH_RED_7, + [MATCH_BLUE_7] = 1 << MATCH_BLUE_7 }; static const u16 sSlotPayouts[] = { - [MATCHED_1CHERRY] = 2, - [MATCHED_2CHERRY] = 4, - [MATCHED_REPLAY] = 0, - [MATCHED_LOTAD] = 6, - [MATCHED_AZURILL] = 12, - [MATCHED_POWER] = 3, - [MATCHED_777_MIXED] = 90, - [MATCHED_777_RED] = 300, - [MATCHED_777_BLUE] = 300 + [MATCH_CHERRY] = 2, + [MATCH_TOPBOT_CHERRY] = 4, + [MATCH_REPLAY] = 0, + [MATCH_LOTAD] = 6, + [MATCH_AZURILL] = 12, + [MATCH_POWER] = 3, + [MATCH_MIXED_7] = 90, + [MATCH_RED_7] = 300, + [MATCH_BLUE_7] = 300 }; static const s16 sDigitalDisplay_SpriteCoords[][2] = { @@ -5708,7 +6305,7 @@ static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Insert = static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Stop = { - .tileTag = 18, + .tileTag = GFXTAG_STOP, .paletteTag = PALTAG_DIG_DISPLAY, .oam = &sOam_8x8, .anims = sAnims_SingleFrame, @@ -5741,7 +6338,7 @@ static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Lose = static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Bonus = { - .tileTag = 19, + .tileTag = GFXTAG_BONUS, .paletteTag = PALTAG_DIG_DISPLAY, .oam = &sOam_8x8, .anims = sAnims_SingleFrame, @@ -5752,7 +6349,7 @@ static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Bonus = static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Big = { - .tileTag = 20, + .tileTag = GFXTAG_BIG, .paletteTag = PALTAG_DIG_DISPLAY, .oam = &sOam_8x8, .anims = sAnims_SingleFrame, @@ -5763,7 +6360,7 @@ static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Big = static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Reg = { - .tileTag = 21, + .tileTag = GFXTAG_REG, .paletteTag = PALTAG_DIG_DISPLAY, .oam = &sOam_8x8, .anims = sAnims_SingleFrame, @@ -7102,18 +7699,18 @@ static const struct SpriteSheet sSlotMachineSpriteSheets[22] = static const u8 *const sReelBackground_Tilemap = gSlotMachineReelBackground_Tilemap; -static const u16 sUnused[] = +static const u16 sUnusedColors[] = { - 0x6F7B, - 0x6968, - 0x36AB, - 0x7FFF, - 0x5750, - 0x7EC0, - 0x02BA, - 0x02BA, - 0x01FD, - 0x01FD, + RGB(27, 27, 27), + RGB(8, 11, 26), + RGB(11, 21, 13), + RGB(31, 31, 31), + RGB(16, 26, 21), + RGB(0, 22, 31), + RGB(26, 21, 0), + RGB(26, 21, 0), + RGB(29, 15, 0), + RGB(29, 15, 0), }; // The Bet 2 and 3 match line palettes are duplicated unnecessarily @@ -7151,8 +7748,8 @@ static const u8 sMatchLinePalOffsets[NUM_MATCH_LINES] = { static const u8 sBetToMatchLineIds[MAX_BET][2] = { {MATCH_MIDDLE_ROW, MATCH_MIDDLE_ROW}, // Bet 1 - {MATCH_TOP_ROW, MATCH_BOTTOM_ROW}, // Bet 2 - {MATCH_NWSE_DIAG, MATCH_NESW_DIAG}, // Bet 3 + {MATCH_TOP_ROW, MATCH_BOTTOM_ROW}, // Bet 2 + {MATCH_NWSE_DIAG, MATCH_NESW_DIAG}, // Bet 3 }; static const u8 sMatchLinesPerBet[MAX_BET] = { 1, 2, 2 }; @@ -7182,7 +7779,10 @@ static const u16 *const sPokeballShiningPalTable[] = }; static const u16 *const sDigitalDisplay_Pal = gSlotMachineDigitalDisplay_Pal; -static const u16 sUnkPalette[] = INCBIN_U16("graphics/slot_machine/85A8524.bin"); +static const u16 sUnkPalette[16] = { + [1] = RGB_WHITEALPHA, + [3] = RGB(8, 8, 8), +}; static const struct SpritePalette sSlotMachineSpritePalettes[] = { diff --git a/src/starter_choose.c b/src/starter_choose.c index ca393c4d81..81a88e7714 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -53,17 +53,17 @@ static u16 sStarterLabelWindowId; const u16 gBirchBagGrassPal[][16] = { - INCBIN_U16("graphics/misc/birch_bag.gbapal"), - INCBIN_U16("graphics/misc/birch_grass.gbapal"), + INCBIN_U16("graphics/starter_choose/birch_bag.gbapal"), + INCBIN_U16("graphics/starter_choose/birch_grass.gbapal"), }; -static const u16 sPokeballSelection_Pal[] = INCBIN_U16("graphics/misc/pokeball_selection.gbapal"); -static const u16 sStarterCircle_Pal[] = INCBIN_U16("graphics/misc/starter_circle.gbapal"); -const u32 gBirchBagTilemap[] = INCBIN_U32("graphics/misc/birch_bag_map.bin.lz"); -const u32 gBirchGrassTilemap[] = INCBIN_U32("graphics/misc/birch_grass_map.bin.lz"); -const u32 gBirchHelpGfx[] = INCBIN_U32("graphics/misc/birch_help.4bpp.lz"); // Birch bag and grass combined -const u32 gPokeballSelection_Gfx[] = INCBIN_U32("graphics/misc/pokeball_selection.4bpp.lz"); -static const u32 sStarterCircle_Gfx[] = INCBIN_U32("graphics/misc/starter_circle.4bpp.lz"); +static const u16 sPokeballSelection_Pal[] = INCBIN_U16("graphics/starter_choose/pokeball_selection.gbapal"); +static const u16 sStarterCircle_Pal[] = INCBIN_U16("graphics/starter_choose/starter_circle.gbapal"); +const u32 gBirchBagTilemap[] = INCBIN_U32("graphics/starter_choose/birch_bag.bin.lz"); +const u32 gBirchGrassTilemap[] = INCBIN_U32("graphics/starter_choose/birch_grass.bin.lz"); +const u32 gBirchHelpGfx[] = INCBIN_U32("graphics/starter_choose/birch_help.4bpp.lz"); // Birch bag and grass combined +const u32 gPokeballSelection_Gfx[] = INCBIN_U32("graphics/starter_choose/pokeball_selection.4bpp.lz"); +static const u32 sStarterCircle_Gfx[] = INCBIN_U32("graphics/starter_choose/starter_circle.4bpp.lz"); static const struct WindowTemplate sWindowTemplates[] = { diff --git a/src/tileset_anims.c b/src/tileset_anims.c index 71f8044f9f..3676006a6a 100644 --- a/src/tileset_anims.c +++ b/src/tileset_anims.c @@ -632,45 +632,45 @@ void InitTilesetAnim_Building(void) static void TilesetAnim_General(u16 timer) { if (timer % 16 == 0) - QueueAnimTiles_General_Flower(timer >> 4); + QueueAnimTiles_General_Flower(timer / 16); if (timer % 16 == 1) - QueueAnimTiles_General_Water(timer >> 4); + QueueAnimTiles_General_Water(timer / 16); if (timer % 16 == 2) - QueueAnimTiles_General_SandWaterEdge(timer >> 4); + QueueAnimTiles_General_SandWaterEdge(timer / 16); if (timer % 16 == 3) - QueueAnimTiles_General_Waterfall(timer >> 4); + QueueAnimTiles_General_Waterfall(timer / 16); if (timer % 16 == 4) - QueueAnimTiles_General_LandWaterEdge(timer >> 4); + QueueAnimTiles_General_LandWaterEdge(timer / 16); } static void TilesetAnim_Building(u16 timer) { if (timer % 8 == 0) - QueueAnimTiles_Building_TVTurnedOn(timer >> 3); + QueueAnimTiles_Building_TVTurnedOn(timer / 8); } static void QueueAnimTiles_General_Flower(u16 timer) { - u16 i = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_General_Flower[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(508)), 0x80); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_General_Flower); + AppendTilesetAnimToBuffer(gTilesetAnims_General_Flower[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(508)), 4 * TILE_SIZE_4BPP); } static void QueueAnimTiles_General_Water(u16 timer) { - u8 i = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_General_Water[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(432)), 0x3C0); + u8 i = timer % ARRAY_COUNT(gTilesetAnims_General_Water); + AppendTilesetAnimToBuffer(gTilesetAnims_General_Water[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(432)), 30 * TILE_SIZE_4BPP); } static void QueueAnimTiles_General_SandWaterEdge(u16 timer) { - u16 i = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_General_SandWaterEdge[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(464)), 0x140); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_General_SandWaterEdge); + AppendTilesetAnimToBuffer(gTilesetAnims_General_SandWaterEdge[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(464)), 10 * TILE_SIZE_4BPP); } static void QueueAnimTiles_General_Waterfall(u16 timer) { - u16 i = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_General_Waterfall[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(496)), 0xc0); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_General_Waterfall); + AppendTilesetAnimToBuffer(gTilesetAnims_General_Waterfall[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(496)), 6 * TILE_SIZE_4BPP); } void InitTilesetAnim_Petalburg(void) @@ -838,336 +838,336 @@ static void TilesetAnim_Rustboro(u16 timer) { if (timer % 8 == 0) { - QueueAnimTiles_Rustboro_WindyWater(timer >> 3, 0); - QueueAnimTiles_Rustboro_Fountain(timer >> 3); + QueueAnimTiles_Rustboro_WindyWater(timer / 8, 0); + QueueAnimTiles_Rustboro_Fountain(timer / 8); } if (timer % 8 == 1) - QueueAnimTiles_Rustboro_WindyWater(timer >> 3, 1); + QueueAnimTiles_Rustboro_WindyWater(timer / 8, 1); if (timer % 8 == 2) - QueueAnimTiles_Rustboro_WindyWater(timer >> 3, 2); + QueueAnimTiles_Rustboro_WindyWater(timer / 8, 2); if (timer % 8 == 3) - QueueAnimTiles_Rustboro_WindyWater(timer >> 3, 3); + QueueAnimTiles_Rustboro_WindyWater(timer / 8, 3); if (timer % 8 == 4) - QueueAnimTiles_Rustboro_WindyWater(timer >> 3, 4); + QueueAnimTiles_Rustboro_WindyWater(timer / 8, 4); if (timer % 8 == 5) - QueueAnimTiles_Rustboro_WindyWater(timer >> 3, 5); + QueueAnimTiles_Rustboro_WindyWater(timer / 8, 5); if (timer % 8 == 6) - QueueAnimTiles_Rustboro_WindyWater(timer >> 3, 6); + QueueAnimTiles_Rustboro_WindyWater(timer / 8, 6); if (timer % 8 == 7) - QueueAnimTiles_Rustboro_WindyWater(timer >> 3, 7); + QueueAnimTiles_Rustboro_WindyWater(timer / 8, 7); } static void TilesetAnim_Dewford(u16 timer) { if (timer % 8 == 0) - QueueAnimTiles_Dewford_Flag(timer >> 3); + QueueAnimTiles_Dewford_Flag(timer / 8); } static void TilesetAnim_Slateport(u16 timer) { if (timer % 16 == 0) - QueueAnimTiles_Slateport_Balloons(timer >> 4); + QueueAnimTiles_Slateport_Balloons(timer / 16); } static void TilesetAnim_Mauville(u16 timer) { if (timer % 8 == 0) - QueueAnimTiles_Mauville_Flowers(timer >> 3, 0); + QueueAnimTiles_Mauville_Flowers(timer / 8, 0); if (timer % 8 == 1) - QueueAnimTiles_Mauville_Flowers(timer >> 3, 1); + QueueAnimTiles_Mauville_Flowers(timer / 8, 1); if (timer % 8 == 2) - QueueAnimTiles_Mauville_Flowers(timer >> 3, 2); + QueueAnimTiles_Mauville_Flowers(timer / 8, 2); if (timer % 8 == 3) - QueueAnimTiles_Mauville_Flowers(timer >> 3, 3); + QueueAnimTiles_Mauville_Flowers(timer / 8, 3); if (timer % 8 == 4) - QueueAnimTiles_Mauville_Flowers(timer >> 3, 4); + QueueAnimTiles_Mauville_Flowers(timer / 8, 4); if (timer % 8 == 5) - QueueAnimTiles_Mauville_Flowers(timer >> 3, 5); + QueueAnimTiles_Mauville_Flowers(timer / 8, 5); if (timer % 8 == 6) - QueueAnimTiles_Mauville_Flowers(timer >> 3, 6); + QueueAnimTiles_Mauville_Flowers(timer / 8, 6); if (timer % 8 == 7) - QueueAnimTiles_Mauville_Flowers(timer >> 3, 7); + QueueAnimTiles_Mauville_Flowers(timer / 8, 7); } static void TilesetAnim_Lavaridge(u16 timer) { if (timer % 16 == 0) - QueueAnimTiles_Lavaridge_Steam(timer >> 4); + QueueAnimTiles_Lavaridge_Steam(timer / 16); if (timer % 16 == 1) - QueueAnimTiles_Lavaridge_Lava(timer >> 4); + QueueAnimTiles_Lavaridge_Lava(timer / 16); } static void TilesetAnim_EverGrande(u16 timer) { if (timer % 8 == 0) - QueueAnimTiles_EverGrande_Flowers(timer >> 3, 0); + QueueAnimTiles_EverGrande_Flowers(timer / 8, 0); if (timer % 8 == 1) - QueueAnimTiles_EverGrande_Flowers(timer >> 3, 1); + QueueAnimTiles_EverGrande_Flowers(timer / 8, 1); if (timer % 8 == 2) - QueueAnimTiles_EverGrande_Flowers(timer >> 3, 2); + QueueAnimTiles_EverGrande_Flowers(timer / 8, 2); if (timer % 8 == 3) - QueueAnimTiles_EverGrande_Flowers(timer >> 3, 3); + QueueAnimTiles_EverGrande_Flowers(timer / 8, 3); if (timer % 8 == 4) - QueueAnimTiles_EverGrande_Flowers(timer >> 3, 4); + QueueAnimTiles_EverGrande_Flowers(timer / 8, 4); if (timer % 8 == 5) - QueueAnimTiles_EverGrande_Flowers(timer >> 3, 5); + QueueAnimTiles_EverGrande_Flowers(timer / 8, 5); if (timer % 8 == 6) - QueueAnimTiles_EverGrande_Flowers(timer >> 3, 6); + QueueAnimTiles_EverGrande_Flowers(timer / 8, 6); if (timer % 8 == 7) - QueueAnimTiles_EverGrande_Flowers(timer >> 3, 7); + QueueAnimTiles_EverGrande_Flowers(timer / 8, 7); } static void TilesetAnim_Pacifidlog(u16 timer) { if (timer % 16 == 0) - QueueAnimTiles_Pacifidlog_LogBridges(timer >> 4); + QueueAnimTiles_Pacifidlog_LogBridges(timer / 16); if (timer % 16 == 1) - QueueAnimTiles_Pacifidlog_WaterCurrents(timer >> 4); + QueueAnimTiles_Pacifidlog_WaterCurrents(timer / 16); } static void TilesetAnim_Sootopolis(u16 timer) { if (timer % 16 == 0) - QueueAnimTiles_Sootopolis_StormyWater(timer >> 4); + QueueAnimTiles_Sootopolis_StormyWater(timer / 16); } static void TilesetAnim_Underwater(u16 timer) { if (timer % 16 == 0) - QueueAnimTiles_Underwater_Seaweed(timer >> 4); + QueueAnimTiles_Underwater_Seaweed(timer / 16); } static void TilesetAnim_Cave(u16 timer) { if (timer % 16 == 1) - QueueAnimTiles_Cave_Lava(timer >> 4); + QueueAnimTiles_Cave_Lava(timer / 16); } static void TilesetAnim_BattleFrontierOutsideWest(u16 timer) { if (timer % 8 == 0) - QueueAnimTiles_BattleFrontierOutsideWest_Flag(timer >> 3); + QueueAnimTiles_BattleFrontierOutsideWest_Flag(timer / 8); } static void TilesetAnim_BattleFrontierOutsideEast(u16 timer) { if (timer % 8 == 0) - QueueAnimTiles_BattleFrontierOutsideEast_Flag(timer >> 3); + QueueAnimTiles_BattleFrontierOutsideEast_Flag(timer / 8); } static void QueueAnimTiles_General_LandWaterEdge(u16 timer) { - u16 i = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_General_LandWaterEdge[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(480)), 0x140); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_General_LandWaterEdge); + AppendTilesetAnimToBuffer(gTilesetAnims_General_LandWaterEdge[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(480)), 10 * TILE_SIZE_4BPP); } static void QueueAnimTiles_Lavaridge_Steam(u8 timer) { - u8 i = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge_Steam[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 288)), 0x80); + u8 i = timer % ARRAY_COUNT(gTilesetAnims_Lavaridge_Steam); + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge_Steam[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 288)), 4 * TILE_SIZE_4BPP); - i = (timer + 2) % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge_Steam[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 292)), 0x80); + i = (timer + 2) % (int)ARRAY_COUNT(gTilesetAnims_Lavaridge_Steam); + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge_Steam[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 292)), 4 * TILE_SIZE_4BPP); } static void QueueAnimTiles_Pacifidlog_LogBridges(u8 timer) { - u8 i = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog_LogBridges[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 464)), 0x3C0); + u8 i = timer % ARRAY_COUNT(gTilesetAnims_Pacifidlog_LogBridges); + AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog_LogBridges[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 464)), 30 * TILE_SIZE_4BPP); } static void QueueAnimTiles_Underwater_Seaweed(u8 timer) { - u8 i = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Underwater_Seaweed[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 0x80); + u8 i = timer % ARRAY_COUNT(gTilesetAnims_Underwater_Seaweed); + AppendTilesetAnimToBuffer(gTilesetAnims_Underwater_Seaweed[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 4 * TILE_SIZE_4BPP); } static void QueueAnimTiles_Pacifidlog_WaterCurrents(u8 timer) { - u8 i = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog_WaterCurrents[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 0x100); + u8 i = timer % ARRAY_COUNT(gTilesetAnims_Pacifidlog_WaterCurrents); + AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog_WaterCurrents[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 8 * TILE_SIZE_4BPP); } static void QueueAnimTiles_Mauville_Flowers(u16 timer_div, u8 timer_mod) { timer_div -= timer_mod; - if (timer_div < 12) // almost certainly a typo + if (timer_div < min(ARRAY_COUNT(gTilesetAnims_Mauville_Flower1), ARRAY_COUNT(gTilesetAnims_Mauville_Flower2))) { - timer_div %= 12; - AppendTilesetAnimToBuffer(gTilesetAnims_Mauville_Flower1[timer_div], gTilesetAnims_Mauville_Flower1_VDests[timer_mod], 0x80); - AppendTilesetAnimToBuffer(gTilesetAnims_Mauville_Flower2[timer_div], gTilesetAnims_Mauville_Flower2_VDests[timer_mod], 0x80); + timer_div %= min(ARRAY_COUNT(gTilesetAnims_Mauville_Flower1), ARRAY_COUNT(gTilesetAnims_Mauville_Flower2)); + AppendTilesetAnimToBuffer(gTilesetAnims_Mauville_Flower1[timer_div], gTilesetAnims_Mauville_Flower1_VDests[timer_mod], 4 * TILE_SIZE_4BPP); + AppendTilesetAnimToBuffer(gTilesetAnims_Mauville_Flower2[timer_div], gTilesetAnims_Mauville_Flower2_VDests[timer_mod], 4 * TILE_SIZE_4BPP); } else { - timer_div %= 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Mauville_Flower1_B[timer_div], gTilesetAnims_Mauville_Flower1_VDests[timer_mod], 0x80); - AppendTilesetAnimToBuffer(gTilesetAnims_Mauville_Flower2_B[timer_div], gTilesetAnims_Mauville_Flower2_VDests[timer_mod], 0x80); + timer_div %= min(ARRAY_COUNT(gTilesetAnims_Mauville_Flower1_B), ARRAY_COUNT(gTilesetAnims_Mauville_Flower2_B)); + AppendTilesetAnimToBuffer(gTilesetAnims_Mauville_Flower1_B[timer_div], gTilesetAnims_Mauville_Flower1_VDests[timer_mod], 4 * TILE_SIZE_4BPP); + AppendTilesetAnimToBuffer(gTilesetAnims_Mauville_Flower2_B[timer_div], gTilesetAnims_Mauville_Flower2_VDests[timer_mod], 4 * TILE_SIZE_4BPP); } } static void QueueAnimTiles_Rustboro_WindyWater(u16 timer_div, u8 timer_mod) { timer_div -= timer_mod; - timer_div %= 8; + timer_div %= ARRAY_COUNT(gTilesetAnims_Rustboro_WindyWater); if (gTilesetAnims_Rustboro_WindyWater[timer_div]) - AppendTilesetAnimToBuffer(gTilesetAnims_Rustboro_WindyWater[timer_div], gTilesetAnims_Rustboro_WindyWater_VDests[timer_mod], 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Rustboro_WindyWater[timer_div], gTilesetAnims_Rustboro_WindyWater_VDests[timer_mod], 4 * TILE_SIZE_4BPP); } static void QueueAnimTiles_Rustboro_Fountain(u16 timer) { - u16 i = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_Rustboro_Fountain[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 448)), 0x80); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_Rustboro_Fountain); + AppendTilesetAnimToBuffer(gTilesetAnims_Rustboro_Fountain[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 448)), 4 * TILE_SIZE_4BPP); } static void QueueAnimTiles_Lavaridge_Lava(u16 timer) { - u16 i = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge_Cave_Lava[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 160)), 0x80); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_Lavaridge_Cave_Lava); + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge_Cave_Lava[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 160)), 4 * TILE_SIZE_4BPP); } static void QueueAnimTiles_EverGrande_Flowers(u16 timer_div, u8 timer_mod) { timer_div -= timer_mod; - timer_div %= 8; + timer_div %= ARRAY_COUNT(gTilesetAnims_EverGrande_Flowers); - AppendTilesetAnimToBuffer(gTilesetAnims_EverGrande_Flowers[timer_div], gTilesetAnims_EverGrande_VDests[timer_mod], 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_EverGrande_Flowers[timer_div], gTilesetAnims_EverGrande_VDests[timer_mod], 4 * TILE_SIZE_4BPP); } static void QueueAnimTiles_Cave_Lava(u16 timer) { - u16 i = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge_Cave_Lava[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 416)), 0x80); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_Lavaridge_Cave_Lava); + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge_Cave_Lava[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 416)), 4 * TILE_SIZE_4BPP); } static void QueueAnimTiles_Dewford_Flag(u16 timer) { - u16 id = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Dewford_Flag[id], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 170)), 0xC0); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_Dewford_Flag); + AppendTilesetAnimToBuffer(gTilesetAnims_Dewford_Flag[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 170)), 6 * TILE_SIZE_4BPP); } static void QueueAnimTiles_BattleFrontierOutsideWest_Flag(u16 timer) { - u16 i = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideWest_Flag[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 218)), 0xC0); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_BattleFrontierOutsideWest_Flag); + AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideWest_Flag[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 218)), 6 * TILE_SIZE_4BPP); } static void QueueAnimTiles_BattleFrontierOutsideEast_Flag(u16 timer) { - u16 i = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideEast_Flag[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 218)), 0xC0); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_BattleFrontierOutsideEast_Flag); + AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideEast_Flag[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 218)), 6 * TILE_SIZE_4BPP); } static void QueueAnimTiles_Slateport_Balloons(u16 timer) { - u16 i = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Slateport_Balloons[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 224)), 0x80); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_Slateport_Balloons); + AppendTilesetAnimToBuffer(gTilesetAnims_Slateport_Balloons[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 224)), 4 * TILE_SIZE_4BPP); } static void TilesetAnim_MauvilleGym(u16 timer) { if (timer % 2 == 0) - QueueAnimTiles_MauvilleGym_ElectricGates(timer >> 1); + QueueAnimTiles_MauvilleGym_ElectricGates(timer / 2); } static void TilesetAnim_SootopolisGym(u16 timer) { if (timer % 8 == 0) - QueueAnimTiles_SootopolisGym_Waterfalls(timer >> 3); + QueueAnimTiles_SootopolisGym_Waterfalls(timer / 8); } static void TilesetAnim_EliteFour(u16 timer) { if (timer % 64 == 1) - QueueAnimTiles_EliteFour_GroundLights(timer >> 6); + QueueAnimTiles_EliteFour_GroundLights(timer / 64); if (timer % 8 == 1) - QueueAnimTiles_EliteFour_WallLights(timer >> 3); + QueueAnimTiles_EliteFour_WallLights(timer / 8); } static void TilesetAnim_BikeShop(u16 timer) { if (timer % 4 == 0) - QueueAnimTiles_BikeShop_BlinkingLights(timer >> 2); + QueueAnimTiles_BikeShop_BlinkingLights(timer / 4); } static void TilesetAnim_BattlePyramid(u16 timer) { if (timer % 8 == 0) { - QueueAnimTiles_BattlePyramid_Torch(timer >> 3); - QueueAnimTiles_BattlePyramid_StatueShadow(timer >> 3); + QueueAnimTiles_BattlePyramid_Torch(timer / 8); + QueueAnimTiles_BattlePyramid_StatueShadow(timer / 8); } } static void TilesetAnim_BattleDome(u16 timer) { if (timer % 4 == 0) - BlendAnimPalette_BattleDome_FloorLights(timer >> 2); + BlendAnimPalette_BattleDome_FloorLights(timer / 4); } static void TilesetAnim_BattleDome2(u16 timer) { if (timer % 4 == 0) - BlendAnimPalette_BattleDome_FloorLightsNoBlend(timer >> 2); + BlendAnimPalette_BattleDome_FloorLightsNoBlend(timer / 4); } static void QueueAnimTiles_Building_TVTurnedOn(u16 timer) { - u16 i = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_Building_TvTurnedOn[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(496)), 0x80); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_Building_TvTurnedOn); + AppendTilesetAnimToBuffer(gTilesetAnims_Building_TvTurnedOn[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(496)), 4 * TILE_SIZE_4BPP); } static void QueueAnimTiles_SootopolisGym_Waterfalls(u16 timer) { - u16 i = timer % 3; - AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym_SideWaterfall[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 0x180); - AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym_FrontWaterfall[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 464)), 0x280); + u16 i = timer % min(ARRAY_COUNT(gTilesetAnims_SootopolisGym_SideWaterfall), ARRAY_COUNT(gTilesetAnims_SootopolisGym_FrontWaterfall)); + AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym_SideWaterfall[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 12 * TILE_SIZE_4BPP); + AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym_FrontWaterfall[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 464)), 20 * TILE_SIZE_4BPP); } static void QueueAnimTiles_EliteFour_WallLights(u16 timer) { - u16 i = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour_WallLights[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 504)), 0x20); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_EliteFour_WallLights); + AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour_WallLights[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 504)), 1 * TILE_SIZE_4BPP); } static void QueueAnimTiles_EliteFour_GroundLights(u16 timer) { - u16 i = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour_FloorLight[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 480)), 0x80); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_EliteFour_FloorLight); + AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour_FloorLight[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 480)), 4 * TILE_SIZE_4BPP); } static void QueueAnimTiles_MauvilleGym_ElectricGates(u16 timer) { - u16 i = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_MauvilleGym_ElectricGates[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 144)), 0x200); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_MauvilleGym_ElectricGates); + AppendTilesetAnimToBuffer(gTilesetAnims_MauvilleGym_ElectricGates[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 144)), 16 * TILE_SIZE_4BPP); } static void QueueAnimTiles_BikeShop_BlinkingLights(u16 timer) { - u16 i = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_BikeShop_BlinkingLights[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 0x120); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_BikeShop_BlinkingLights); + AppendTilesetAnimToBuffer(gTilesetAnims_BikeShop_BlinkingLights[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 9 * TILE_SIZE_4BPP); } static void QueueAnimTiles_Sootopolis_StormyWater(u16 timer) { - u16 i = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_Sootopolis_StormyWater[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 240)), 0xc00); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_Sootopolis_StormyWater); + AppendTilesetAnimToBuffer(gTilesetAnims_Sootopolis_StormyWater[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 240)), 96 * TILE_SIZE_4BPP); } static void QueueAnimTiles_BattlePyramid_Torch(u16 timer) { - u16 i = timer % 3; - AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid_Torch[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 151)), 0x100); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_BattlePyramid_Torch); + AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid_Torch[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 151)), 8 * TILE_SIZE_4BPP); } static void QueueAnimTiles_BattlePyramid_StatueShadow(u16 timer) { - u16 i = timer % 3; - AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid_StatueShadow[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 135)), 0x100); + u16 i = timer % ARRAY_COUNT(gTilesetAnims_BattlePyramid_StatueShadow); + AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid_StatueShadow[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 135)), 8 * TILE_SIZE_4BPP); } static void BlendAnimPalette_BattleDome_FloorLights(u16 timer) { - CpuCopy16(gTilesetAnims_BattleDomeFloorLightPals[timer % 4], gPlttBufferUnfaded + 0x80, 32); + CpuCopy16(gTilesetAnims_BattleDomeFloorLightPals[timer % ARRAY_COUNT(gTilesetAnims_BattleDomeFloorLightPals)], &gPlttBufferUnfaded[0x80], 32); BlendPalette(0x80, 16, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); if ((u8)FindTaskIdByFunc(Task_BattleTransition_Intro) != TASK_NONE) { @@ -1178,7 +1178,7 @@ static void BlendAnimPalette_BattleDome_FloorLights(u16 timer) static void BlendAnimPalette_BattleDome_FloorLightsNoBlend(u16 timer) { - CpuCopy16(gTilesetAnims_BattleDomeFloorLightPals[timer % 4], gPlttBufferUnfaded + 0x80, 32); + CpuCopy16(gTilesetAnims_BattleDomeFloorLightPals[timer % ARRAY_COUNT(gTilesetAnims_BattleDomeFloorLightPals)], &gPlttBufferUnfaded[0x80], 32); if ((u8)FindTaskIdByFunc(Task_BattleTransition_Intro) == TASK_NONE) { BlendPalette(0x80, 16, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); diff --git a/src/title_screen.c b/src/title_screen.c index 93e01327c2..d64ee6024f 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -52,7 +52,7 @@ static void SpriteCB_PressStartCopyrightBanner(struct Sprite *sprite); static void SpriteCB_PokemonLogoShine(struct Sprite *sprite); // const rom data -static const u16 sUnusedUnknownPal[] = INCBIN_U16("graphics/title_screen/unk_853EF78.gbapal"); +static const u16 sUnusedUnknownPal[] = INCBIN_U16("graphics/title_screen/unused.gbapal"); static const u32 sTitleScreenRayquazaGfx[] = INCBIN_U32("graphics/title_screen/rayquaza.4bpp.lz"); static const u32 sTitleScreenRayquazaTilemap[] = INCBIN_U32("graphics/title_screen/rayquaza.bin.lz"); diff --git a/src/trade.c b/src/trade.c index a1e4f7094e..dd0851bbda 100644 --- a/src/trade.c +++ b/src/trade.c @@ -44,7 +44,6 @@ #include "util.h" #include "window.h" #include "constants/contest.h" -#include "constants/easy_chat.h" #include "constants/items.h" #include "constants/moves.h" #include "constants/region_map_sections.h" @@ -1395,7 +1394,7 @@ static void TradeMenuProcessInput(void) DrawTextBorderOuter(1, 1, 14); FillWindowPixelBuffer(1, PIXEL_FILL(1)); PrintMenuTable(1, ARRAY_COUNT(sSelectTradeMonActions), sSelectTradeMonActions); - InitMenuInUpperLeftCornerNormal(1, 2, 0); + InitMenuInUpperLeftCornerNormal(1, ARRAY_COUNT(sSelectTradeMonActions), 0); PutWindowTilemap(1); CopyWindowToVram(1, COPYWIN_FULL); sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_SELECTED_MON; @@ -1880,7 +1879,7 @@ static u8 GetMonNicknameWidth(u8 *str, u8 whichParty, u8 monIdx) else GetMonData(&gEnemyParty[monIdx], MON_DATA_NICKNAME, nickname); - StringCopy10(str, nickname); + StringCopy_Nickname(str, nickname); return GetStringWidth(FONT_SMALL, str, GetFontAttribute(FONT_SMALL, FONTATTR_LETTER_SPACING)); } @@ -1942,7 +1941,7 @@ static void PrintPartyNicknamesForTradeMenu(u8 whichParty) for (i = 0; i < sTradeMenuData->partyCounts[whichParty]; i++) { GetMonData(&party[i], MON_DATA_NICKNAME, nickname); - StringCopy10(str, nickname); + StringCopy_Nickname(str, nickname); PrintMonNicknameForTradeMenu(whichParty, i, str); } } @@ -3266,17 +3265,17 @@ static void BufferTradeSceneStrings(void) mpId = GetMultiplayerId(); StringCopy(gStringVar1, gLinkPlayers[mpId ^ 1].name); GetMonData(&gEnemyParty[gSelectedTradeMonPositions[TRADE_PARTNER] % PARTY_SIZE], MON_DATA_NICKNAME, name); - StringCopy10(gStringVar3, name); + StringCopy_Nickname(gStringVar3, name); GetMonData(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], MON_DATA_NICKNAME, name); - StringCopy10(gStringVar2, name); + StringCopy_Nickname(gStringVar2, name); } else { ingameTrade = &sIngameTrades[gSpecialVar_0x8004]; StringCopy(gStringVar1, ingameTrade->otName); - StringCopy10(gStringVar3, ingameTrade->nickname); + StringCopy_Nickname(gStringVar3, ingameTrade->nickname); GetMonData(&gPlayerParty[gSpecialVar_0x8005], MON_DATA_NICKNAME, name); - StringCopy10(gStringVar2, name); + StringCopy_Nickname(gStringVar2, name); } } @@ -4479,7 +4478,7 @@ static void BufferInGameTradeMonName(void) u8 nickname[32]; const struct InGameTrade *inGameTrade = &sIngameTrades[gSpecialVar_0x8004]; GetMonData(&gPlayerParty[gSpecialVar_0x8005], MON_DATA_NICKNAME, nickname); - StringCopy10(gStringVar1, nickname); + StringCopy_Nickname(gStringVar1, nickname); StringCopy(gStringVar2, gSpeciesNames[inGameTrade->species]); } @@ -4531,7 +4530,8 @@ static void _CreateInGameTradePokemon(u8 whichPlayerMon, u8 whichInGameTrade) CalculateMonStats(&gEnemyParty[0]); } -static void SetInGameTradeMail(struct Mail *mail, const struct InGameTrade *trade) { +static void SetInGameTradeMail(struct Mail *mail, const struct InGameTrade *trade) +{ s32 i; for (i = 0; i < MAIL_WORDS_COUNT; i++) diff --git a/src/trader.c b/src/trader.c index 1d4424e751..040ee695b3 100644 --- a/src/trader.c +++ b/src/trader.c @@ -15,7 +15,7 @@ #include "task.h" #include "script_menu.h" -static const u8 * const sDefaultTraderNames[] = +static const u8 * const sDefaultTraderNames[NUM_TRADER_ITEMS] = { gText_Tristan, gText_Philip, @@ -23,7 +23,7 @@ static const u8 * const sDefaultTraderNames[] = gText_Roberto, }; -static const u8 sDefaultTraderDecorations[] = +static const u8 sDefaultTraderDecorations[NUM_TRADER_ITEMS] = { DECOR_DUSKULL_DOLL, DECOR_BALL_CUSHION, @@ -39,7 +39,7 @@ void TraderSetup(void) trader->id = MAUVILLE_MAN_TRADER; trader->alreadyTraded = FALSE; - for (i = 0; i < 4; i++) + for (i = 0; i < NUM_TRADER_ITEMS; i++) { StringCopy(trader->playerNames[i], sDefaultTraderNames[i]); trader->decorations[i] = sDefaultTraderDecorations[i]; @@ -53,15 +53,25 @@ void Trader_ResetFlag(void) trader->alreadyTraded = FALSE; } +#define tWindowId data[3] + void CreateAvailableDecorationsMenu(u8 taskId) { u8 i; s16 * data = gTasks[taskId].data; struct MauvilleOldManTrader *trader = &gSaveBlock1Ptr->oldMan.trader; - struct WindowTemplate windowTemplate = {0, 1, 1, 10, 10, 15, 1}; + struct WindowTemplate windowTemplate = { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 10, + .height = 10, + .paletteNum = 15, + .baseBlock = 1 + }; s32 windowWidth = GetStringWidth(FONT_NORMAL, gText_Exit, 0); s32 fiveMarksWidth = GetStringWidth(FONT_NORMAL, gText_FiveMarks, 0); - for (i = 0; i < 4; i++) + for (i = 0; i < NUM_TRADER_ITEMS; i++) { s32 curWidth; if (trader->decorations[i] > NUM_DECORATIONS) @@ -72,17 +82,17 @@ void CreateAvailableDecorationsMenu(u8 taskId) windowWidth = curWidth; } windowTemplate.width = ConvertPixelWidthToTileWidth(windowWidth); - data[3] = AddWindow(&windowTemplate); - DrawStdFrameWithCustomTileAndPalette(data[3], FALSE, 0x214, 14); - for (i = 0; i < 4; i++) + tWindowId = AddWindow(&windowTemplate); + DrawStdFrameWithCustomTileAndPalette(tWindowId, FALSE, 0x214, 14); + for (i = 0; i < NUM_TRADER_ITEMS; i++) { if (trader->decorations[i] > NUM_DECORATIONS) - AddTextPrinterParameterized(data[3], FONT_NORMAL, gText_FiveMarks, 8, 16 * i + 1, 255, NULL); + AddTextPrinterParameterized(tWindowId, FONT_NORMAL, gText_FiveMarks, 8, 16 * i + 1, TEXT_SKIP_DRAW, NULL); else - AddTextPrinterParameterized(data[3], FONT_NORMAL, gDecorations[trader->decorations[i]].name, 8, 16 * i + 1, 255, NULL); + AddTextPrinterParameterized(tWindowId, FONT_NORMAL, gDecorations[trader->decorations[i]].name, 8, 16 * i + 1, TEXT_SKIP_DRAW, NULL); } - AddTextPrinterParameterized(data[3], FONT_NORMAL, gText_Exit, 8, 16 * i + 1, 255, NULL); - InitMenuInUpperLeftCornerNormal(data[3], 5, 0); + AddTextPrinterParameterized(tWindowId, FONT_NORMAL, gText_Exit, 8, 16 * i + 1, TEXT_SKIP_DRAW, NULL); + InitMenuInUpperLeftCornerNormal(tWindowId, NUM_TRADER_ITEMS + 1, 0); ScheduleBgCopyTilemapToVram(0); } @@ -90,17 +100,13 @@ void Task_BufferDecorSelectionAndCloseWindow(u8 taskId, u8 decorationId) { s16 * data = gTasks[taskId].data; if (decorationId > NUM_DECORATIONS) - { gSpecialVar_0x8004 = 0xFFFF; - } else - { gSpecialVar_0x8004 = decorationId; - } - ClearStdWindowAndFrameToTransparent(data[3], FALSE); - ClearWindowTilemap(data[3]); - RemoveWindow(data[3]); + ClearStdWindowAndFrameToTransparent(tWindowId, FALSE); + ClearWindowTilemap(tWindowId); + RemoveWindow(tWindowId); ScheduleBgCopyTilemapToVram(0); DestroyTask(taskId); EnableBothScriptContexts(); @@ -116,7 +122,7 @@ void Task_HandleGetDecorationMenuInput(u8 taskId) case MENU_NOTHING_CHOSEN: break; case MENU_B_PRESSED: - case 4: + case NUM_TRADER_ITEMS: // EXIT PlaySE(SE_SELECT); Task_BufferDecorSelectionAndCloseWindow(taskId, 0); break; @@ -140,7 +146,7 @@ void DoesPlayerHaveNoDecorations(void) { u8 i; - for (i = 0; i < 8; i++) + for (i = 0; i < DECORCAT_COUNT; i++) { if (GetNumOwnedDecorationsInCategory(i)) { diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 2c34f196e5..39c6202a0f 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -28,9 +28,7 @@ #include "constants/items.h" #include "constants/layouts.h" #include "constants/moves.h" -#include "constants/maps.h" #include "constants/trainers.h" -#include "constants/easy_chat.h" #include "constants/trainer_hill.h" #include "constants/trainer_types.h" @@ -201,7 +199,7 @@ static const u16 *const *const sPrizeListSets[] = sPrizeLists2 }; -static const u16 sEReader_Pal[] = INCBIN_U16("graphics/misc/trainer_hill_ereader.gbapal"); +static const u16 sEReader_Pal[] = INCBIN_U16("graphics/trainer_hill/ereader.gbapal"); static const u8 sRecordWinColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}; static const struct TrHillTag *const sDataPerTag[] = @@ -679,9 +677,9 @@ static u16 GetMetatileForFloor(u8 floorId, u32 x, u32 y, u32 stride) // stride i impassable = (sHillData->floors[floorId].display.collisionData[y] >> (15 - x) & 1); metatile = sHillData->floors[floorId].display.metatileData[stride * y + x] + NUM_METATILES_IN_PRIMARY; - elevation = 3 << METATILE_ELEVATION_SHIFT; + elevation = 3 << MAPGRID_ELEVATION_SHIFT; - return ((impassable << METATILE_COLLISION_SHIFT) & METATILE_COLLISION_MASK) | elevation | (metatile & METATILE_ID_MASK); + return ((impassable << MAPGRID_COLLISION_SHIFT) & MAPGRID_COLLISION_MASK) | elevation | (metatile & MAPGRID_METATILE_ID_MASK); } void GenerateTrainerHillFloorLayout(u16 *mapArg) diff --git a/src/trainer_see.c b/src/trainer_see.c index dfc898cf76..f3e0d7ccdd 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -60,9 +60,9 @@ bool8 gTrainerApproachedPlayer; EWRAM_DATA u8 gApproachingTrainerId = 0; // const rom data -static const u8 sEmotion_ExclamationMarkGfx[] = INCBIN_U8("graphics/misc/emotion_exclamation.4bpp"); -static const u8 sEmotion_QuestionMarkGfx[] = INCBIN_U8("graphics/misc/emotion_question.4bpp"); -static const u8 sEmotion_HeartGfx[] = INCBIN_U8("graphics/misc/emotion_heart.4bpp"); +static const u8 sEmotion_ExclamationMarkGfx[] = INCBIN_U8("graphics/field_effects/pics/emotion_exclamation.4bpp"); +static const u8 sEmotion_QuestionMarkGfx[] = INCBIN_U8("graphics/field_effects/pics/emotion_question.4bpp"); +static const u8 sEmotion_HeartGfx[] = INCBIN_U8("graphics/field_effects/pics/emotion_heart.4bpp"); static u8 (*const sDirectionalApproachDistanceFuncs[])(struct ObjectEvent *trainerObj, s16 range, s16 x, s16 y) = { @@ -373,8 +373,6 @@ static u8 GetTrainerApproachDistanceEast(struct ObjectEvent *trainerObj, s16 ran return 0; } -#define COLLISION_MASK (~1) - static u8 CheckPathBetweenTrainerAndPlayer(struct ObjectEvent *trainerObj, u8 approachDistance, u8 direction) { s16 x, y; @@ -391,8 +389,9 @@ static u8 CheckPathBetweenTrainerAndPlayer(struct ObjectEvent *trainerObj, u8 ap MoveCoords(direction, &x, &y); for (i = 0; i < approachDistance - 1; i++, MoveCoords(direction, &x, &y)) { + // Check for collisions on approach, ignoring the "out of range" collision for regular movement collision = GetCollisionFlagsAtCoords(trainerObj, x, y, direction); - if (collision != 0 && (collision & COLLISION_MASK)) + if (collision != 0 && (collision & ~(1 << (COLLISION_OUTSIDE_RANGE - 1)))) return 0; } diff --git a/src/tv.c b/src/tv.c index 310163e94d..b9d064026c 100644 --- a/src/tv.c +++ b/src/tv.c @@ -36,11 +36,11 @@ #include "data.h" #include "constants/battle_frontier.h" #include "constants/contest.h" +#include "constants/decorations.h" #include "constants/event_objects.h" #include "constants/items.h" #include "constants/layouts.h" #include "constants/lilycove_lady.h" -#include "constants/maps.h" #include "constants/metatile_behaviors.h" #include "constants/metatile_labels.h" #include "constants/moves.h" @@ -140,13 +140,13 @@ static void TryPutRandomPokeNewsOnAir(void); static void SortPurchasesByQuantity(void); static void UpdateMassOutbreakTimeLeft(u16); static void TryEndMassOutbreak(u16); -static void UpdatePokeNewsTimeLeft(u16); +static void UpdatePokeNewsCountdown(u16); static void ResolveWorldOfMastersShow(u16); static void ResolveNumberOneShow(u16); static void TryPutFishingAdviceOnAir(void); static u8 MonDataIdxToRibbon(u8); static void TryPutNumberOneOnAir(u8); -static bool8 IsPriceDiscounted(u8); +static bool8 ShouldApplyPokeNewsEffect(u8); static void TryPutWorldOfMastersOnAir(void); static void InterviewBefore_FanClubLetter(void); static void InterviewBefore_RecentHappenings(void); @@ -228,24 +228,24 @@ static const struct { } }; -static const u16 sGoldSymbolFlags[] = { - FLAG_SYS_TOWER_GOLD, - FLAG_SYS_DOME_GOLD, - FLAG_SYS_PALACE_GOLD, - FLAG_SYS_ARENA_GOLD, - FLAG_SYS_FACTORY_GOLD, - FLAG_SYS_PIKE_GOLD, - FLAG_SYS_PYRAMID_GOLD +static const u16 sGoldSymbolFlags[NUM_FRONTIER_FACILITIES] = { + [FRONTIER_FACILITY_TOWER] = FLAG_SYS_TOWER_GOLD, + [FRONTIER_FACILITY_DOME] = FLAG_SYS_DOME_GOLD, + [FRONTIER_FACILITY_PALACE] = FLAG_SYS_PALACE_GOLD, + [FRONTIER_FACILITY_ARENA] = FLAG_SYS_ARENA_GOLD, + [FRONTIER_FACILITY_FACTORY] = FLAG_SYS_FACTORY_GOLD, + [FRONTIER_FACILITY_PIKE] = FLAG_SYS_PIKE_GOLD, + [FRONTIER_FACILITY_PYRAMID] = FLAG_SYS_PYRAMID_GOLD }; -static const u16 sSilverSymbolFlags[] = { - FLAG_SYS_TOWER_SILVER, - FLAG_SYS_DOME_SILVER, - FLAG_SYS_PALACE_SILVER, - FLAG_SYS_ARENA_SILVER, - FLAG_SYS_FACTORY_SILVER, - FLAG_SYS_PIKE_SILVER, - FLAG_SYS_PYRAMID_SILVER +static const u16 sSilverSymbolFlags[NUM_FRONTIER_FACILITIES] = { + [FRONTIER_FACILITY_TOWER] = FLAG_SYS_TOWER_SILVER, + [FRONTIER_FACILITY_DOME] = FLAG_SYS_DOME_SILVER, + [FRONTIER_FACILITY_PALACE] = FLAG_SYS_PALACE_SILVER, + [FRONTIER_FACILITY_ARENA] = FLAG_SYS_ARENA_SILVER, + [FRONTIER_FACILITY_FACTORY] = FLAG_SYS_FACTORY_SILVER, + [FRONTIER_FACILITY_PIKE] = FLAG_SYS_PIKE_SILVER, + [FRONTIER_FACILITY_PYRAMID] = FLAG_SYS_PYRAMID_SILVER }; static const u16 sNumberOneVarsAndThresholds[][2] = { @@ -258,28 +258,28 @@ static const u16 sNumberOneVarsAndThresholds[][2] = { {VAR_DAILY_BP, 30} }; -static const u8 *const sPokeNewsTextGroup_Upcoming[] = { - NULL, - gPokeNewsTextSlateport_Upcoming, - gPokeNewsTextGameCorner_Upcoming, - gPokeNewsTextLilycove_Upcoming, - gPokeNewsTextBlendMaster_Upcoming +static const u8 *const sPokeNewsTextGroup_Upcoming[NUM_POKENEWS_TYPES + 1] = { + [POKENEWS_NONE] = NULL, + [POKENEWS_SLATEPORT] = gPokeNewsTextSlateport_Upcoming, + [POKENEWS_GAME_CORNER] = gPokeNewsTextGameCorner_Upcoming, + [POKENEWS_LILYCOVE] = gPokeNewsTextLilycove_Upcoming, + [POKENEWS_BLENDMASTER] = gPokeNewsTextBlendMaster_Upcoming }; -static const u8 *const sPokeNewsTextGroup_Ongoing[] = { - NULL, - gPokeNewsTextSlateport_Ongoing, - gPokeNewsTextGameCorner_Ongoing, - gPokeNewsTextLilycove_Ongoing, - gPokeNewsTextBlendMaster_Ongoing +static const u8 *const sPokeNewsTextGroup_Ongoing[NUM_POKENEWS_TYPES + 1] = { + [POKENEWS_NONE] = NULL, + [POKENEWS_SLATEPORT] = gPokeNewsTextSlateport_Ongoing, + [POKENEWS_GAME_CORNER] = gPokeNewsTextGameCorner_Ongoing, + [POKENEWS_LILYCOVE] = gPokeNewsTextLilycove_Ongoing, + [POKENEWS_BLENDMASTER] = gPokeNewsTextBlendMaster_Ongoing }; -static const u8 *const sPokeNewsTextGroup_Ending[] = { - NULL, - gPokeNewsTextSlateport_Ending, - gPokeNewsTextGameCorner_Ending, - gPokeNewsTextLilycove_Ending, - gPokeNewsTextBlendMaster_Ending +static const u8 *const sPokeNewsTextGroup_Ending[NUM_POKENEWS_TYPES + 1] = { + [POKENEWS_NONE] = NULL, + [POKENEWS_SLATEPORT] = gPokeNewsTextSlateport_Ending, + [POKENEWS_GAME_CORNER] = gPokeNewsTextGameCorner_Ending, + [POKENEWS_LILYCOVE] = gPokeNewsTextLilycove_Ending, + [POKENEWS_BLENDMASTER] = gPokeNewsTextBlendMaster_Ending }; u8 *const gTVStringVarPtrs[] = { @@ -852,7 +852,7 @@ void UpdateTVScreensOnMap(int width, int height) } } -static void SetTVMetatilesOnMap(int width, int height, u16 tileId) +static void SetTVMetatilesOnMap(int width, int height, u16 metatileId) { int x; int y; @@ -862,7 +862,7 @@ static void SetTVMetatilesOnMap(int width, int height, u16 tileId) for (x = 0; x < width; x++) { if (MapGridGetMetatileBehaviorAt(x, y) == MB_TELEVISION) - MapGridSetMetatileIdAt(x, y, tileId | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x, y, metatileId | MAPGRID_COLLISION_MASK); } } } @@ -1526,7 +1526,7 @@ void TryPutSmartShopperOnAir(void) show->smartshopperShow.itemIds[i] = gMartPurchaseHistory[i].itemId; show->smartshopperShow.itemAmounts[i] = gMartPurchaseHistory[i].quantity; } - show->smartshopperShow.priceReduced = GetPriceReduction(POKENEWS_SLATEPORT); + show->smartshopperShow.priceReduced = IsPokeNewsActive(POKENEWS_SLATEPORT); StringCopy(show->smartshopperShow.playerName, gSaveBlock2Ptr->playerName); StorePlayerIdInRecordMixShow(show); show->smartshopperShow.language = gGameLanguage; @@ -1569,13 +1569,13 @@ void StartMassOutbreak(void) gSaveBlock1Ptr->outbreakLocationMapNum = show->massOutbreak.locationMapNum; gSaveBlock1Ptr->outbreakLocationMapGroup = show->massOutbreak.locationMapGroup; gSaveBlock1Ptr->outbreakPokemonLevel = show->massOutbreak.level; - gSaveBlock1Ptr->outbreakUnk1 = show->massOutbreak.var02; - gSaveBlock1Ptr->outbreakUnk2 = show->massOutbreak.var0E; + gSaveBlock1Ptr->outbreakUnused1 = show->massOutbreak.unused1; + gSaveBlock1Ptr->outbreakUnused2 = show->massOutbreak.unused2; gSaveBlock1Ptr->outbreakPokemonMoves[0] = show->massOutbreak.moves[0]; gSaveBlock1Ptr->outbreakPokemonMoves[1] = show->massOutbreak.moves[1]; gSaveBlock1Ptr->outbreakPokemonMoves[2] = show->massOutbreak.moves[2]; gSaveBlock1Ptr->outbreakPokemonMoves[3] = show->massOutbreak.moves[3]; - gSaveBlock1Ptr->outbreakUnk4 = show->massOutbreak.var03; + gSaveBlock1Ptr->outbreakUnused3 = show->massOutbreak.unused3; gSaveBlock1Ptr->outbreakPokemonProbability = show->massOutbreak.probability; gSaveBlock1Ptr->outbreakDaysLeft = 2; } @@ -1668,19 +1668,19 @@ static void TryStartRandomMassOutbreak(void) show->massOutbreak.kind = TVSHOW_MASS_OUTBREAK; show->massOutbreak.active = TRUE; show->massOutbreak.level = sPokeOutbreakSpeciesList[outbreakIdx].level; - show->massOutbreak.var02 = 0; - show->massOutbreak.var03 = 0; + show->massOutbreak.unused1 = 0; + show->massOutbreak.unused3 = 0; show->massOutbreak.species = sPokeOutbreakSpeciesList[outbreakIdx].species; - show->massOutbreak.var0E = 0; + show->massOutbreak.unused2 = 0; show->massOutbreak.moves[0] = sPokeOutbreakSpeciesList[outbreakIdx].moves[0]; show->massOutbreak.moves[1] = sPokeOutbreakSpeciesList[outbreakIdx].moves[1]; show->massOutbreak.moves[2] = sPokeOutbreakSpeciesList[outbreakIdx].moves[2]; show->massOutbreak.moves[3] = sPokeOutbreakSpeciesList[outbreakIdx].moves[3]; show->massOutbreak.locationMapNum = sPokeOutbreakSpeciesList[outbreakIdx].location; show->massOutbreak.locationMapGroup = 0; - show->massOutbreak.var12 = 0; + show->massOutbreak.unused4 = 0; show->massOutbreak.probability = 50; - show->massOutbreak.var15 = 0; + show->massOutbreak.unused5 = 0; show->massOutbreak.daysLeft = 1; StorePlayerIdInNormalShow(show); show->massOutbreak.language = gGameLanguage; @@ -1695,13 +1695,13 @@ void EndMassOutbreak(void) gSaveBlock1Ptr->outbreakLocationMapNum = 0; gSaveBlock1Ptr->outbreakLocationMapGroup = 0; gSaveBlock1Ptr->outbreakPokemonLevel = 0; - gSaveBlock1Ptr->outbreakUnk1 = 0; - gSaveBlock1Ptr->outbreakUnk2 = 0; + gSaveBlock1Ptr->outbreakUnused1 = 0; + gSaveBlock1Ptr->outbreakUnused2 = 0; gSaveBlock1Ptr->outbreakPokemonMoves[0] = MOVE_NONE; gSaveBlock1Ptr->outbreakPokemonMoves[1] = MOVE_NONE; gSaveBlock1Ptr->outbreakPokemonMoves[2] = MOVE_NONE; gSaveBlock1Ptr->outbreakPokemonMoves[3] = MOVE_NONE; - gSaveBlock1Ptr->outbreakUnk4 = 0; + gSaveBlock1Ptr->outbreakUnused3 = 0; gSaveBlock1Ptr->outbreakPokemonProbability = 0; gSaveBlock1Ptr->outbreakDaysLeft = 0; } @@ -1710,7 +1710,7 @@ void UpdateTVShowsPerDay(u16 days) { UpdateMassOutbreakTimeLeft(days); TryEndMassOutbreak(days); - UpdatePokeNewsTimeLeft(days); + UpdatePokeNewsCountdown(days); ResolveWorldOfMastersShow(days); ResolveNumberOneShow(days); } @@ -1798,9 +1798,7 @@ void SetPokemonAnglerSpecies(u16 species) // Either way the temporary version of the show in the last slot is deleted. static void ResolveWorldOfMastersShow(u16 days) { - TVShow *show; - - show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; + TVShow *show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; if (show->worldOfMasters.kind == TVSHOW_WORLD_OF_MASTERS) { if (show->worldOfMasters.numPokeCaught >= 20) @@ -1864,7 +1862,7 @@ void TryPutTodaysRivalTrainerOnAir(void) show->rivalTrainer.mapLayoutId = gMapHeader.mapLayoutId; show->rivalTrainer.nSilverSymbols = 0; show->rivalTrainer.nGoldSymbols = 0; - for (i = 0; i < 7; i++) + for (i = 0; i < NUM_FRONTIER_FACILITIES; i++) { if (FlagGet(sSilverSymbolFlags[i]) == TRUE) show->rivalTrainer.nSilverSymbols++; @@ -1990,33 +1988,39 @@ static void SecretBaseVisit_CalculateDecorationData(TVShow *show) u8 decoration; for (i = 0; i < DECOR_MAX_SECRET_BASE; i++) - sTV_DecorationsBuffer[i] = 0; + sTV_DecorationsBuffer[i] = DECOR_NONE; + // Count (and save) the unique decorations in the base for (i = 0, n = 0; i < DECOR_MAX_SECRET_BASE; i++) { decoration = gSaveBlock1Ptr->secretBases[0].decorations[i]; - if (decoration) + if (decoration != DECOR_NONE) { + // Search for an empty spot to save decoration for (j = 0; j < DECOR_MAX_SECRET_BASE; j++) { - if (sTV_DecorationsBuffer[j] == 0) + if (sTV_DecorationsBuffer[j] == DECOR_NONE) { + // Save and count new unique decoration sTV_DecorationsBuffer[j] = decoration; n++; break; } + + // Decoration has already been saved, skip and move on to the next base decoration if (sTV_DecorationsBuffer[j] == decoration) break; } } } - if (n > 4) - show->secretBaseVisit.nDecorations = 4; + // Cap the number of unique decorations to the number the TV show will talk about + if (n > ARRAY_COUNT(show->secretBaseVisit.decorations)) + show->secretBaseVisit.numDecorations = ARRAY_COUNT(show->secretBaseVisit.decorations); else - show->secretBaseVisit.nDecorations = n; + show->secretBaseVisit.numDecorations = n; - switch (show->secretBaseVisit.nDecorations) + switch (show->secretBaseVisit.numDecorations) { case 0: break; @@ -2024,16 +2028,16 @@ static void SecretBaseVisit_CalculateDecorationData(TVShow *show) show->secretBaseVisit.decorations[0] = sTV_DecorationsBuffer[0]; break; default: + // More than 1 decoration, randomize the full list for (k = 0; k < n * n; k++) { decoration = Random() % n; j = Random() % n; - i = sTV_DecorationsBuffer[decoration]; - sTV_DecorationsBuffer[decoration] = sTV_DecorationsBuffer[j]; - sTV_DecorationsBuffer[j] = i; + SWAP(sTV_DecorationsBuffer[decoration], sTV_DecorationsBuffer[j], i); } - for (i = 0; i < show->secretBaseVisit.nDecorations; i++) + // Pick the first decorations in the randomized list to talk about on the show + for (i = 0; i < show->secretBaseVisit.numDecorations; i++) show->secretBaseVisit.decorations[i] = sTV_DecorationsBuffer[i]; break; } @@ -2044,50 +2048,55 @@ static void SecretBaseVisit_CalculatePartyData(TVShow *show) u8 i; u16 move; u16 j; - u8 nMoves; - u8 nPokemon; + u8 numMoves; + u8 numPokemon; u16 sum; - for (i = 0, nPokemon = 0; i < PARTY_SIZE; i++) + for (i = 0, numPokemon = 0; i < PARTY_SIZE; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) { - sTV_SecretBaseVisitMonsTemp[nPokemon].level = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL); - sTV_SecretBaseVisitMonsTemp[nPokemon].species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES); - nMoves = 0; + sTV_SecretBaseVisitMonsTemp[numPokemon].level = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL); + sTV_SecretBaseVisitMonsTemp[numPokemon].species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES); + + // Check all the Pokémon's moves, then randomly select one to save + numMoves = 0; move = GetMonData(&gPlayerParty[i], MON_DATA_MOVE1); if (move != MOVE_NONE) { - sTV_SecretBaseVisitMovesTemp[nMoves] = move; - nMoves++; + sTV_SecretBaseVisitMovesTemp[numMoves] = move; + numMoves++; } move = GetMonData(&gPlayerParty[i], MON_DATA_MOVE2); if (move != MOVE_NONE) { - sTV_SecretBaseVisitMovesTemp[nMoves] = move; - nMoves++; + sTV_SecretBaseVisitMovesTemp[numMoves] = move; + numMoves++; } move = GetMonData(&gPlayerParty[i], MON_DATA_MOVE3); if (move != MOVE_NONE) { - sTV_SecretBaseVisitMovesTemp[nMoves] = move; - nMoves++; + sTV_SecretBaseVisitMovesTemp[numMoves] = move; + numMoves++; } move = GetMonData(&gPlayerParty[i], MON_DATA_MOVE4); if (move != MOVE_NONE) { - sTV_SecretBaseVisitMovesTemp[nMoves] = move; - nMoves++; + sTV_SecretBaseVisitMovesTemp[numMoves] = move; + numMoves++; } - sTV_SecretBaseVisitMonsTemp[nPokemon].move = sTV_SecretBaseVisitMovesTemp[Random() % nMoves]; - nPokemon++; + sTV_SecretBaseVisitMonsTemp[numPokemon].move = sTV_SecretBaseVisitMovesTemp[Random() % numMoves]; + numPokemon++; } } - for (i = 0, sum = 0; i < nPokemon; i++) + + for (i = 0, sum = 0; i < numPokemon; i++) sum += sTV_SecretBaseVisitMonsTemp[i].level; - show->secretBaseVisit.avgLevel = sum / nPokemon; - j = Random() % nPokemon; + // Using the data calculated above, save the data to talk about on the show + // (average level, and one randomly selected species / move) + show->secretBaseVisit.avgLevel = sum / numPokemon; + j = Random() % numPokemon; show->secretBaseVisit.species = sTV_SecretBaseVisitMonsTemp[j].species; show->secretBaseVisit.move = sTV_SecretBaseVisitMonsTemp[j].move; } @@ -2225,7 +2234,7 @@ void TryPutBattleSeminarOnAir(u16 foeSpecies, u16 species, u8 moveIdx, const u16 } } -void TryPutSafariFanClubOnAir(u8 nMonsCaught, u8 nPkblkUsed) +void TryPutSafariFanClubOnAir(u8 monsCaught, u8 pokeblocksUsed) { TVShow *show; @@ -2236,8 +2245,8 @@ void TryPutSafariFanClubOnAir(u8 nMonsCaught, u8 nPkblkUsed) show->safariFanClub.kind = TVSHOW_SAFARI_FAN_CLUB; show->safariFanClub.active = FALSE; // NOTE: Show is not active until passed via Record Mix. StringCopy(show->safariFanClub.playerName, gSaveBlock2Ptr->playerName); - show->safariFanClub.nMonsCaught = nMonsCaught; - show->safariFanClub.nPkblkUsed = nPkblkUsed; + show->safariFanClub.monsCaught = monsCaught; + show->safariFanClub.pokeblocksUsed = pokeblocksUsed; StorePlayerIdInRecordMixShow(show); show->safariFanClub.language = gGameLanguage; } @@ -2537,12 +2546,12 @@ static void TryPutRandomPokeNewsOnAir(void) sCurTVShowSlot = GetFirstEmptyPokeNewsSlot(gSaveBlock1Ptr->pokeNews); if (sCurTVShowSlot != -1 && rbernoulli(1, 100) != TRUE) { - u8 newsKind = (Random() % NUM_POKENEWS_TYPES) + POKENEWS_SLATEPORT; + u8 newsKind = (Random() % NUM_POKENEWS_TYPES) + 1; // +1 to skip over POKENEWS_NONE if (IsAddingPokeNewsDisallowed(newsKind) != TRUE) { gSaveBlock1Ptr->pokeNews[sCurTVShowSlot].kind = newsKind; - gSaveBlock1Ptr->pokeNews[sCurTVShowSlot].days = 4; - gSaveBlock1Ptr->pokeNews[sCurTVShowSlot].state = 1; + gSaveBlock1Ptr->pokeNews[sCurTVShowSlot].dayCountdown = POKENEWS_COUNTDOWN; + gSaveBlock1Ptr->pokeNews[sCurTVShowSlot].state = POKENEWS_STATE_UPCOMING; } } } @@ -2571,8 +2580,8 @@ static void ClearPokeNews(void) static void ClearPokeNewsBySlot(u8 i) { gSaveBlock1Ptr->pokeNews[i].kind = POKENEWS_NONE; - gSaveBlock1Ptr->pokeNews[i].state = FALSE; - gSaveBlock1Ptr->pokeNews[i].days = 0; + gSaveBlock1Ptr->pokeNews[i].state = POKENEWS_STATE_INACTIVE; + gSaveBlock1Ptr->pokeNews[i].dayCountdown = 0; } static void CompactPokeNews(void) @@ -2604,8 +2613,8 @@ static u8 FindAnyPokeNewsOnTheAir(void) for (i = 0; i < POKE_NEWS_COUNT; i++) { if (gSaveBlock1Ptr->pokeNews[i].kind != POKENEWS_NONE - && gSaveBlock1Ptr->pokeNews[i].state == 1 - && gSaveBlock1Ptr->pokeNews[i].days < 3) + && gSaveBlock1Ptr->pokeNews[i].state == POKENEWS_STATE_UPCOMING + && gSaveBlock1Ptr->pokeNews[i].dayCountdown < POKENEWS_COUNTDOWN - 1) return i; } return 0xFF; @@ -2613,19 +2622,17 @@ static u8 FindAnyPokeNewsOnTheAir(void) void DoPokeNews(void) { - u8 i; - u16 n; - - i = FindAnyPokeNewsOnTheAir(); + u8 i = FindAnyPokeNewsOnTheAir(); if (i == 0xFF) { gSpecialVar_Result = FALSE; } else { - if (gSaveBlock1Ptr->pokeNews[i].days == 0) + if (gSaveBlock1Ptr->pokeNews[i].dayCountdown == 0) { - gSaveBlock1Ptr->pokeNews[i].state = 2; + // News event is occurring, make comment depending on how much time is left + gSaveBlock1Ptr->pokeNews[i].state = POKENEWS_STATE_ACTIVE; if (gLocalTime.hours < 20) ShowFieldMessage(sPokeNewsTextGroup_Ongoing[gSaveBlock1Ptr->pokeNews[i].kind]); else @@ -2633,16 +2640,20 @@ void DoPokeNews(void) } else { - n = gSaveBlock1Ptr->pokeNews[i].days; - ConvertIntToDecimalStringN(gStringVar1, n, STR_CONV_MODE_LEFT_ALIGN, 1); - gSaveBlock1Ptr->pokeNews[i].state = 0; + // News event is upcoming, make comment about countdown to event + u16 dayCountdown = gSaveBlock1Ptr->pokeNews[i].dayCountdown; + ConvertIntToDecimalStringN(gStringVar1, dayCountdown, STR_CONV_MODE_LEFT_ALIGN, 1); + + // Mark as inactive so the countdown TV airing doesn't repeat + // Will be flagged as "upcoming" again by UpdatePokeNewsCountdown + gSaveBlock1Ptr->pokeNews[i].state = POKENEWS_STATE_INACTIVE; ShowFieldMessage(sPokeNewsTextGroup_Upcoming[gSaveBlock1Ptr->pokeNews[i].kind]); } gSpecialVar_Result = TRUE; } } -bool8 GetPriceReduction(u8 newsKind) +bool8 IsPokeNewsActive(u8 newsKind) { u8 i; @@ -2653,7 +2664,7 @@ bool8 GetPriceReduction(u8 newsKind) { if (gSaveBlock1Ptr->pokeNews[i].kind == newsKind) { - if (gSaveBlock1Ptr->pokeNews[i].state == 2 && IsPriceDiscounted(newsKind)) + if (gSaveBlock1Ptr->pokeNews[i].state == POKENEWS_STATE_ACTIVE && ShouldApplyPokeNewsEffect(newsKind)) return TRUE; return FALSE; @@ -2662,16 +2673,23 @@ bool8 GetPriceReduction(u8 newsKind) return FALSE; } -static bool8 IsPriceDiscounted(u8 newsKind) +// Returns TRUE if the effects of the given PokeNews should be applied. +// For POKENEWS_SLATEPORT / POKENEWS_LILYCOVE, only apply the effect if +// the player is talking to the Energy Guru / at the Dept Store Rooftop. +// For any other type of PokeNews this is always TRUE. +static bool8 ShouldApplyPokeNewsEffect(u8 newsKind) { switch (newsKind) { case POKENEWS_SLATEPORT: - if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SLATEPORT_CITY) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SLATEPORT_CITY) && gSpecialVar_LastTalked == 25) + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SLATEPORT_CITY) + && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SLATEPORT_CITY) + && gSpecialVar_LastTalked == LOCALID_SLATEPORT_ENERGY_GURU) return TRUE; return FALSE; case POKENEWS_LILYCOVE: - if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP)) + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP) + && gSaveBlock1Ptr->location.mapNum == MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP)) return TRUE; return FALSE; } @@ -2693,7 +2711,7 @@ static bool8 IsAddingPokeNewsDisallowed(u8 newsKind) return FALSE; } -static void UpdatePokeNewsTimeLeft(u16 days) +static void UpdatePokeNewsCountdown(u16 days) { u8 i; @@ -2701,16 +2719,18 @@ static void UpdatePokeNewsTimeLeft(u16 days) { if (gSaveBlock1Ptr->pokeNews[i].kind != POKENEWS_NONE) { - if (gSaveBlock1Ptr->pokeNews[i].days < days) + if (gSaveBlock1Ptr->pokeNews[i].dayCountdown < days) { + // News event has elapsed, clear it from list ClearPokeNewsBySlot(i); } else { - if (gSaveBlock1Ptr->pokeNews[i].state == 0 && FlagGet(FLAG_SYS_GAME_CLEAR) == TRUE) - gSaveBlock1Ptr->pokeNews[i].state = 1; + // Progress countdown to news event + if (gSaveBlock1Ptr->pokeNews[i].state == POKENEWS_STATE_INACTIVE && FlagGet(FLAG_SYS_GAME_CLEAR) == TRUE) + gSaveBlock1Ptr->pokeNews[i].state = POKENEWS_STATE_UPCOMING; - gSaveBlock1Ptr->pokeNews[i].days -= days; + gSaveBlock1Ptr->pokeNews[i].dayCountdown -= days; } } } @@ -2760,9 +2780,7 @@ void CopyContestCategoryToStringVar(u8 varIdx, u8 category) void SetContestCategoryStringVarForInterview(void) { - TVShow *show; - - show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + TVShow *show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; CopyContestCategoryToStringVar(1, show->bravoTrainer.contestCategory); } @@ -2789,9 +2807,7 @@ size_t CountDigits(int value) static void SmartShopper_BufferPurchaseTotal(u8 varIdx, TVShow *show) { u8 i; - int price; - - price = 0; + int price = 0; for (i = 0; i < SMARTSHOPPER_NUM_ITEMS; i++) { if (show->smartshopperShow.itemIds[i] != ITEM_NONE) @@ -2832,21 +2848,19 @@ static bool8 IsRecordMixShowAlreadySpawned(u8 kind, bool8 delete) static void SortPurchasesByQuantity(void) { u8 i, j; - u16 tmpId; - u16 tmpQn; - + for (i = 0; i < SMARTSHOPPER_NUM_ITEMS - 1; i++) { for (j = i + 1; j < SMARTSHOPPER_NUM_ITEMS; j++) { if (gMartPurchaseHistory[i].quantity < gMartPurchaseHistory[j].quantity) { - tmpId = gMartPurchaseHistory[i].itemId; - tmpQn = gMartPurchaseHistory[i].quantity; + u16 tempItemId = gMartPurchaseHistory[i].itemId; + u16 tempQuantity = gMartPurchaseHistory[i].quantity; gMartPurchaseHistory[i].itemId = gMartPurchaseHistory[j].itemId; gMartPurchaseHistory[i].quantity = gMartPurchaseHistory[j].quantity; - gMartPurchaseHistory[j].itemId = tmpId; - gMartPurchaseHistory[j].quantity = tmpQn; + gMartPurchaseHistory[j].itemId = tempItemId; + gMartPurchaseHistory[j].quantity = tempQuantity; } } } @@ -2923,7 +2937,8 @@ static void InterviewBefore_FanClubLetter(void) if (!gSpecialVar_Result) { StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL)]); - InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanclubLetter.words, 6); + InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanclubLetter.words, + ARRAY_COUNT(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanclubLetter.words)); } } @@ -2932,7 +2947,8 @@ static void InterviewBefore_RecentHappenings(void) TryReplaceOldTVShowOfKind(TVSHOW_RECENT_HAPPENINGS); if (!gSpecialVar_Result) { - InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].recentHappenings.words, 6); + InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].recentHappenings.words, + ARRAY_COUNT(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].recentHappenings.words)); } } @@ -2943,8 +2959,9 @@ static void InterviewBefore_PkmnFanClubOpinions(void) { StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL)]); GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_NICKNAME, gStringVar2); - StringGetEnd10(gStringVar2); - InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanclubOpinions.words, 2); + StringGet_Nickname(gStringVar2); + InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanclubOpinions.words, + ARRAY_COUNT(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanclubOpinions.words)); } } @@ -2962,7 +2979,8 @@ static void InterviewBefore_BravoTrainerPkmnProfile(void) { TryReplaceOldTVShowOfKind(TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE); if (!gSpecialVar_Result) - InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].bravoTrainer.words, 2); + InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].bravoTrainer.words, + ARRAY_COUNT(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].bravoTrainer.words)); } static void InterviewBefore_ContestLiveUpdates(void) @@ -2979,14 +2997,16 @@ static void InterviewBefore_BravoTrainerBTProfile(void) { TryReplaceOldTVShowOfKind(TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE); if (!gSpecialVar_Result) - InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].bravoTrainerTower.words, 1); + InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].bravoTrainerTower.words, + ARRAY_COUNT(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].bravoTrainerTower.words)); } static void InterviewBefore_FanClubSpecial(void) { TryReplaceOldTVShowOfKind(TVSHOW_FAN_CLUB_SPECIAL); if (!gSpecialVar_Result) - InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanClubSpecial.words, 1); + InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanClubSpecial.words, + ARRAY_COUNT(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanClubSpecial.words)); } static bool8 IsPartyMonNicknamedOrNotEnglish(u8 monIdx) @@ -3058,23 +3078,19 @@ static void CompactTVShowArray(TVShow *shows) } } -static u16 GetRandomDifferentSpeciesAndNameSeenByPlayer(u8 varIdx, u16 passedSpecies) +static u16 GetRandomDifferentSpeciesAndNameSeenByPlayer(u8 varIdx, u16 excludedSpecies) { - u16 species; - - species = GetRandomDifferentSpeciesSeenByPlayer(passedSpecies); + u16 species = GetRandomDifferentSpeciesSeenByPlayer(excludedSpecies); StringCopy(gTVStringVarPtrs[varIdx], gSpeciesNames[species]); return species; } -static u16 GetRandomDifferentSpeciesSeenByPlayer(u16 passedSpecies) +static u16 GetRandomDifferentSpeciesSeenByPlayer(u16 excludedSpecies) { - u16 species; - u16 initSpecies; + u16 species = Random() % (NUM_SPECIES - 1) + 1; + u16 initSpecies = species; - species = (Random() % (NUM_SPECIES - 1)) + 1; - initSpecies = species; - while (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_SEEN) != TRUE || species == passedSpecies) + while (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_SEEN) != TRUE || species == excludedSpecies) { if (species == SPECIES_NONE + 1) species = NUM_SPECIES - 1; @@ -3083,7 +3099,8 @@ static u16 GetRandomDifferentSpeciesSeenByPlayer(u16 passedSpecies) if (species == initSpecies) { - species = passedSpecies; + // Looped back to initial species (only Pokémon seen), must choose excluded species + species = excludedSpecies; return species; } }; @@ -3308,7 +3325,7 @@ static void ChangeBoxPokemonNickname_CB(void) void BufferMonNickname(void) { GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar1); - StringGetEnd10(gStringVar1); + StringGet_Nickname(gStringVar1); } void IsMonOTIDNotPlayers(void) @@ -3798,7 +3815,7 @@ void DeactivateAllNormalTVShows(void) } } -// Ensures a minimum of 5 empty mixed show slots +// Ensures a minimum of 5 empty record mixed show slots static void DeleteExcessMixedShows(void) { s8 i; @@ -3897,8 +3914,8 @@ static bool8 TryMixPokeNewsShow(PokeNews *dest, PokeNews *src, s8 slot) return FALSE; } dest[slot].kind = src->kind; - dest[slot].state = 1; - dest[slot].days = src->days; + dest[slot].state = POKENEWS_STATE_UPCOMING; + dest[slot].dayCountdown = src->dayCountdown; return TRUE; } @@ -3929,7 +3946,7 @@ static void ClearPokeNewsIfGameNotComplete(void) if (FlagGet(FLAG_SYS_GAME_CLEAR) != TRUE) { for (i = 0; i < POKE_NEWS_COUNT; i++) - gSaveBlock1Ptr->pokeNews[i].state = 0; + gSaveBlock1Ptr->pokeNews[i].state = POKENEWS_STATE_INACTIVE; } } @@ -5907,21 +5924,21 @@ static void DoTVShowSecretBaseVisit(void) { case 0: TVShowConvertInternationalString(gStringVar1, show->secretBaseVisit.playerName, show->secretBaseVisit.language); - if (show->secretBaseVisit.nDecorations == 0) + if (show->secretBaseVisit.numDecorations == 0) sTVShowState = 2; else sTVShowState = 1; break; case 1: StringCopy(gStringVar2, gDecorations[show->secretBaseVisit.decorations[0]].name); - if (show->secretBaseVisit.nDecorations == 1) + if (show->secretBaseVisit.numDecorations == 1) sTVShowState = 4; else sTVShowState = 3; break; case 3: StringCopy(gStringVar2, gDecorations[show->secretBaseVisit.decorations[1]].name); - switch (show->secretBaseVisit.nDecorations) + switch (show->secretBaseVisit.numDecorations) { case 2: sTVShowState = 7; @@ -5985,21 +6002,13 @@ static void DoTVShowPokemonLotteryWinnerFlashReport(void) state = sTVShowState; TVShowConvertInternationalString(gStringVar1, show->lottoWinner.playerName, show->lottoWinner.language); if (show->lottoWinner.whichPrize == 0) - { StringCopy(gStringVar2, gText_Jackpot); - } else if (show->lottoWinner.whichPrize == 1) - { StringCopy(gStringVar2, gText_First); - } else if (show->lottoWinner.whichPrize == 2) - { StringCopy(gStringVar2, gText_Second); - } else - { StringCopy(gStringVar2, gText_Third); - } StringCopy(gStringVar3, ItemId_GetName(show->lottoWinner.item)); TVShowDone(); ShowFieldMessage(sTVPokemonLotteryWinnerFlashReportTextGroup[state]); @@ -6712,23 +6721,23 @@ static void DoTVShowSafariFanClub(void) switch (state) { case 0: - if (show->safariFanClub.nMonsCaught == 0) + if (show->safariFanClub.monsCaught == 0) sTVShowState = 6; - else if (show->safariFanClub.nMonsCaught < 4) + else if (show->safariFanClub.monsCaught < 4) sTVShowState = 5; else sTVShowState = 1; break; case 1: TVShowConvertInternationalString(gStringVar1, show->safariFanClub.playerName, show->safariFanClub.language); - ConvertIntToDecimalString(1, show->safariFanClub.nMonsCaught); - if (show->safariFanClub.nPkblkUsed == 0) + ConvertIntToDecimalString(1, show->safariFanClub.monsCaught); + if (show->safariFanClub.pokeblocksUsed == 0) sTVShowState = 3; else sTVShowState = 2; break; case 2: - ConvertIntToDecimalString(1, show->safariFanClub.nPkblkUsed); + ConvertIntToDecimalString(1, show->safariFanClub.pokeblocksUsed); sTVShowState = 4; break; case 3: @@ -6740,21 +6749,21 @@ static void DoTVShowSafariFanClub(void) break; case 5: TVShowConvertInternationalString(gStringVar1, show->safariFanClub.playerName, show->safariFanClub.language); - ConvertIntToDecimalString(1, show->safariFanClub.nMonsCaught); - if (show->safariFanClub.nPkblkUsed == 0) + ConvertIntToDecimalString(1, show->safariFanClub.monsCaught); + if (show->safariFanClub.pokeblocksUsed == 0) sTVShowState = 8; else sTVShowState = 7; break; case 6: TVShowConvertInternationalString(gStringVar1, show->safariFanClub.playerName, show->safariFanClub.language); - if (show->safariFanClub.nPkblkUsed == 0) + if (show->safariFanClub.pokeblocksUsed == 0) sTVShowState = 8; else sTVShowState = 7; break; case 7: - ConvertIntToDecimalString(1, show->safariFanClub.nPkblkUsed); + ConvertIntToDecimalString(1, show->safariFanClub.pokeblocksUsed); sTVShowState = 9; break; case 8: diff --git a/src/union_room.c b/src/union_room.c index 1400a0b1d4..9a743dbab9 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -49,7 +49,6 @@ #include "constants/battle_frontier.h" #include "constants/cable_club.h" #include "constants/game_stat.h" -#include "constants/maps.h" #include "constants/party_menu.h" #include "constants/rgb.h" #include "constants/songs.h" @@ -1593,8 +1592,8 @@ void StartUnionRoomBattle(u16 battleFlags) static void WarpForWirelessMinigame(u16 linkService, u16 x, u16 y) { VarSet(VAR_CABLE_CLUB_STATE, linkService); - SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y); - SetDynamicWarpWithCoords(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y); + SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, WARP_ID_NONE, x, y); + SetDynamicWarpWithCoords(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, WARP_ID_NONE, x, y); WarpIntoMap(); } @@ -1605,7 +1604,7 @@ static void WarpForCableClubActivity(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 l gFieldLinkPlayerCount = GetLinkPlayerCount(); gLocalLinkPlayerId = GetMultiplayerId(); SetCableClubWarp(); - SetWarpDestination(mapGroup, mapNum, -1, x, y); + SetWarpDestination(mapGroup, mapNum, WARP_ID_NONE, x, y); WarpIntoMap(); } @@ -4503,6 +4502,6 @@ static void ViewURoomPartnerTrainerCard(u8 *unused, struct WirelessLink_URoom *d static void CopyAndTranslatePlayerName(u8 *dest, struct RfuPlayer *player) { - StringCopy7(dest, player->rfu.name); + StringCopy_PlayerName(dest, player->rfu.name); ConvertInternationalString(dest, player->rfu.data.compatibility.language); } diff --git a/src/union_room_chat.c b/src/union_room_chat.c index 22268ef4ac..9890bc1f88 100755 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -2987,7 +2987,7 @@ static void ShowKeyboardSwapMenu(void) { FillWindowPixelBuffer(3, PIXEL_FILL(1)); DrawTextBorderOuter(3, 1, 13); - PrintMenuActionTextsAtPos(3, FONT_SHORT, 8, 1, 14, 5, sKeyboardPageTitleTexts); + PrintMenuActionTextsAtPos(3, FONT_SHORT, 8, 1, 14, ARRAY_COUNT(sKeyboardPageTitleTexts), sKeyboardPageTitleTexts); InitMenuNormal(3, FONT_SHORT, 0, 1, 14, 5, GetCurrentKeyboardPage()); PutWindowTilemap(3); } diff --git a/src/union_room_player_avatar.c b/src/union_room_player_avatar.c index 2253861659..908eb8f21f 100644 --- a/src/union_room_player_avatar.c +++ b/src/union_room_player_avatar.c @@ -400,12 +400,12 @@ void CreateUnionRoomPlayerSprites(u8 * spriteIds, s32 leaderId) for (memberId = 0; memberId < MAX_RFU_PLAYERS; memberId++) { s32 id = UR_PLAYER_SPRITE_ID(leaderId, memberId); - spriteIds[id] = CreateObjectSprite(OBJ_EVENT_GFX_MAN_4, + spriteIds[id] = CreateVirtualObject(OBJ_EVENT_GFX_MAN_4, id - UR_SPRITE_START_ID, sUnionRoomPlayerCoords[leaderId][0] + sUnionRoomGroupOffsets[memberId][0], sUnionRoomPlayerCoords[leaderId][1] + sUnionRoomGroupOffsets[memberId][1], 3, 1); - SetObjectEventSpriteInvisibility(id - UR_SPRITE_START_ID, TRUE); + SetVirtualObjectInvisibility(id - UR_SPRITE_START_ID, TRUE); } } @@ -443,7 +443,7 @@ static u8 GetNewFacingDirectionForUnionRoomPlayer(u32 memberId, u32 leaderId, st static bool32 IsUnionRoomPlayerInvisible(u32 leaderId, u32 memberId) { - return IsObjectEventSpriteInvisible(UR_PLAYER_SPRITE_ID(leaderId, memberId) - UR_SPRITE_START_ID); + return IsVirtualObjectInvisible(UR_PLAYER_SPRITE_ID(leaderId, memberId) - UR_SPRITE_START_ID); } static void SpawnGroupMember(u32 leaderId, u32 memberId, u8 graphicsId, struct RfuGameData * gameData) @@ -452,10 +452,10 @@ static void SpawnGroupMember(u32 leaderId, u32 memberId, u8 graphicsId, struct R s32 id = UR_PLAYER_SPRITE_ID(leaderId, memberId); if (IsUnionRoomPlayerInvisible(leaderId, memberId) == TRUE) { - SetObjectEventSpriteInvisibility(id - UR_SPRITE_START_ID, FALSE); - SetObjectEventSpriteAnim(id - UR_SPRITE_START_ID, UNION_ROOM_SPAWN_IN); + SetVirtualObjectInvisibility(id - UR_SPRITE_START_ID, FALSE); + SetVirtualObjectSpriteAnim(id - UR_SPRITE_START_ID, UNION_ROOM_SPAWN_IN); } - SetObjectEventSpriteGraphics(id - UR_SPRITE_START_ID, graphicsId); + SetVirtualObjectGraphics(id - UR_SPRITE_START_ID, graphicsId); SetUnionRoomObjectFacingDirection(memberId, leaderId, GetNewFacingDirectionForUnionRoomPlayer(memberId, leaderId, gameData)); GetUnionRoomPlayerCoords(leaderId, memberId, &x, &y); MapGridSetMetatileImpassabilityAt(x, y, TRUE); @@ -464,7 +464,7 @@ static void SpawnGroupMember(u32 leaderId, u32 memberId, u8 graphicsId, struct R static void DespawnGroupMember(u32 leaderId, u32 memberId) { s32 x, y; - SetObjectEventSpriteAnim(UR_PLAYER_SPRITE_ID(leaderId, memberId) - UR_SPRITE_START_ID, UNION_ROOM_SPAWN_OUT); + SetVirtualObjectSpriteAnim(UR_PLAYER_SPRITE_ID(leaderId, memberId) - UR_SPRITE_START_ID, UNION_ROOM_SPAWN_OUT); GetUnionRoomPlayerCoords(leaderId, memberId, &x, &y); MapGridSetMetatileImpassabilityAt(x, y, FALSE); } @@ -476,7 +476,7 @@ static void AssembleGroup(u32 leaderId, struct RfuGameData * gameData) PlayerGetDestCoords(&x, &y); player_get_pos_including_state_based_drift(&x2, &y2); - if (IsObjectEventSpriteInvisible(UR_PLAYER_SPRITE_ID(leaderId, 0) - UR_SPRITE_START_ID) == TRUE) + if (IsVirtualObjectInvisible(UR_PLAYER_SPRITE_ID(leaderId, 0) - UR_SPRITE_START_ID) == TRUE) { if (IsUnionRoomPlayerAt(leaderId, 0, x, y) == TRUE || IsUnionRoomPlayerAt(leaderId, 0, x2, y2) == TRUE) return; @@ -576,9 +576,9 @@ bool32 TryInteractWithUnionRoomMember(struct RfuPlayerList *list, s16 *memberIdP continue; // Has a group member spawned at this position? - if (IsObjectEventSpriteInvisible(id - UR_SPRITE_START_ID)) + if (IsVirtualObjectInvisible(id - UR_SPRITE_START_ID)) continue; - if (IsObjectEventSpriteAnimating(id - UR_SPRITE_START_ID)) + if (IsVirtualObjectAnimating(id - UR_SPRITE_START_ID)) continue; if (leaders[i].groupScheduledAnim != UNION_ROOM_SPAWN_IN) continue; @@ -595,9 +595,9 @@ bool32 TryInteractWithUnionRoomMember(struct RfuPlayerList *list, s16 *memberIdP static void SetUnionRoomObjectFacingDirection(s32 memberId, s32 leaderId, u8 newDirection) { - TurnObjectEventSprite(MAX_RFU_PLAYERS * leaderId - UR_SPRITE_START_ID + memberId, newDirection); + TurnVirtualObject(MAX_RFU_PLAYERS * leaderId - UR_SPRITE_START_ID + memberId, newDirection); // should be line below, but order is swapped here - // TurnObjectEventSprite(UR_PLAYER_SPRITE_ID(leaderId, memberId) - UR_SPRITE_START_ID, newDirection); + // TurnVirtualObject(UR_PLAYER_SPRITE_ID(leaderId, memberId) - UR_SPRITE_START_ID, newDirection); } void UpdateUnionRoomMemberFacing(u32 memberId, u32 leaderId, struct RfuPlayerList *list) diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 312e2107e8..8f041a6ff2 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -868,7 +868,7 @@ static void AskUsePokeblock(void) u8 stringBuffer[0x40]; GetMonData(&gPlayerParty[GetPartyIdFromSelectionId(sMenu->info.curSelection)], MON_DATA_NICKNAME, stringBuffer); - StringGetEnd10(stringBuffer); + StringGet_Nickname(stringBuffer); StringAppend(stringBuffer, gText_GetsAPokeBlockQuestion); StringCopy(gStringVar4, stringBuffer); FillWindowPixelBuffer(WIN_TEXT, 17); diff --git a/src/wallclock.c b/src/wallclock.c index 759b1d11ff..5e0fae3a13 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -41,6 +41,8 @@ static void SpriteCB_HourHand(struct Sprite *sprite); static void SpriteCB_PMIndicator(struct Sprite *sprite); static void SpriteCB_AMIndicator(struct Sprite *sprite); +#define sTaskId data[0] + #define tMinuteHandAngle data[0] #define tHourHandAngle data[1] #define tHours data[2] @@ -696,21 +698,21 @@ void CB2_StartWallClock(void) gTasks[taskId].tHourHandAngle = 300; spriteId = CreateSprite(&sSpriteTemplate_MinuteHand, 120, 80, 1); - gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].sTaskId = taskId; gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].oam.matrixNum = 0; spriteId = CreateSprite(&sSpriteTemplate_HourHand, 120, 80, 0); - gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].sTaskId = taskId; gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].oam.matrixNum = 1; spriteId = CreateSprite(&sSpriteTemplate_PM, 120, 80, 2); - gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].sTaskId = taskId; gSprites[spriteId].data[1] = 45; spriteId = CreateSprite(&sSpriteTemplate_AM, 120, 80, 2); - gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].sTaskId = taskId; gSprites[spriteId].data[1] = 90; WallClockInit(); @@ -744,21 +746,21 @@ void CB2_ViewWallClock(void) } spriteId = CreateSprite(&sSpriteTemplate_MinuteHand, 120, 80, 1); - gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].sTaskId = taskId; gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].oam.matrixNum = 0; spriteId = CreateSprite(&sSpriteTemplate_HourHand, 120, 80, 0); - gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].sTaskId = taskId; gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].oam.matrixNum = 1; spriteId = CreateSprite(&sSpriteTemplate_PM, 120, 80, 2); - gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].sTaskId = taskId; gSprites[spriteId].data[1] = angle1; spriteId = CreateSprite(&sSpriteTemplate_AM, 120, 80, 2); - gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].sTaskId = taskId; gSprites[spriteId].data[1] = angle2; WallClockInit(); @@ -1015,7 +1017,7 @@ static void InitClockWithRtc(u8 taskId) static void SpriteCB_MinuteHand(struct Sprite *sprite) { - u16 angle = gTasks[sprite->data[0]].tMinuteHandAngle; + u16 angle = gTasks[sprite->sTaskId].tMinuteHandAngle; s16 sin = Sin2(angle) / 16; s16 cos = Cos2(angle) / 16; u16 x, y; @@ -1035,7 +1037,7 @@ static void SpriteCB_MinuteHand(struct Sprite *sprite) static void SpriteCB_HourHand(struct Sprite *sprite) { - u16 angle = gTasks[sprite->data[0]].tHourHandAngle; + u16 angle = gTasks[sprite->sTaskId].tHourHandAngle; s16 sin = Sin2(angle) / 16; s16 cos = Cos2(angle) / 16; u16 x, y; @@ -1053,58 +1055,44 @@ static void SpriteCB_HourHand(struct Sprite *sprite) sprite->y2 = y; } +#define sAngle data[1] + static void SpriteCB_PMIndicator(struct Sprite *sprite) { - if (gTasks[sprite->data[0]].tPeriod != PERIOD_AM) + if (gTasks[sprite->sTaskId].tPeriod != PERIOD_AM) { - if (sprite->data[1] >= 60 && sprite->data[1] < 90) - { - sprite->data[1] += 5; - } - if (sprite->data[1] < 60) - { - sprite->data[1]++; - } + if (sprite->sAngle >= 60 && sprite->sAngle < 90) + sprite->sAngle += 5; + if (sprite->sAngle < 60) + sprite->sAngle++; } else { - if (sprite->data[1] >= 46 && sprite->data[1] < 76) - { - sprite->data[1] -= 5; - } - if (sprite->data[1] > 75) - { - sprite->data[1]--; - } + if (sprite->sAngle >= 46 && sprite->sAngle < 76) + sprite->sAngle -= 5; + if (sprite->sAngle > 75) + sprite->sAngle--; } - sprite->x2 = Cos2(sprite->data[1]) * 30 / 0x1000; - sprite->y2 = Sin2(sprite->data[1]) * 30 / 0x1000; + sprite->x2 = Cos2(sprite->sAngle) * 30 / 0x1000; + sprite->y2 = Sin2(sprite->sAngle) * 30 / 0x1000; } static void SpriteCB_AMIndicator(struct Sprite *sprite) { - if (gTasks[sprite->data[0]].tPeriod != PERIOD_AM) + if (gTasks[sprite->sTaskId].tPeriod != PERIOD_AM) { - if (sprite->data[1] >= 105 && sprite->data[1] < 135) - { - sprite->data[1] += 5; - } - if (sprite->data[1] < 105) - { - sprite->data[1]++; - } + if (sprite->sAngle >= 105 && sprite->sAngle < 135) + sprite->sAngle += 5; + if (sprite->sAngle < 105) + sprite->sAngle++; } else { - if (sprite->data[1] >= 91 && sprite->data[1] < 121) - { - sprite->data[1] -= 5; - } - if (sprite->data[1] > 120) - { - sprite->data[1]--; - } + if (sprite->sAngle >= 91 && sprite->sAngle < 121) + sprite->sAngle -= 5; + if (sprite->sAngle > 120) + sprite->sAngle--; } - sprite->x2 = Cos2(sprite->data[1]) * 30 / 0x1000; - sprite->y2 = Sin2(sprite->data[1]) * 30 / 0x1000; + sprite->x2 = Cos2(sprite->sAngle) * 30 / 0x1000; + sprite->y2 = Sin2(sprite->sAngle) * 30 / 0x1000; } diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 65d8c86d09..4b3402e5ac 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -20,7 +20,6 @@ #include "constants/game_stat.h" #include "constants/items.h" #include "constants/layouts.h" -#include "constants/maps.h" #include "constants/weather.h" extern const u8 EventScript_RepelWoreOff[]; @@ -46,6 +45,8 @@ enum { #define WILD_CHECK_REPEL (1 << 0) #define WILD_CHECK_KEEN_EYE (1 << 1) +#define HEADER_NONE 0xFFFF + static u16 FeebasRandom(void); static void FeebasSeedRng(u16 seed); static bool8 IsWildLevelAllowedByRepel(u8 level); @@ -173,6 +174,7 @@ static void FeebasSeedRng(u16 seed) sFeebasRngValue = seed; } +// LAND_WILD_COUNT static u8 ChooseWildMonIndex_Land(void) { u8 rand = Random() % ENCOUNTER_CHANCE_LAND_MONS_TOTAL; @@ -203,6 +205,7 @@ static u8 ChooseWildMonIndex_Land(void) return 11; } +// ROCK_WILD_COUNT / WATER_WILD_COUNT static u8 ChooseWildMonIndex_WaterRock(void) { u8 rand = Random() % ENCOUNTER_CHANCE_WATER_MONS_TOTAL; @@ -219,6 +222,7 @@ static u8 ChooseWildMonIndex_WaterRock(void) return 4; } +// FISH_WILD_COUNT static u8 ChooseWildMonIndex_Fishing(u8 rod) { u8 wildMonIndex = 0; @@ -311,7 +315,7 @@ static u16 GetCurrentMapWildMonHeaderId(void) gSaveBlock1Ptr->location.mapNum == MAP_NUM(ALTERING_CAVE)) { u16 alteringCaveId = VarGet(VAR_ALTERING_CAVE_WILD_SET); - if (alteringCaveId > 8) + if (alteringCaveId >= NUM_ALTERING_CAVE_TABLES) alteringCaveId = 0; i += alteringCaveId; @@ -321,7 +325,7 @@ static u16 GetCurrentMapWildMonHeaderId(void) } } - return -1; + return HEADER_NONE; } static u8 PickWildMonNature(void) @@ -542,7 +546,7 @@ bool8 StandardWildEncounter(u16 currMetaTileBehavior, u16 previousMetaTileBehavi return FALSE; headerId = GetCurrentMapWildMonHeaderId(); - if (headerId == 0xFFFF) + if (headerId == HEADER_NONE) { if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS) { @@ -653,7 +657,7 @@ void RockSmashWildEncounter(void) { u16 headerId = GetCurrentMapWildMonHeaderId(); - if (headerId != 0xFFFF) + if (headerId != HEADER_NONE) { const struct WildPokemonInfo *wildPokemonInfo = gWildMonHeaders[headerId].rockSmashMonsInfo; @@ -685,7 +689,7 @@ bool8 SweetScentWildEncounter(void) PlayerGetDestCoords(&x, &y); headerId = GetCurrentMapWildMonHeaderId(); - if (headerId == 0xFFFF) + if (headerId == HEADER_NONE) { if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS) { @@ -755,7 +759,7 @@ bool8 DoesCurrentMapHaveFishingMons(void) { u16 headerId = GetCurrentMapWildMonHeaderId(); - if (headerId != 0xFFFF && gWildMonHeaders[headerId].fishingMonsInfo != NULL) + if (headerId != HEADER_NONE && gWildMonHeaders[headerId].fishingMonsInfo != NULL) return TRUE; else return FALSE; @@ -789,7 +793,7 @@ u16 GetLocalWildMon(bool8 *isWaterMon) *isWaterMon = FALSE; headerId = GetCurrentMapWildMonHeaderId(); - if (headerId == 0xFFFF) + if (headerId == HEADER_NONE) return SPECIES_NONE; landMonsInfo = gWildMonHeaders[headerId].landMonsInfo; waterMonsInfo = gWildMonHeaders[headerId].waterMonsInfo; @@ -821,7 +825,7 @@ u16 GetLocalWaterMon(void) { u16 headerId = GetCurrentMapWildMonHeaderId(); - if (headerId != 0xFFFF) + if (headerId != HEADER_NONE) { const struct WildPokemonInfo *waterMonsInfo = gWildMonHeaders[headerId].waterMonsInfo; diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c index ffb86488aa..1fbd83fcda 100644 --- a/src/wireless_communication_status_screen.c +++ b/src/wireless_communication_status_screen.c @@ -51,9 +51,9 @@ static void Task_WirelessCommunicationScreen(u8); static void WCSS_AddTextPrinterParameterized(u8, u8, const u8 *, u8, u8, u8); static bool32 UpdateCommunicationCounts(u32 *, u32 *, u32 *, u8); -static const u16 sBgTiles_Pal[] = INCBIN_U16("graphics/interface/wireless_info_screen.gbapal"); -static const u32 sBgTiles_Gfx[] = INCBIN_U32("graphics/interface/wireless_info_screen.4bpp.lz"); -static const u32 sBgTiles_Tilemap[] = INCBIN_U32("graphics/interface/wireless_info_screen.bin.lz"); +static const u16 sBgTiles_Pal[] = INCBIN_U16("graphics/link/wireless_info_screen.gbapal"); +static const u32 sBgTiles_Gfx[] = INCBIN_U32("graphics/link/wireless_info_screen.4bpp.lz"); +static const u32 sBgTiles_Tilemap[] = INCBIN_U32("graphics/link/wireless_info_screen.bin.lz"); static const struct BgTemplate sBgTemplates[] = { { diff --git a/sym_bss.txt b/sym_bss.txt index 75da960bf9..3a23e74789 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -55,6 +55,7 @@ .include "src/ereader_helpers.o" .include "src/faraway_island.o" .include "src/m4a_1.o" + .include "data/sound_data.o" .include "src/agb_flash.o" .include "src/siirtc.o" .include "*libgcc.a:dp-bit.o" diff --git a/tools/aif2pcm/main.c b/tools/aif2pcm/main.c index 3dad6fcf80..720db1acae 100644 --- a/tools/aif2pcm/main.c +++ b/tools/aif2pcm/main.c @@ -51,8 +51,12 @@ do \ typedef struct { unsigned long num_samples; - uint8_t *samples; + union { + uint8_t *samples8; + uint16_t *samples16; + }; uint8_t midi_note; + uint8_t sample_size; bool has_loop; unsigned long loop_offset; double sample_rate; @@ -208,11 +212,11 @@ void read_aif(struct Bytes *aif, AifData *aif_data) num_sample_frames |= (aif->data[pos++] << 8); num_sample_frames |= (uint8_t)aif->data[pos++]; - short sample_size = (aif->data[pos++] << 8); - sample_size |= (uint8_t)aif->data[pos++]; - if (sample_size != 8) + aif_data->sample_size = (aif->data[pos++] << 8); + aif_data->sample_size |= (uint8_t)aif->data[pos++]; + if (aif_data->sample_size != 8 && aif_data->sample_size != 16) { - FATAL_ERROR("sampleSize (%d) in the COMM Chunk must be 8!\n", sample_size); + FATAL_ERROR("sampleSize (%d) in the COMM Chunk must be 8 or 16!\n", aif_data->sample_size); } double sample_rate = ieee754_read_extended((uint8_t*)(aif->data + pos)); @@ -295,11 +299,28 @@ void read_aif(struct Bytes *aif, AifData *aif_data) pos += 8; unsigned long num_samples = chunk_size - 8; - uint8_t *sample_data = (uint8_t *)malloc(num_samples * sizeof(uint8_t)); - memcpy(sample_data, &aif->data[pos], num_samples); - - aif_data->samples = sample_data; - aif_data->real_num_samples = num_samples; + if (aif_data->sample_size == 8) + { + uint8_t *sample_data = (uint8_t *)malloc(num_samples * sizeof(uint8_t)); + memcpy(sample_data, &aif->data[pos], num_samples); + + aif_data->samples8 = sample_data; + aif_data->real_num_samples = num_samples; + } + else + { + uint16_t *sample_data = (uint16_t *)malloc(num_samples * sizeof(uint16_t)); + uint16_t *sample_data_swapped = (uint16_t *)malloc(num_samples * sizeof(uint16_t)); + memcpy(sample_data, &aif->data[pos], num_samples); + for (long unsigned i = 0; i < num_samples; i++) + { + sample_data_swapped[i] = __builtin_bswap16(sample_data[i]); + } + + aif_data->samples16 = sample_data_swapped; + aif_data->real_num_samples = num_samples; + free(sample_data); + } pos += chunk_size - 8; } else @@ -550,8 +571,21 @@ do { \ void aif2pcm(const char *aif_filename, const char *pcm_filename, bool compress) { struct Bytes *aif = read_bytearray(aif_filename); - AifData aif_data = {0,0,0,0,0,0,0}; + AifData aif_data = {0}; read_aif(aif, &aif_data); + + // Convert 16-bit to 8-bit if necessary + if (aif_data.sample_size == 16) + { + aif_data.real_num_samples /= 2; + uint8_t *converted_samples = malloc(aif_data.real_num_samples * sizeof(uint8_t)); + for (unsigned long i = 0; i < aif_data.real_num_samples; i++) + { + converted_samples[i] = aif_data.samples16[i] >> 8; + } + free(aif_data.samples16); + aif_data.samples8 = converted_samples; + } int header_size = 0x10; struct Bytes *pcm; @@ -560,7 +594,7 @@ void aif2pcm(const char *aif_filename, const char *pcm_filename, bool compress) if (compress) { struct Bytes *input = malloc(sizeof(struct Bytes)); - input->data = aif_data.samples; + input->data = aif_data.samples8; input->length = aif_data.real_num_samples; pcm = delta_compress(input); free(input); @@ -568,7 +602,7 @@ void aif2pcm(const char *aif_filename, const char *pcm_filename, bool compress) else { pcm = malloc(sizeof(struct Bytes)); - pcm->data = aif_data.samples; + pcm->data = aif_data.samples8; pcm->length = aif_data.real_num_samples; } output.length = header_size + pcm->length; @@ -591,7 +625,7 @@ void aif2pcm(const char *aif_filename, const char *pcm_filename, bool compress) free(aif); free(pcm); free(output.data); - free(aif_data.samples); + free(aif_data.samples8); } // Reads a .pcm file containing an array of 8-bit samples and produces an .aif file. @@ -631,8 +665,8 @@ void pcm2aif(const char *pcm_filename, const char *aif_filename, uint32_t base_n pcm->data += 0x10; } - aif_data->samples = malloc(pcm->length); - memcpy(aif_data->samples, pcm->data, pcm->length); + aif_data->samples8 = malloc(pcm->length); + memcpy(aif_data->samples8, pcm->data, pcm->length); struct Bytes *aif = malloc(sizeof(struct Bytes)); aif->length = 54 + 60 + pcm->length; @@ -819,14 +853,14 @@ void pcm2aif(const char *pcm_filename, const char *aif_filename, uint32_t base_n // Sound Data Chunk soundData for (unsigned int i = 0; i < aif_data->loop_offset; i++) { - aif->data[pos++] = aif_data->samples[i]; + aif->data[pos++] = aif_data->samples8[i]; } int j = 0; for (unsigned int i = aif_data->loop_offset; i < pcm->length; i++) { int pcm_index = aif_data->loop_offset + (j++ % (pcm->length - aif_data->loop_offset)); - aif->data[pos++] = aif_data->samples[pcm_index]; + aif->data[pos++] = aif_data->samples8[pcm_index]; } aif->length = pos; diff --git a/tools/mapjson/mapjson.cpp b/tools/mapjson/mapjson.cpp index 0c7d7e2711..c5f86bdf0e 100644 --- a/tools/mapjson/mapjson.cpp +++ b/tools/mapjson/mapjson.cpp @@ -230,7 +230,7 @@ string generate_map_events_text(Json map_data) { text << bgs_label << ":\n"; for (auto &bg_event : map_data["bg_events"].array_items()) { if (bg_event["type"] == "sign") { - text << "\tbg_event " + text << "\tbg_sign_event " << bg_event["x"].int_value() << ", " << bg_event["y"].int_value() << ", " << bg_event["elevation"].int_value() << ", "